Netflix logo

Get a job

gethttps://api.netflix.developers.gaudiolab.io/v1/jobs/{jobId}

Returns the status of a job and, once targets complete, their download links. Poll this endpoint (every ~10 seconds) if you are not using a webhook. Download links expire after 48 hours; calling this endpoint again returns fresh links.

get/jobs/{jobId}
curl -X GET "https://api.netflix.developers.gaudiolab.io/v1/jobs/{jobId}" \
  -H "x-api-key: $API_KEY"
Response200
{
  "jobId": "job_91b2e0",
  "status": "completed",
  "progress": 100,
  "linksExpireAt": "2026-06-10T12:00:00Z",
  "targets": [
    {
      "model": "dme_dialogue_v1",
      "tier": "premium",
      "status": "completed",
      "progress": 100,
      "output": {
        "dialogue": {
          "wav": "https://cdn.example.com/job_91b2e0/dialogue.wav"
        }
      }
    },
    {
      "model": "karaoke_vocal_v1",
      "status": "completed",
      "progress": 100,
      "output": {
        "vocal": {
          "wav": "https://cdn.example.com/job_91b2e0/vocal.wav"
        }
      }
    },
    {
      "model": "stem_bass_v1",
      "status": "completed",
      "progress": 100,
      "output": {
        "bass": {
          "wav": "https://cdn.example.com/job_91b2e0/bass.wav"
        }
      }
    }
  ]
}

Path parameters

jobIdstringRequired

The unique identifier of the job, returned by POST /jobs.

Headers

x-api-keyRequired

Your project API key, sent on every request. Create and manage keys in the dashboard under Settings → API Keys.

Response

200The job.
jobIdstringRequired

Unique identifier for the job.

statusenumRequired

Aggregate status across all targets. completed once every target has finished — note an individual target may still have failed.

Allowed values: queuedprocessingcompletedfailed

progressintegerOptional

Overall completion percentage, a rollup across all targets. Only reaches 100 once the job is terminal (completed or failed).

linksExpireAtstring (date-time)Optional

ISO 8601 timestamp when the download links stop working. Re-fetch the job to refresh them. Links are valid for 48 hours.

targetsTargetResult[]Required

Per-target results, in the order they were requested.

modelstringRequired

The model alias this result corresponds to.

tierenumOptional

The processing tier this target was processed with. Present for DME targets only.

Allowed values: premiumstandardlive

statusenumRequired

Status of this individual target.

Allowed values: queuedprocessingcompletedfailed

progressintegerOptional

Completion percentage for this target. A completed target reports 100.

outputmap<string, map<string, string (uri)>>Optional

Download links, keyed by stem name and then by format (for example output.dialogue.wav). Present once status is completed.

errorTargetErrorOptional

Failure details. Present only when status is failed.

codeenumRequired

A stable, machine-readable code. New codes may be added over time — treat an unrecognised one as a generic failure and fall back to retryable.

Allowed values: PROCESSING_FAILEDPROCESSING_TIMEOUTQUEUE_TIMEOUTSOURCE_EXPIREDJOB_CANCELLED

messagestringRequired

A human-readable explanation. Fixed per code — safe to show to an end user, but do not parse it or branch on its wording.

retryablebooleanRequired

Whether resubmitting the same source can succeed. true means the failure was transient (an interrupted run, a timeout, or no capacity in time) — retry with backoff. false means retrying changes nothing.

404The requested resource does not exist or has expired.
codestringRequired

A stable, machine-readable error code you can branch on.

messagestringRequired

A human-readable explanation of what went wrong.