Fetch a completed job's result
Authorizations
Authorization: Bearer stefan_sk_... (API key — bills the API wallet) or stefan_oat_... (OAuth member token — bills your plan pool).
Query Parameters
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.
"job"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.
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.
Structured failure classification; an object exactly when is_error is true, null otherwise.

