FARPY Public API V1
Rendering infrastructure for agents
Agents can discover capabilities, obtain pricing, submit work, track status and retrieve results through one public API without browser automation.
Recommended public flow
- Inspect the uploaded .blend.
- Read
quote_id. - Read
amount. - Read
currency. - Read
expires_at. - Accept the quote, then start.
Upload your Blender file. See the exact price before start. Do not hard-code an amount.
Discover live service facts
Base API URL: https://api.farpy.com/v1. Authenticate protected requests with Authorization: Bearer $FARPY_API_KEY. Agents should read the public machine endpoints at runtime instead of hard-coding price, capacity, or request limits.
- GET /v1/health first; stop if it fails.
- GET /v1/capabilities
- GET /v1/pricing
- GET /v1/limits
- GET /v1/openapi.json
Model Context Protocol (MCP)
Canonical MCP endpoint: https://api.farpy.com/mcp. Human docs: FARPY MCP quote, start, status, artifact, receipt. Authenticate with the FARPY_API_KEY environment variable in the agent MCP configuration; the key is read from the environment and is not part of a tool call. MCP is an HTTP endpoint.
Primary agent flow:
farpy_prepare_upload- PUT local file bytes to the returned
upload_urlwith the required headers farpy_submit_renderfarpy_job_statusfarpy_downloadfarpy_receipt
farpy_inspect_blend is optional and is NOT required after the PUT upload. Discover live tools from the MCP server; do not hard-code a tool count. REST remains supported separately at https://api.farpy.com/v1. Before rendering, agents can inspect live capabilities, pricing, and limits contracts.
Agent-ready path
- Sign in and create an API key in Account Settings.
- Check health, then read capabilities and limits at runtime.
- Upload with
POST /v1/renders. If using idempotency, send the complete nine-header set; partial sets fail closed. - Read pricing and call
POST /v1/renders/preflight. - Submit with
POST /v1/renders/{job_id}/submit; the upload fingerprint contract does not apply to submit. - Poll status or consume the signed terminal webhook.
- Retrieve the receipt and download, then verify the output SHA-256.
One-call Python workflow
import os
from farpy_client import FarpyClient, FarpyError
client = FarpyClient(os.environ["FARPY_API_KEY"])
try:
result = client.render(
"scene.blend",
output_path="render.zip",
)
print(result["job_id"])
print(result["receipt"])
print(result["proof"])
except FarpyError as exc:
print(exc.code)
print(exc.retryable)
print(exc.suggested_action)
print(exc.request_id)
raiseDownload farpy_client.py · Open the Python example · Error contract · Webhook contract
Production flow
health Bearer authentication capabilities upload pricing preflight submit status receipt download SHA-256 verify
API properties
- API-key authentication
- Public price: locked quote with quote_id, amount, currency, and expiry
- Frame ranges from 1 to 10,000 frames per request
- 100 MiB upload limit
- Idempotent submission support
- 60 requests per minute plus burst capacity
- Cancellation before worker claim
- Signed terminal webhooks
- Receipts and proof artifacts
- Machine-readable OpenAPI 3.1 specification
Start here
curl -sS https://api.farpy.com/v1/capabilities \ -H "Authorization: Bearer $FARPY_API_KEY"
API overview · Quickstart · OpenAPI · Pricing · Status · Proof