Menu
View Categories

API Reference

Complete reference for every Slapshot API endpoint. All paths are relative to the base URL https://autopilot.slapshot.ai/api, and every request must include your x-api-key header.

MethodEndpointDescription
POST/jobsCreate a job
GET/jobsList jobs
GET/jobs/{job_id}Retrieve a job
DELETE/jobs/{job_id}Cancel a job
GET/inferencesList inferences
GET/inferences/{inference_id}Retrieve an inference
DELETE/inferences/{inference_id}Cancel an inference

Jobs

A job is a batch of assets submitted together. Each asset lists the services to run on it, and every asset–service pair becomes an inference.

The job object

job_idstring (UUID)
Unique identifier for the job.
created_atstring (ISO 8601)
When the job was created.
created_bystring
The user who created the job.
metadataobject
The job-level metadata you supplied when creating the job.
percent_completenumber
Overall progress of the job, from 0 to 100.
totalinteger
Total number of inferences in the job.
total_pending · total_running · total_completed · total_failed · total_cancelledinteger
Number of inferences in each status.
pending_inferences · running_inferences · completed_inferences · failed_inferences · canceled_inferencesarray
The inferences in each status. Each entry includes inference_id, asset_id, asset_name, inference_type, frame_count, metadata and percent_complete.

Create a job

POST/jobs

Submits one or more assets for processing. Each asset must request at least one service. The response contains the new job_id and an inference_id for every asset–service pair, which you can use to track progress.

Body parameters
assetsarrayRequired
The assets to process. Each item is an asset object (below).
metadataobject
Optional key–value pairs to attach to the job, such as a project ID or submitter. Returned with the job and usable as a filter.
Asset object
source_pathstringRequired
Path to the source video, for example autopilot_reel/102825/Chocolate.mov.
servicesarrayRequired
The services to run on this asset. At least one of roto, tracking or depth_map is required.
services[].typestringRequired
Service to run: roto, tracking or depth_map.
services[].output_pathstring
Where outputs for this service are written.
services[].metadataobjecttracking only
Camera and lens hints for tracking. See tracking options. If omitted, values are calculated during inference.
services[].export_typestringdepth_map only
Output format for depth maps: jpg or mov. Defaults to jpg.
metadataobject
Optional key–value pairs for this asset, such as project and shot names.
Tracking options (services[].metadata)
working_fpsfloat
Working frames per second. Defaults to the asset’s frame rate.
lensfloat
Lens focal length in millimetres. Calculated during inference if omitted.
sensor_widthfloatwith sensor_height
Sensor width in millimetres. Required if sensor_height is provided.
sensor_heightfloatwith sensor_width
Sensor height in millimetres. Required if sensor_width is provided.
estimated_closest_pointfloat
Estimated closest depth value, in metres.
estimated_farthest_pointfloat
Estimated farthest depth value, in metres.
calculate_distortionstring
Solve for lens distortion. "True" or "False" (as a string, not a boolean). Defaults to "False".
fix_focal_lengthstring
Lock the focal length to lens. "True" or "False". Defaults to "False".
fix_sensor_sizestring
Lock the sensor size. "True" or "False". Defaults to "True".
Request
curl -X POST "https://autopilot.slapshot.ai/api/jobs" \
  -H "x-api-key: $SLAPSHOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "assets": [
      {
        "source_path": "autopilot_reel/102825/Chocolate.mov",
        "services": [
          { "type": "roto", "output_path": "output/110625" },
          {
            "type": "tracking",
            "output_path": "output/110625",
            "metadata": {
              "working_fps": 24.0,
              "lens": 30.0,
              "sensor_width": 24.0,
              "sensor_height": 24.0,
              "calculate_distortion": "True"
            }
          },
          { "type": "depth_map", "output_path": "output/110625", "export_type": "jpg" }
        ],
        "metadata": { "project": "Project Chocolate", "shot": "Chocolate_ch01" }
      },
      {
        "source_path": "autopilot_reel/102825/Cheering.mov",
        "services": [
          { "type": "roto", "output_path": "output/110625" }
        ],
        "metadata": { "project": "Project Chocolate", "shot": "Cheering_ch02" }
      }
    ],
    "metadata": { "project_id": 123, "project": "Project Chocolate", "submitter": "John Doe" }
  }'
