# Get the production progress of a film

`GET https://api.cream-ai.de/api/v1/films/{id}/progress`

The production progress of a film ordered through the API. Reading it is free of credits and changes nothing. `status`, `stage` and `attention_required` are the same as in `GET /films/{id}`. Without a production (the film is still in the briefing, or mint has not started yet) `production` is `null`, `steps` is empty and `scenes` and `estimate` are `null`. `steps` follow the production in mint: `audio` (narration), `timeline`, `media` (images and clips), `scenes` (rendering the storyboard scenes) and `film` (rendering the film). A step can have `parts` with their own progress (0–1). `scenes` counts every scene of the current storyboard exactly once: `done` (current and finished), `rendering` (being created or changed right now), `failed` (the last change of this scene failed), `outdated` (finished, but an older state) and `pending` (the rest). `estimate` is a rough guess of the remaining seconds, only while scenes or the film are rendering and once there is enough data; otherwise `null`. Do not use it for deadlines. The response can be up to 5 seconds old. Poll at most every few seconds, or follow the event feed. Unknown ids, projects created in mint, films of other companies and films deleted in mint return `404 not_found`. New values in `steps[].id`, `production.phase` and `production.status` may be added within v1.

Scopes: `films:read`

## Parameters

- `id` (path, required): Id of the film (id from POST /films or GET /films).

## Returns

- 200: The progress of the film.

## Errors

- 401: Missing, malformed, revoked or expired API key (unauthorized).
- 403: Not allowed (forbidden_scope, ip_not_allowed, company_inactive, api_not_enabled).
- 404: The film was not found (not_found): unknown id, a project created in mint, a film of another company or a film deleted in mint.
- 429: Too many requests (rate_limited).
- 500: Internal error (internal). Quote the request id when you contact support.
- 503: Temporarily unavailable (service_unavailable). Retry later (after Retry-After seconds, if sent).

## Example request

```sh
curl "https://api.cream-ai.de/api/v1/films/k7m2xq9v4t8n1b5r3c6d0wza/progress" \
  -H "Authorization: Bearer $MINT_API_KEY"
```

## Example response (200)

```json
{
  "object": "film_progress",
  "film_id": "k7m2xq9v4t8n1b5r3c6d0wza",
  "status": "in_production",
  "stage": "storyboard_in_progress",
  "attention_required": false,
  "production": {
    "status": "running",
    "phase": "scenes",
    "storyboard_version": 1,
    "started_at": "2026-11-10T08:00:04Z",
    "updated_at": "2026-11-10T08:14:52Z"
  },
  "steps": [
    {
      "id": "scenes",
      "status": "running",
      "parts": [
        {
          "id": "scene-07",
          "label": "Scene 7",
          "status": "running",
          "progress": 0.6,
          "started_at": "2026-11-10T08:13:30Z"
        }
      ]
    }
  ],
  "scenes": {
    "total": 14,
    "done": 9,
    "rendering": 2,
    "pending": 3,
    "outdated": 0,
    "failed": 0
  },
  "estimate": {
    "remaining_s": 240,
    "confidence": "medium",
    "basis": "scene_rate"
  }
}
```
