Soup.video

Retrieves the status of a specific generation or workflow job and returns the final media URLs once complete. This is the poll URL returned by both POST /api/v1/generations and POST /api/v1/workflows/:slug/runs.

Get Job Status

Request

GET /api/v1/generations/:job_id

curl -X GET https://soup.video/api/v1/generations/8f8b3c3d-1a2b-4c5d-6e7f-8a9b0c1d2e3f \
  -H "Authorization: Bearer sk_soup_your_key_here"

Response: Processing

{
  "job_id": "8f8b3c3d-1a2b-4c5d-6e7f-8a9b0c1d2e3f",
  "status": "processing"
}

We recommend polling this endpoint every 5–10 seconds.

Response: Completed

{
  "job_id": "8f8b3c3d-1a2b-4c5d-6e7f-8a9b0c1d2e3f",
  "status": "completed",
  "asset": {
    "media_url": "https://assets.soup.video/public/user_id/8f8b3c3d/video.mp4",
    "thumbnail_url": "https://assets.soup.video/public/user_id/8f8b3c3d/video.mp4",
    "cost": 50
  }
}

Response: Failed

{
  "job_id": "8f8b3c3d-1a2b-4c5d-6e7f-8a9b0c1d2e3f",
  "status": "failed",
  "error": "The prompt contains blocked content or the upstream provider timed out."
}

If a job fails, the credits deducted at the start of the request are automatically refunded to your wallet.