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

# Errors

> Every failure is JSON with a stable code and a message written for a human reading a log.

```json theme={"theme":{"light":"github-dark","dark":"github-dark"}}
{
  "error": {
    "code": "insufficient_credits",
    "message": "That needs 25 credits and you have 4 left."
  }
}
```

| Status | Code                   | Meaning                                                                     |
| ------ | ---------------------- | --------------------------------------------------------------------------- |
| 401    | `missing_key`          | No key                                                                      |
| 401    | `invalid_key`          | Unknown or revoked                                                          |
| 403    | `plan_required`        | The key's plan does not include API access                                  |
| 402    | `insufficient_credits` | Top up, or wait for the monthly reset                                       |
| 400    | `missing_file`         | No `file`, `url`, or `job_id`                                               |
| 400    | `unsupported_format`   | Convert will not write that format                                          |
| 413    | `file_too_large`       | Over the plan's size ceiling for that kind of media                         |
| 429    | `rate_limited`         | Too many requests a minute on this key. `retry-after` says how long to wait |
| 429    | `free_tool_limit`      | Cyclops daily free-tool cap                                                 |
| 405    | `method_not_allowed`   | Wrong verb                                                                  |
| 503    | `api_unavailable`      | Keys table not ready                                                        |
| 500    | `internal_error`       | Something we have to fix                                                    |

A **202** is not an error. The job or run was accepted and is still running. Poll `poll_url`.
