← Documentation

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

MethodPathDescription
GET/api/jobsList all jobs for your account
GET/api/jobs/{id}Get detailed information about a single job
POST/api/jobsSubmit 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

MethodPathDescription
GET/api/projectsList all active projects
POST/api/projectsCreate a new project
PATCH/api/projects/{id}Archive or restore a project

Instances

MethodPathDescription
GET/api/enterprise/instancesList available instance types (enabled ones only for non-admins)

Packages

MethodPathDescription
GET/api/packagesList available software packages (Blender versions)

Uploads

MethodPathDescription
POST/api/uploads/md5Check if a file already exists by MD5 hash (deduplication)
POST/api/uploads/fileUpload a scene file or asset to the farm storage

Billing

MethodPathDescription
GET/api/billing/current-periodCurrent billing period usage and cost
GET/api/billing/transactionsFull 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"
  }
}