Core Endpoint

GET /api/v1/requests/{requestId}

Poll the current state of a previously submitted request.

Usage

curl https://www.cannonstudio.app/api/v1/requests/req_123 \
  -H "x-api-key: YOUR_API_KEY"

Start polling after the create response's poll_after_ms. Stop when status is succeeded or failed.

Returned object

{
  "id": "req_123",
  "operation": "video.generate",
  "status": "succeeded",
  "billableCredits": 48,
  "inputPreview": "A handheld chase through a crowded market at blue hour.",
  "outputPreview": "Asset ready: https://storage.googleapis.com/...",
  "createdAtMs": 1762479300000,
  "startedAtMs": 1762479301200,
  "completedAtMs": 1762479338200,
  "errorMessage": null,
  "output": {
    "task_id": "vid_123",
    "asset_type": "video",
    "status": "succeeded",
    "video_url": "https://storage.googleapis.com/.../video.mp4",
    "provider": "seedance",
    "model": "seedance2"
  },
  "requestLog": {
    "available": true,
    "retentionDays": 7,
    "retainedUntilMs": 1763084138200,
    "input": {
      "prompt": "A handheld chase through a crowded market at blue hour.",
      "model": "seedance2"
    },
    "output": {
      "video_url": "https://storage.googleapis.com/.../video.mp4"
    },
    "errorMessage": null
  }
}

`requestLog` contains the submitted input and resulting output for API-originated calls. Detailed logs are retained for seven days, then removed by the storage-retention sweep.