Przejdź do treści

Orders

Track content generation orders, poll their status, and read per-job outcomes including output URLs and failure categories.

Every generation request you submit creates an order. An order groups one or more jobs — one per asset being generated. These endpoints let you follow that work to completion.

Both require the content.read scope.

GET /api/external/orders

List recent orders for your account, newest first. No job breakdown — use the detail endpoint for that.

Query parameters

ParameterTypeDescription
statusstringFilter by order status.
limitnumberHow many to return. Clamped to [1, 50], default 20.
sincestringISO 8601 timestamp; only orders created after it.

Response

{
  "orders": [
    {
      "orderId": "131a2aec-...",
      "status": "in_progress",
      "jobType": "video",
      "provider": "pollo",
      "model": "mixed",
      "jobsTotal": 2,
      "jobsCompleted": 1,
      "jobsFailed": 0,
      "createdAt": "2026-05-06T07:42:52.668Z",
      "updatedAt": "2026-05-06T07:43:18.016Z"
    }
  ],
  "limit": 20,
  "returned": 1
}

GET /api/external/orders/:id

One order with its full per-job breakdown.

Path parameters

ParameterTypeDescription
idstringThe order UUID returned when you created it.

Response

{
  "orderId": "131a2aec-...",
  "status": "completed",
  "jobType": "video",
  "provider": "pollo",
  "model": "mixed",
  "jobsTotal": 2,
  "jobsCompleted": 2,
  "jobsFailed": 0,
  "createdAt": "...",
  "updatedAt": "...",
  "jobs": [
    {
      "jobId": "...",
      "provider": "pollo",
      "model": "kling-2.6",
      "status": "completed",
      "attemptCount": 2,
      "outputUrl": "https://storage.../video.mp4",
      "errorCategory": null,
      "errorHint": null,
      "startedAt": "...",
      "completedAt": "..."
    }
  ]
}

Job fields

FieldDescription
statuspending, in_progress, completed, failed, retry_pending, cancelled, expired.
attemptCountHow many times the job has run. Greater than 1 means it was retried.
outputUrlThe generated asset. Populated only for completed jobs, otherwise null.
errorCategoryWhy the job failed — see Job Failure Categories. null unless it failed.
errorHintOne sentence explaining the category. Display it; do not parse it.

Polling

Orders complete asynchronously. Poll the detail endpoint until status is completed, failed, or cancelled.

Two things worth knowing before you build the loop:

A failed job is not always final. TRANSIENT_INFRA, RATE_LIMIT, and PROVIDER_CAPACITY are retried automatically, so a job can report one of them and still finish successfully on a later attempt. Watch status and attemptCount, not the presence of an errorCategory.

Partial completion is normal. An order with several jobs can end with some completed and some failed. Read jobsCompleted and jobsFailed rather than assuming the order is all-or-nothing.

Respect the rate limit of 60 requests per minute — see Rate Limiting. Polling every few seconds per order is ample; generation takes far longer than that.

Errors

CodeCause
400id is not a valid UUID, or a query parameter is invalid.
401Missing, invalid, or revoked API key.
403The key lacks the content.read scope.
404The order does not exist, or belongs to another account. These are deliberately indistinguishable.
429Rate limit exceeded.