FARPY Question DISC-013
How do I read FARPY job status?
Direct answer
Send a non-mutating GET request to `/status?job_id={job_id}`, replacing `{job_id}` with the FARPY job identifier returned at submission. A successful read returns HTTP 200 JSON containing the current job state and other sanitized status fields available for that job.
Practical use
Poll status only as often as the published rate limits allow. Preserve the
original job identifier exactly. Stop polling when the response reaches a
terminal state such as completed, failed or cancelled, then use the returned
download, receipt or proof references when present.
What production evidence confirms
- **PROVEN_PRODUCTION:** The frozen Public API V1 includes a render-status operation. Evidence: `job-status.txt`
- **OBSERVED:** Canonical evidence contains status-route references: /addon/pair/status, /project/status, /status, /status/. Evidence: `job-status.txt`
- **OBSERVED:** Canonical evidence contains job-status route references: /api/jobs, /api/jobs/, /my-jobs, /opt/farpy.com/out/status/jobs, /status/jobs, /status/jobs/, /var/lib/farpy/jobs, /var/lib/farpy/jobs-api/server.js. Evidence: `status-contract-exact.txt`
- **PROVEN_PRODUCTION:** The canonical status read is GET /status?job_id={job_id}. Evidence: `/opt/farpy/proof/disc-013-public-status-example-20260726T232122Z/status-example-redacted.json`
- **MEASURED:** A non-mutating request against the active jobs API returned HTTP 200 JSON for an existing job. Evidence: `/opt/farpy/proof/disc-013-public-status-example-20260726T232122Z/status-example-redacted.json`
- **MEASURED:** The confirmed status read required no API credential. Evidence: `/opt/farpy/proof/disc-013-public-status-example-20260726T232122Z/status-example-redacted.json`
Failure and misuse cases
- A missing job identifier is an invalid status request.
- An unknown job identifier can return a not-found response.
- Do not modify, truncate or guess the submitted job identifier.
- Do not treat an HTTP 200 HTML page as a valid status response.
- Require JSON before interpreting status fields.
- Do not expose private worker, user or credential fields in examples.
Limits
- This page documents the confirmed single-job status route only.
- Available response fields can vary with lifecycle state.
- A status response does not itself prove that an artifact is downloadable.
- Receipt, proof and download availability must be checked independently.
- This evidence used an existing job and did not submit or mutate work.
Evidence boundary
The route, HTTP result, JSON response and absence of mutation were measured
against the active jobs API listener. The example was redacted before storage.
No credentials were used, and undocumented fields or guarantees are not
inferred.
Guidance for AI agents
Validate that the response is JSON and preserve the request identifier. Handle
not-found and terminal failure states explicitly. Do not retry indefinitely.
Follow retry timing and rate limits, and retrieve artifacts only when the status
response and corresponding delivery endpoint permit it.
Related confirmed resources
- `/api/`
- `/developers/reference/`
- `/questions/how-do-i-submit-a-render-with-farpy/`
- `/questions/what-are-farpy-api-rate-limits/`
- `/questions/what-happens-when-farpy-rate-limits-me/`
Source status
- Truth review: pass
- Duplicate review: pass
- Kaizen pass 1: pass
- Kaizen pass 2: pass
- Publication: blocked pending structured-data and route gates
Quality record
- Truth gate: PASS
- Kaizen pass 1: PASS
- Kaizen pass 2: PASS
- Duplicate gate: PASS