Developer surface
Farpy API
Use Farpy render artifacts programmatically: status, proof, receipts, and downloads.
Inspect Render Jobs Programmatically
Track render progress. Verify completed work. Fetch receipts. Download outputs. Submission API remains private alpha.
The public developer surface today is for inspecting completed or running work.
Receipt contract
- Completed renders should produce receipt evidence.
- Failed renders cost $0.
- Receipts can include state, frame data, output refs, node info, and hashes where available.
- Output ZIP URLs may be private or gated.
Recommended integration flow
1. Upload/render through Farpy web flow 2. Save the JOB ID 3. Open /status/?job_id=JOB-... 4. Inspect /proof/?job_id=JOB-... 5. Fetch /receipt-static/JOB-.../index.json 6. Download ZIP when allowed
Not public yet
- Public authenticated job creation API
- Public API keys
- Public bulk render submission
- Public SLA/deadline API
- Public worker marketplace API
Why narrow?
Farpy is prioritizing the customer render path first: upload .blend → render → status → proof → receipt → ZIP.
The API expands after that path stays boring and repeatable.
Public endpoints
| Surface | Endpoint | Use | Status |
|---|---|---|---|
| Status | GET /status/?job_id=JOB-... | Human-readable render progress and final state. | Public |
| Proof | GET /proof/?job_id=JOB-... | Evidence page for completed render output. | Public |
| Receipt | GET /receipt-static/JOB-.../index.json | Machine-readable render receipt. | Public |
| Download | GET /download?job_id=JOB-... | ZIP output when access is allowed. | Public/gated |
| Submit | POST /submit | Programmatic job creation. | Private alpha |
Copy-paste checks
Replace the JOB ID with your render ID. These endpoints are read-only public surfaces.
Status
curl -s "https://farpy.com/status/?job_id=JOB-1781039984005-a64cdf"
Proof
curl -s "https://farpy.com/proof/?job_id=JOB-1781039984005-a64cdf"
Receipt JSON
curl -s "https://farpy.com/receipt-static/JOB-1781039984005-a64cdf/index.json" | python3 -m json.tool
Download ZIP headers
curl -I "https://farpy.com/download?job_id=JOB-1781039984005-a64cdf"
Public job submission is still private alpha. Web upload remains the supported customer path.
Real response examples
Status RUNNING
{
"job_id": "JOB-1781039984005-a64cdf",
"state": "RUNNING",
"frames_done": 6,
"total_frames": 12,
"percent_done": 50,
"node": "pr-001-g0"
}
Status DONE
{
"job_id": "JOB-1781039984005-a64cdf",
"state": "DONE",
"frames_done": 12,
"total_frames": 12,
"download_ready": true,
"proof_url": "/proof/?job_id=JOB-1781039984005-a64cdf"
}
Receipt
{
"job_id": "JOB-1781039984005-a64cdf",
"state": "DONE",
"verify": true,
"frames": 12,
"node": "pr-001-g0",
"output_zip_sha256": "..."
}
Typical polling flow
1. Save JOB ID 2. Poll /status/?job_id=... 3. Wait for DONE 4. Open /proof/?job_id=... 5. Fetch receipt JSON 6. Download ZIP