---
title: "List jobs"
method: GET
path: "/jobs"
tags: ["Creators"]
---

# List jobs

`GET /jobs`

## Request

- Base URL: `https://viral.app/api/v1`
- URL: `https://viral.app/api/v1/jobs`
- Auth: API key in header `x-api-key`

Retrieves discovery job postings including product, requirements, and payment configuration for the current organization.

## Query parameters

- `search` string: Search by product title or description
- `statuses` string[]: Filter jobs by one or more statuses
- `page` number: Page number (1-based index)
- `perPage` number: Number of items per page (1-100)
- `sortCol` string: Sort column
- `sortDir` 'asc' | 'desc': Sort direction

## Response `200`

OK

- object: Paginated list of job postings
  - `data` object[], required
    - `id` string, required
    - `status` 'draft' | 'public' | 'paused', required
    - `productTitle` string, required
    - `productDescription` string, required
    - `logoUrl` string, nullable, required
    - `productNiches` string[], required
    - `contentFormats` string[], required
    - `countryResidences` string[], required
    - `languages` string[], required
    - `minAge` integer, nullable, required
    - `aiContentPolicy` string, nullable, required
    - `jobType` string, required
    - `minWeeklyHours` integer, nullable, required
    - `minWeeklyVideos` integer, nullable, required
    - `platformFocus` string[], required
    - `accountType` string, nullable, required
    - `exampleVideoUrls` string[], required
    - `videoSubmissionRequired` boolean, required
    - `challengeBrief` union, required
      - string
      - number
      - boolean
      - object
      - unknown[]
        - unknown
    - `sampleVideoUrls` string[], required
    - `currency` string, required
    - `payFrequency` string, required
    - `flatSalaryAmount` integer, nullable, required
    - `perVideoAmount` integer, nullable, required
    - `cpmAmount` integer, nullable, required
    - `bonusAmount` integer, nullable, required
    - `body` union, required
      - string
      - number
      - boolean
      - object
      - unknown[]
        - unknown
    - `publishedAt` string, date-time, nullable, required
    - `embedding` unknown
    - `embeddingModel` string, nullable, required
    - `embeddedAt` string, date-time, nullable, required
    - `firstMatchesNotifiedAt` string, date-time, nullable, required
    - `pausedReason` 'subscription_lapsed', nullable, required
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
    - `actorType` 'user' | 'system' | 'api_token', required
    - `userId` string, required
    - `orgId` string, required
    - `createdByUser` object, nullable, required
      - `id` string, required
      - `name` string, nullable, required
      - `email` string, required
      - `image` string, nullable, required
    - `applicationCounts` object, required
      - `open` integer, required
      - `inReview` integer, required
      - `closed` integer, required
    - `matchedCount` integer, required
    - `bodyMarkdown` string, nullable, required: The posting's body as markdown; null without a body
    - `challengeBriefMarkdown` string, nullable, required: The application challenge as markdown; null without one
  - `pageCount` number, required: Total number of pages
  - `totalRows` number, required: Total number of rows

## Other responses

- `400`: 400
- `401`: 401
- `402`: 402
- `404`: 404
- `408`: 408
- `429`: 429
- `500`: 500

---

[API](https://skmtc.dev/viral/apis/viral-app-api.md) · [All operations](https://skmtc.dev/viral/apis/viral-app-api/llms.txt) · [OpenAPI document](https://skmtc.dev/viral/apis/viral-app-api/revisions/31e97fa79ef1?raw)
