DOCS

Render Blender jobs from the browser, Discord, MCP, or the API

These docs are for people and agents who need finished Blender Cycles frames. Upload a .blend, see a fixed quote, pay from wallet credit, then download a ZIP with a receipt and proof. Fastest path: sign in, add credit, inspect the .blend, read the quote, then start. MCP is AVAILABLE. Discord bot is AVAILABLE. IRC, Matrix, Slack, and Telegram come later.

Ways to use FARPY

Every doorway uses the same FARPY contract: inspect → exact quote → approve → run → status → ZIP/artifact → receipt/proof

Blender 4.1.1, Cycles GPU, .blend, <=100 MiB, 1–10,000 frames, from 1¢/frame, exact fixed quote before start.

Available now

Web

AVAILABLE NOW

Upload a .blend in the browser, see the exact quote, then run.

Open the dropzone

Blender Add-on

AVAILABLE NOW

Submit a .blend from Blender and retrieve the ZIP on the same FARPY account.

Add-on guide

AI / MCP

AVAILABLE NOW

Let an AI agent inspect, quote, run, and return a verified result.

MCP for agents

API

AVAILABLE NOW

Build FARPY into your own software.

API docs

Python client

AVAILABLE NOW

Call inspect → quote → start from a script, then download the ZIP and receipt.

Download farpy_client.py

Discord bot

AVAILABLE NOW

Render from Discord. Sign in, generate a one-time link code, DM FarpyBot, upload a .blend, approve the exact quote, then receive ZIP + receipt. Do not paste an API key into Discord.

Render from Discord

Coming later

IRC bot

COMING LATER

A later chat doorway over the same inspect → quote → start contract.

Matrix

COMING LATER

A later chat doorway. Not live.

Slack

COMING LATER

A later chat doorway. Not live.

Telegram

COMING LATER

A later chat doorway. Not live.

Creator apps

COMING LATER

Build apps, templates, and visual products on FARPY.

Quickstart

Sign in with Google to use a stored balance and saved job history. Email sign-in is coming soon. Create an API key in Account settings when you want the REST or Python path.

  1. Authenticate. Browser: Google sign-in. API: Authorization: Bearer $FARPY_API_KEY
  2. Inspect a Blender .blend (up to 100 MiB). Read the locked quote. No spend yet.
  3. Start only after you accept the quote (quote_id + FARPY_LEGAL_V1).
  4. Check status until the job is terminal.
  5. Download the .zip result.
  6. Get the receipt and proof.

Browser: sign in, add credit, then upload from the homepage or Your renders.

# Job API inspect/start uses a farpy_agent_ key. Account Settings farpy_ keys are a different store.
export FARPY_AGENT_KEY
ORIGIN=https://farpy.com
AUTH="Authorization: Bearer $FARPY_AGENT_KEY"

# NO SPEND
curl -sS "$ORIGIN/node/v1/uploads/inspect" -H "$AUTH" -F "file=@scene.blend"

# SPEND BOUNDARY — send quote_id + FARPY_LEGAL_V1. Do not send price_cents.
curl -sS -X POST "$ORIGIN/node/v1/uploads/$UPLOAD_ID/start" -H "$AUTH" -H "Content-Type: application/json" \
  -d '{"quote_id":"$QUOTE_ID","legal_acceptance":"FARPY_LEGAL_V1"}'

curl -sS "$ORIGIN/node/v1/jobs/$JOB_ID" -H "$AUTH"

Inspect then start: download farpy_client.py, then python3 farpy_client.py prepare scene.blend. Example: farpy_client_example.py.

API reference

Base URL https://api.farpy.com/v1 is Public API V1 (legacy upload can reserve). Proven inspect/start is https://farpy.com/node/v1/uploads/…. Full reference: /api/. OpenAPI: /v1/openapi.json. Agents: /api/agent-rendering/.

GET/healthService availability.
GET/capabilitiesAccepted renderer, formats, and queue state.
GET/pricingLive pricing contract.
GET/limitsUpload, frame, and rate limits.
GET/openapi.jsonOpenAPI 3.1 contract.
POST/rendersUpload a .blend and create the job.
POST/renders/preflightValidate before submit when you need eligibility feedback.
POST/renders/{job_id}/submitStart the uploaded render.
GET/renders/{job_id}Canonical status.
POST/renders/{job_id}/cancelCancel before a worker claims the job.
GET/renders/{job_id}/downloadZIP artifact delivery.
GET/renders/{job_id}/receiptUSD receipt for completed work.
GET/renders/{job_id}/proofSHA-256 and execution proof.

Errors

Error JSON includes error.code and error.message. Request IDs are not guaranteed. HTTP 401 means the API key is missing, invalid, or revoked. HTTP 429 includes Retry-After. Do not retry a terminal failed or cancelled job. Guide: /api/errors/.

Webhooks

Terminal events are render.completed, render.failed, and render.cancelled. Verify the signature on HTTPS before trusting the payload. Treat duplicates as normal. Guide: /api/webhooks/.

Proof / receipts

A completed job produces a downloadable ZIP, a USD receipt, and SHA-256 proof of the output bytes. Proof shows the downloaded file matches the recorded hash. It does not prove the image looks correct. Browser: open the job in Your renders. Public explanation: /proof/.

Limits / pricing

  • Blender 4.1.1, Cycles GPU, .blend in, .zip out.
  • 1–10,000 frames per request. Maximum upload 100 MiB.
  • From $0.01 per completed frame, $0.01 minimum. Fixed quote before payment.
  • Cancel only before a worker claims the job.
  • Current rate limit: 60 requests per minute per client, burst 20.

Pricing page: /pricing/. Live machine contract: GET /v1/pricing and GET /v1/limits.