# Track Requests & Status Codes

Most AutoContent generation endpoints are asynchronous. Submit the job, save the returned request ID exactly as-is, poll the status endpoint, and only read final asset fields once the request reaches `100`.

## Step 1: Save the Request ID

Different endpoints may return the same concept with slightly different field names:

* `request_id`
* `requestId`

Examples:

```json
{
  "request_id": "550e8400-e29b-41d4-a716-446655440000",
  "status": 0
}
```

```json
{
  "requestId": "video-550e8400-e29b-41d4-a716-446655440000",
  "status": 0
}
```

Keep the full value unchanged. Some endpoints prefix the ID with the job type, such as `video-...` or `research-podcast-...`.

## Step 2: Poll `/content/Status/{id}`

Use the exact request ID returned by the create call:

```bash
curl -X GET "https://api.autocontentapi.com/content/Status/YOUR_REQUEST_ID" \
  -H "Authorization: Bearer YOUR_API_TOKEN"
```

Typical in-progress response:

```json
{
  "id": "YOUR_REQUEST_ID",
  "status": 5,
  "updated_on": "2026-03-11T19:10:00Z",
  "error_code": 0,
  "requested_on": "2026-03-11T19:08:00Z"
}
```

## Step 3: Interpret the Status Value

The two stable states are:

* `0`: accepted and queued
* `100`: completed

Intermediate values vary by endpoint. Common examples include:

| Status                             | Meaning           | Where you may see it                           |
| ---------------------------------- | ----------------- | ---------------------------------------------- |
| `5`                                | Early processing  | Podcasts, research-backed flows, several tools |
| `10`, `20`, `30`, `60`, `80`, `90` | Mid-pipeline work | Endpoint-specific generation stages            |

Treat any value between `1` and `99` as "still running" unless the response also includes an error.

## Step 4: Read Success and Error Fields

Once the request reaches `100`, the payload includes output-specific fields. Common ones include:

* `audio_url` for podcast outputs
* `video_url` or similar media URLs for video endpoints
* `document_url` or `briefing_doc_url` for PDF briefing documents
* `document_content` for `html` or `text` briefing documents
* `response_text` for generated transcript or text content
* `share_url` for hosted result pages

Error metadata can also vary slightly by endpoint. Watch for either:

* `error_code` or `errorCode`
* `error_message` or `errorMessage`

If the response includes a non-zero error value, use [Error Codes](/error-codes.md) to diagnose the failure before retrying.

## Step 5: Use `callbackData` for Reconciliation

Some endpoints accept an optional `callbackData` field. Use it as your own stable job reference, for example:

* a CMS entry ID
* a campaign or customer ID
* an internal workflow run ID

When a workflow supports webhook notifications, `callbackData` is the safest way to map the incoming event back to your system. Keep it short, machine-readable, and unique per job.

## Endpoint-Specific Notes

* Briefing documents: poll `/content/Status/{id}` first, then use `/documents/{id}` only after the job has completed.
* Deep research: the research creation flow uses `/deep-research/research/{id}` while the downstream content generation still uses `/content/Status/{id}`.
* Tools such as transcription, speaker separation, and voice cloning still follow the same "save ID, poll, read final result" pattern.

## Related Endpoints

* `GET /content/Status/{id}` - Check the status of a generated content request.
* `GET /deep-research/research/{id}` - Check the status of a deep research request.

## What's Next?

* Need a reusable file ID first? Follow [Upload Private Files](/quick-start/tools/upload-files.md).
* Working with documents? See [Create a Briefing Document](/quick-start/documents/create-document.md).
* Need troubleshooting details? Review [Error Codes](/error-codes.md).


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.autocontentapi.com/quick-start/tools/track-requests.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