Response
{
  "job_id": "d5ab291d-6b72-4a71-acf6-0f856c182cb1",
  "data": [
    {
      "asset_id": "890b2590-a381-4f8b-87c5-e3e2305eab7b",
      "inferences": [
        {
          "inference_id": "fd5f5f28-f16f-4f82-8aa8-fb53533b2c85",
          "inference_type": "roto",
          "status": "pending",
          "output_path": "output/110625"
        }
      ],
      "metadata": { "project": "Project Chocolate", "shot": "Chocolate_ch01" }
    },
    {
      "asset_id": "6c1fb1ab-f33d-407d-99ad-6bf5a3097ef5",
      "inferences": [
        {
          "inference_id": "e823aa39-17ed-47d7-a175-dae3081ee218",
          "inference_type": "roto",
          "status": "pending",
          "output_path": "output/110625"
        }
      ],
      "metadata": { "project": "Project Chocolate", "shot": "Cheering_ch02" }
    }
  ],
  "metadata": {
    "project_id": 123,
    "project": "Project Chocolate",
    "submitter": "John Doe"
  }
}

List jobs

GET/jobs

Returns a paginated list of your jobs, newest first. Filter by service, status or the metadata you supplied when creating the job.

Query parameters
servicestring
Only return results for this inference type: roto, tracking or depth_map.
statusstring
Only return results with this status: pending, running, completed, failed or cancelled.
metadataJSON string
Only return results whose metadata contains these key–value pairs, for example {"project_id": 123}. URL-encode the value.
pageinteger
Page number to return. Defaults to the first page.
Request
curl -G "https://autopilot.slapshot.ai/api/jobs" \
  -H "x-api-key: $SLAPSHOT_API_KEY" \
  --data-urlencode "service=roto" \
  --data-urlencode "status=pending" \
  --data-urlencode 'metadata={"project_id": 123}' \
  --data-urlencode "page=1"
Response
{
  "count": 1000,
  "next": "https://autopilot.slapshot.ai/api/jobs?page=2",
  "previous": null,
  "results": [
    {
      "job_id": "98696f34-39fa-4bf5-b526-6368a32c0eb4",
      "created_at": "2026-01-30T06:18:20.574023Z",
      "created_by": "John Doe",
      "metadata": { "project": "Project Chocolate", "submitter": "John Doe", "project_id": 123 },
      "percent_complete": 0,
      "total": 2,
      "total_pending": 2,
      "total_running": 0,
      "total_completed": 0,
      "total_failed": 0,
      "total_cancelled": 0,
      "pending_inferences": [ ... ],
      "running_inferences": [],
      "completed_inferences": [],
      "failed_inferences": [],
      "canceled_inferences": []
    }
  ]
}

Retrieve a job

GET/jobs/{job_id}

Returns a single job, including overall progress and the status of every inference in it.

Path parameters
job_idstringRequired
The ID of the job to retrieve.
Request
curl "https://autopilot.slapshot.ai/api/jobs/98696f34-39fa-4bf5-b526-6368a32c0eb4" \
  -H "x-api-key: $SLAPSHOT_API_KEY"
Response
{
  "job_id": "98696f34-39fa-4bf5-b526-6368a32c0eb4",
  "created_at": "2026-01-30T06:18:20.574023Z",
  "created_by": "John Doe",
  "metadata": {
    "project": "Project Chocolate",
    "submitter": "John Doe",
    "project_id": 123
  },
  "percent_complete": 0,
  "total": 2,
  "total_pending": 2,
  "total_running": 0,
  "total_completed": 0,
  "total_failed": 0,
  "total_cancelled": 0,
  "failed_inferences": [],
  "running_inferences": [],
  "completed_inferences": [],
  "pending_inferences": [
    {
      "inference_id": "76f88fd3-6093-403d-ad2f-ff272c243cb2",
      "asset_id": "e201af6a-509a-44c8-a5b9-ceae27d06312",
      "asset_name": "Chocolate",
      "inference_type": "roto",
      "frame_count": 0,
      "metadata": {
        "shot": "Chocolate_ch01",
        "project": "Project Chocolate"
      },
      "percent_complete": 0
    },
    {
      "inference_id": "64850812-7244-40e4-80f2-44ef5ca8aa1d",
      "asset_id": "0e3a2fcc-19bc-4498-a9d6-b1ce0500b73b",
      "asset_name": "Cheering",
      "inference_type": "roto",
      "frame_count": 0,
      "metadata": {
        "shot": "Cheering_ch02",
        "project": "Project Chocolate"
      },
      "percent_complete": 0
    }
  ],
  "canceled_inferences": []
}

