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

# Errors

> HTTP status codes and error response format for the ClickTerm API.

ClickTerm uses standard HTTP status codes to indicate the success or failure of an API request.

## Error codes

| Code  | Meaning               | Description                                                           | How to fix                                                                                       |
| ----- | --------------------- | --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
| `400` | Bad Request           | Your request is invalid. Details are included in the response body.   | Check the `message` field in the response for the specific validation error                      |
| `401` | Unauthorized          | Your App ID or App Key is incorrect.                                  | Verify `X-APP-ID` and `X-APP-KEY` headers. See [Authentication](/api-reference/authentication)   |
| `403` | Forbidden             | You are not allowed to access this resource.                          | Check that your integration is linked to the template in the Dashboard                           |
| `404` | Not Found             | The specified App ID is not valid or the template could not be found. | Ensure the template is **Enabled** with an **Effective** version                                 |
| `405` | Method Not Allowed    | You used an HTTP method not supported by this endpoint.               | Use `POST` for `/clickwrap/verify`, `GET` for all other endpoints                                |
| `406` | Not Acceptable        | You requested a format that isn't JSON.                               | Set `Accept: application/json` or omit the header                                                |
| `409` | Conflict              | You are trying to create a resource that already exists.              | The Signature has already been verified — each is single-use                                     |
| `429` | Too Many Requests     | Rate limit exceeded.                                                  | Wait for the duration in the `Retry-After` header. See [Rate Limits](/dev/resources/rate-limits) |
| `500` | Internal Server Error | Something went wrong on our end.                                      | Retry once, then contact support if it persists                                                  |
| `503` | Service Unavailable   | We're temporarily offline for maintenance.                            | Retry after the `Retry-After` header duration                                                    |

## Error response format

Error responses include a message describing the issue:

```json theme={null}
{
  "message": "The clicktermSignature field is required."
}
```

## Common issues

### 401 Unauthorized

* Verify your **App ID** and **App Key** are correct
* Check that you're using headers (`X-APP-ID`, `X-APP-KEY`), not query parameters
* If you recently regenerated the App Key, make sure your backend is using the new one

### 404 Not Found

* The template may not be **Enabled** in the dashboard
* The template may not have an **Effective** version (check that `effectiveAt` has passed)
* The App ID may not be linked to the template

### 400 Bad Request

* The `clicktermSignature` field is missing or malformed in the verify request
* A required parameter is missing from the request

<Info>
  For SDK-specific errors (Web and Android), see the [SDK Error Reference](/dev/resources/errors).
</Info>
