API Reference
Integrate your pipeline using the REST API.
Authentication
All API requests require a session token. Obtain one by logging in:
http
POST /api/auth/login
Content-Type: application/json
{
"email": "user@example.com",
"password": "your-password"
}The response contains your access_token. Include it in subsequent requests:
http
Authorization: Bearer <your_access_token>Endpoints
Jobs
| Method | Path | Description |
|---|---|---|
| GET | /api/jobs | List all jobs for your account |
| GET | /api/jobs/{id} | Get detailed information about a single job |
| POST | /api/jobs | Submit a new render job |
| PATCH | /api/jobs/{id} | Update a job — hold, unhold, cancel, or update priority |
| DELETE | /api/jobs/{id} | Delete a completed or cancelled job |
Projects
| Method | Path | Description |
|---|---|---|
| GET | /api/projects | List all active projects |
| POST | /api/projects | Create a new project |
| PATCH | /api/projects/{id} | Archive or restore a project |
Instances
| Method | Path | Description |
|---|---|---|
| GET | /api/enterprise/instances | List available instance types (enabled ones only for non-admins) |
Packages
| Method | Path | Description |
|---|---|---|
| GET | /api/packages | List available software packages (Blender versions) |
Uploads
| Method | Path | Description |
|---|---|---|
| POST | /api/uploads/md5 | Check if a file already exists by MD5 hash (deduplication) |
| POST | /api/uploads/file | Upload a scene file or asset to the farm storage |
Billing
| Method | Path | Description |
|---|---|---|
| GET | /api/billing/current-period | Current billing period usage and cost |
| GET | /api/billing/transactions | Full payment transaction history |
Job Submission Payload
When submitting a job via POST /api/jobs, send the following JSON body:
json
{
"job_title": "string — display name for the job",
"project": "string — project name from /api/projects",
"instance_type": "string — instance id from /api/enterprise/instances",
"preemptible": "boolean — use spot/preemptible instances",
"preemptible_retries": "integer — how many times to retry a preempted task",
"chunk_size": "integer — frames per task",
"frame_range": "string — e.g. \"1-100\" or \"fml:3\"",
"scout_frames": "string — scout frame spec, or empty string",
"blender_version": "string — e.g. \"blender-4-1\"",
"render_software": "string — e.g. \"cycles\"",
"output_path": "string — GCS output path",
"upload_paths": ["array", "of", "local", "file", "paths"],
"environment_variables": {
"MY_VAR": "value"
}
}