Skip to main content
Fetch a completed job's result

Authorizations

Authorization
string
header
required

Authorization: Bearer stefan_sk_... (API key — bills the API wallet) or stefan_oat_... (OAuth member token — bills your plan pool).

Path Parameters

family
string
required
runId
string
required

Query Parameters

chat
string

The chat the job was submitted under; keep it from the URLs the submit response returned (a mismatch is 404).

Response

Job envelope. Once the job succeeded, data.result holds its result: { kind: "files", summary, files: [{ path }] } (download through the files endpoints) or { kind: "inline", summary, data }. While the job is still running, status is not terminal and data.result is null. A parked ask_stefanbrain turn (family mcp_ask) carries data.answer instead.

Job polling envelope (status, result, and cancel responses). data carries the family payload.

object
string
Allowed value: "job"
family
string
job_id
string
chat
string
status
string | null

Lifted from the family payload: queued | running | succeeded | failed | cancelled; null when the family returned non-JSON text or an error.

Lifted poll hint; null when absent — poll with your default interval plus capped backoff.

data
object | null

The job payload: run_id, family, status, progress_message, progress, and error. The result endpoint adds result; the cancel endpoint adds accepted. A parked ask_stefanbrain turn (family mcp_ask) carries the ask envelope instead.

content
object[]
is_error
boolean
error
object | null

Structured failure classification; an object exactly when is_error is true, null otherwise.