Cancel a job

DELETE/jobs/{job_id}

Cancels every inference in the job that hasn’t finished yet. Completed inferences and their outputs are not affected.

Path parameters
job_idstringRequired
The ID of the job to cancel.
Request
curl -X DELETE "https://autopilot.slapshot.ai/api/jobs/98696f34-39fa-4bf5-b526-6368a32c0eb4" \
  -H "x-api-key: $SLAPSHOT_API_KEY"
Response
{
  "message": "Job has been cancelled successfully.",
  "data": null
}

Inferences

An inference is one service (roto, tracking or depth_map) running on one asset. Use these endpoints to follow individual shots across all of your jobs.

The inference object

inference_idstring (UUID)
Unique identifier for the inference.
job_idstring (UUID)
The job this inference belongs to.
created_atstring (ISO 8601)
When the inference was created.
created_bystring
The user who created the job.
asset_idstring (UUID)
The asset being processed.
asset_namestring
Name of the source asset.
inference_typestring
roto, tracking or depth_map.
frame_countinteger
Number of frames in the asset.
metadataobject
The asset metadata you supplied when creating the job.
percent_completenumber
Progress of this inference, from 0 to 100.
statusstring
One of the statuses.

List inferences

GET/inferences

Returns a paginated list of your inferences across all jobs. Filter by service, status or asset metadata.

Query parameters
servicestring
Only return results for this inference type: roto, tracking or depth_map.
statusstring
Only return results with this status: pending, running, completed, failed or cancelled.
metadataJSON string
Only return results whose metadata contains these key–value pairs, for example {"project_id": 123}. URL-encode the value.
pageinteger
Page number to return. Defaults to the first page.
Request
curl -G "https://autopilot.slapshot.ai/api/inferences" \
  -H "x-api-key: $SLAPSHOT_API_KEY" \
  --data-urlencode "service=roto" \
  --data-urlencode "status=running" \
  --data-urlencode 'metadata={"project_id": 123}'
Response
{
  "count": 1000,
  "next": "https://autopilot.slapshot.ai/api/inferences?page=2",
  "previous": null,
  "results": [
    {
      "inference_id": "64db5dbb-9d37-4b3e-9844-23f79269da3b",
      "job_id": "392a2586-865b-4595-baa4-fa95c9af8183",
      "created_by": "John Doe",
      "created_at": "2026-01-30T06:56:20.541742Z",
      "asset_id": "2dcae016-7cc4-4943-89f3-9ef54fb458a0",
      "asset_name": "Chocolate",
      "inference_type": "roto",
      "frame_count": 0,
      "metadata": { "project_id": "123" },
      "percent_complete": 0,
      "status": "pending"
    }
  ]
}

Retrieve an inference

GET/inferences/{inference_id}

Returns a single inference with its current status and progress.

Path parameters
inference_idstringRequired
The ID of the inference to retrieve.
Request
curl "https://autopilot.slapshot.ai/api/inferences/64db5dbb-9d37-4b3e-9844-23f79269da3b" \
  -H "x-api-key: $SLAPSHOT_API_KEY"
Response
{
  "inference_id": "64db5dbb-9d37-4b3e-9844-23f79269da3b",
  "job_id": "392a2586-865b-4595-baa4-fa95c9af8183",
  "created_by": "John Doe",
  "created_at": "2026-01-30T06:56:20.541742Z",
  "asset_id": "2dcae016-7cc4-4943-89f3-9ef54fb458a0",
  "asset_name": "Chocolate",
  "inference_type": "roto",
  "frame_count": 0,
  "metadata": {
    "project_id": "123"
  },
  "percent_complete": 0,
  "status": "pending"
}

Cancel an inference

DELETE/inferences/{inference_id}

Cancels a single inference. Other inferences in the same job keep running.

Path parameters
inference_idstringRequired
The ID of the inference to cancel.
Request
curl -X DELETE "https://autopilot.slapshot.ai/api/inferences/64db5dbb-9d37-4b3e-9844-23f79269da3b" \
  -H "x-api-key: $SLAPSHOT_API_KEY"
Response
{
  "message": "Inference has been cancelled successfully.",
  "data": null
}