> ## Documentation Index
> Fetch the complete documentation index at: https://docs.podcastor.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Polling and outputs

> Track native tasks and retrieve video, speech, audio and subtitles.

Keep each returned project, task and asset ID with the operation that created it. These IDs belong to the existing Podcastor workflow; there is no generic integration job ID or universal task-status endpoint.

## Choose the matching poll operation

| Submitted work                  | Poll operation                                          | Result                                                       |
| ------------------------------- | ------------------------------------------------------- | ------------------------------------------------------------ |
| Script creation or video render | [Get project](/api-reference/projects/get-project)      | Current script, project progress and completed video         |
| Full-script audio preparation   | [Get audio task](/api-reference/audio/get-audio-task)   | Task status and project info when available                  |
| Scene speech regeneration       | [Get speech task](/api-reference/audio/get-speech-task) | Preview audio URL, duration, word timings and scene identity |
| Avatar photos or motion         | [Get avatar](/api-reference/avatars/get-avatar)         | Photo/motion progress and resulting avatar assets            |
| Image generation                | [Get image task](/api-reference/assets/get-image-task)  | Image status and generated assets                            |

Check the HTTP and business error layers on every poll. The audio and speech result endpoints are POST requests with `{"task_id":"TASK_ID"}`. Omit `Idempotency-Key` to read fresh state.

## Audio and speech task states

| `data.status` | Meaning    | Action                           |
| ------------- | ---------- | -------------------------------- |
| `1`           | Pending    | Continue polling                 |
| `2`           | Processing | Continue polling                 |
| `3`           | Success    | Read the output                  |
| `4`           | Failed     | Inspect `err_code` and `err_msg` |

## Project states

Project status values differ from audio task status values. A project's `step` identifies its current workflow stage; script readiness does not mean that a video has been rendered.

| Project status | Meaning                       |
| -------------- | ----------------------------- |
| `1`            | Draft                         |
| `2`            | Waiting                       |
| `3`            | Processing                    |
| `4`            | Success for the current stage |
| `5`            | Failed                        |
| `6`            | Deferred                      |
| `98`           | Prerequisite motion failure   |
| `99`           | Deleted                       |

Read the [Get project response schema](/api-reference/projects/get-project) and require the completed video's URL before treating a render as ready. Avatar and image tasks have their own response schemas; do not apply the audio enum to them.

## Export deliverables

| Deliverable                  | Operation                                                 | Request identity   |
| ---------------------------- | --------------------------------------------------------- | ------------------ |
| Rendered video               | [Get project](/api-reference/projects/get-project)        | Query `project_id` |
| Concatenated workspace audio | [Concat audio](/api-reference/audio/concat-audio)         | JSON `prj_id`      |
| Audio download URL           | [Download audio](/api-reference/audio/download-audio)     | Path `id`          |
| SRT subtitles                | [Export subtitles](/api-reference/audio/export-subtitles) | JSON `project_id`  |

These operations return or generate the project's existing stored outputs. URL and media retention follow the Web storage rules and your plan. Retrieve needed deliverables within that retention period.

## Completion notifications

Use polling for the new Podcast workflow. The existing Webhook configuration endpoints do not add Podcast completion events. See [Webhook availability](/api-reference/guides/webhooks).
