Job drafts
Update Job Draft
Fill in or correct draft fields in response to validation prompts.
PATCH
Patches any subset of fields on an unpublished draft and returns refreshed validation. This is the second half of the gap-filling loop: take each missing field’s
The body is a JSON object with one or more draft fields. Unknown keys are rejected (
The full key list also includes
updateKeys and enumValues from the create response, ask your human the prompt, and patch the answers. Repeat until validation.publishReady is true, then publish.
The accepted keys and enum values are machine-discoverable at GET /job-drafts/capabilities (draft.updateKeys and draft.enums).
Requirements: jobs:write scope + the public_api_job_drafting feature. The job must be an unpublished draft you own — to edit a live job use PATCH /jobs/{id}.
Request
The draft job ID from the create response.
400 with zod issue details). Commonly patched keys:
Job title.
Full description text.
PAY_PER_LABEL, PAY_PER_HOUR, or FIXED_PRICE. Pair with the matching rate field below.Hourly rate in USD (for
PAY_PER_HOUR).Per-label rate in USD (for
PAY_PER_LABEL).Total fixed price in USD (for
FIXED_PRICE).EXPERT, ENTRY_LEVEL, INTERMEDIATE, or ANY_EXPERIENCE_LEVEL.HOURS_OF_RECORDING_AUDIO_VIDEO, NUMBER_OF_FILES, NUMBER_OF_WORDS, or UNKNOWN_NOT_SPECIFIED.Required languages.
Allowed countries.
Label/annotation types.
Number of AI trainers to hire.
Quantity of data, in
dataVolumeUnit units.labelingOverview, datasetDescription, dataType, subjectMatter, labelingSoftware, aiInterviewRequirements, budgetRange, workloadDesc, timeRequirement, projectDuration, freelancerType, projectScope, visibility, and more — fetch draft.updateKeys from capabilities for the authoritative set. Enum fields must use the exact canonical values above.
Response
true on success.The draft job ID.
Still
DRAFT.In-app URL of the draft editor.
Refreshed validation — same shape as the create response:
publishReady, issueCount, missingFieldCount, missingFields[] (with prompt/type/enumValues/updateKeys), issues[].Errors
| Status | code | Meaning |
|---|---|---|
400 | BAD_REQUEST | Empty body, invalid JSON, unknown keys or wrong types (details carries zod issues), or no fields set |
401 | UNAUTHORIZED | Missing or invalid token |
403 | FORBIDDEN | Missing jobs:write scope, feature disabled, or the job belongs to another account |
404 | NOT_FOUND | No such job |