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

# Errors

> Every error code, its HTTP status and its message.

Every error has the same shape. `field` is there when one field is wrong.

```json theme={null}
{ "error": { "code": "validation_error", "message": "Some fields are missing or wrong.", "field": "to" } }
```

| Code | HTTP | Message |
| - | - | - |
| `unauthorized` | 401 | API key is missing or not valid. |
| `key_off` | 403 | This API key is switched off. |
| `forbidden_scope` | 403 | This API key isn't allowed to do this. |
| `ip_not_allowed` | 403 | Requests from this IP address aren't allowed for this key. |
| `needs_pro_plan` | 403 | The API needs the Pro plan. |
| `plan_ended` | 403 | Your plan has ended. Renew it to send messages. |
| `insufficient_balance` | 402 | Not enough money in your wallet. |
| `daily_limit_reached` | 422 | Your daily messaging limit is reached. |
| `contact_stopped` | 422 | This person has stopped marketing messages. |
| `number_not_ready` | 409 | Your WhatsApp number can't send messages right now. |
| `us_marketing_paused` | 422 | Marketing messages can't go to US numbers. |
| `country_unavailable` | 422 | WhatsApp isn't available in this country. |
| `no_price` | 422 | Sending to this country isn't available yet. |
| `invalid_number` | 400 | Not a valid number. |
| `validation_error` | 400 | Some fields are missing or wrong. |
| `request_id_reused` | 409 | This request ID was already used for a different request. |
| `rate_limited` | 429 | Too many requests. Try again in a few seconds. |
| `not_found` | 404 | Not found. |
| `server_error` | 500 | Something went wrong on our side. Try again. |
| `outside_24h_window` | 422 | The 24-hour reply window is closed. Send a template instead. |
| `template_not_found` | 404 | Template not found. |
| `template_not_approved` | 422 | This template isn't approved yet. |
| `template_variables_mismatch` | 400 | The template's variables don't match. |
| `media_unreachable` | 422 | The media link can't be opened. |
| `media_too_large` | 422 | The media file is too large. |
| `otp_template_missing` | 422 | No approved OTP template found. |
| `webhook_url_invalid` | 400 | The webhook link must start with https\://. |
| `template_name_taken` | 409 | A template with this name already exists. |
| `template_edit_limit` | 409 | This template can't be edited right now. Try again later. |
| `campaign_state_conflict` | 409 | This campaign can't be changed right now. |
| `audience_empty` | 422 | No valid numbers to send to. |
| `otp_not_in_campaigns` | 422 | OTP templates can only be sent one by one. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.