---
title: "Set job status"
method: POST
path: "/jobs/{id}/status"
tags: ["Creators"]
---

# Set job status

`POST /jobs/{id}/status`

## Request

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

Transitions a job posting through its lifecycle: draft to public (launch), public to paused (pause), paused to public (resume).

## Path parameters

- `id` string, required: Job posting ID

## Request body

- object: Request to transition a job posting (launch, pause, resume)
  - `status` 'draft' | 'public' | 'paused', required

## Response `200`

OK

- object: Job posting after the status transition
  - `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` string, nullable, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `actorType` 'user' | 'system' | 'api_token', required
  - `userId` string, required
  - `orgId` string, required
  - `matches` object, nullable, required: The ranked match list built as the job went public
    - `listed` integer, required
    - `eligible` 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

## 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)
