Status Codes

March 13, 2026

Status Codes

The API uses standard HTTP status codes. The response body format depends on the status code.


200 OK

The request succeeded. The response body is JSON containing only the payload in data.

Example

{
  "data": {
    "project_id": "prj06928fdjqqaza",
    "name": "Sample project name",
    "status": "SUCCEEDED"
  }
}

The structure of data varies by endpoint. See each API’s documentation for the exact fields.


400 Bad Request

A client-side error occurred — for example, invalid parameters, an unsupported video format, or other input issues. Review the message field, correct the request, and retry.

FieldTypeDescription
trace_idstringUnique identifier for diagnostics and support
messagestringHuman-readable error description

Example

{
  "message": "the error message",
  "trace_id": "the_trace_id"
}

500 Internal Server Error

A server-side error occurred — an internal failure or unexpected server-side error. If the issue persists, contact support with the trace_id.

FieldTypeDescription
trace_idstringUnique identifier for diagnostics and support
messagestringHuman-readable error description

Example

{
  "message": "the error message",
  "trace_id": "the_trace_id"
}

403 Forbidden

Authentication failed (invalid or missing API key). The response body includes:

FieldTypeDescription
timestampstringTime of the response (ISO 8601)
statusnumberHTTP status code (403)
errorstringShort error type (e.g. "Forbidden")
pathstringRequest path

Example

{
  "timestamp": "2026-03-13T07:58:46.156+00:00",
  "status": 403,
  "error": "Forbidden",
  "path": "/api/v2/clips"
}

429 Too Many Requests

The request was rejected due to rate limits or concurrency limits. The response body uses the same format as 403: timestamp, status, error, path.

Example

{
  "timestamp": "2026-03-10T15:52:01.610+00:00",
  "status": 429,
  "error": "Too Many Requests",
  "path": "/api/v2/clips/results/prjxxx"
}

See Rate Limits for limit values and how to avoid 429.