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

# Error codes

> Every AppGoat API error code with its HTTP status, cause and fix.

Every error is `{ "error": { code, message, hint, docs } }` with the matching HTTP status, whoever answered (the gateway or the data service). `docs` links to the code's page here, `https://docs.appgoat.ai/errors/<code>`. Read `hint`: it says what to do next. Failed requests never cost credits.

```json theme={null}
{
  "error": {
    "code": "insufficient_credits",
    "message": "Out of credits: monthly plan credits and credit packs are used up.",
    "hint": "Upgrade your plan, or on Indie / Studio buy a credit pack …",
    "docs": "https://docs.appgoat.ai/errors/insufficient_credits"
  }
}
```

Some errors carry extra fields: `param` (the parameter at fault) on `invalid_param` and `invalid_credentials`, `provider_status` on `provider_error`, `approve_url` on `forbidden`.

| Code | HTTP | Meaning |
| - | - | - |
| [`invalid_param`](https://docs.appgoat.ai/errors/invalid_param) | 400 | A parameter is missing or invalid |
| [`invalid_api_key`](https://docs.appgoat.ai/errors/invalid_api_key) | 401 | Missing or invalid API key |
| [`unauthorized`](https://docs.appgoat.ai/errors/unauthorized) | 401 | Not authorized |
| [`insufficient_credits`](https://docs.appgoat.ai/errors/insufficient_credits) | 402 | Not enough credits |
| [`plan_limit`](https://docs.appgoat.ai/errors/plan_limit) | 402 | Not included in your plan |
| [`not_found`](https://docs.appgoat.ai/errors/not_found) | 404 | Not found |
| [`app_not_found`](https://docs.appgoat.ai/errors/app_not_found) | 404 | App not found |
| [`developer_not_found`](https://docs.appgoat.ai/errors/developer_not_found) | 404 | Developer not found |
| [`job_not_found`](https://docs.appgoat.ai/errors/job_not_found) | 404 | Job not found |
| [`method_not_allowed`](https://docs.appgoat.ai/errors/method_not_allowed) | 405 | Method not allowed |
| [`conflict`](https://docs.appgoat.ai/errors/conflict) | 409 | Conflict |
| [`not_ready`](https://docs.appgoat.ai/errors/not_ready) | 4xx | Not ready yet |
| [`rate_limited`](https://docs.appgoat.ai/errors/rate_limited) | 429 | Too many requests |
| [`internal_error`](https://docs.appgoat.ai/errors/internal_error) | 500 | Internal error |
| [`upstream_unavailable`](https://docs.appgoat.ai/errors/upstream_unavailable) | 502 | Data service unavailable |
| [`free_audit_used`](https://docs.appgoat.ai/errors/free_audit_used) | 402 | Free App Audit already used |
| [`forbidden`](https://docs.appgoat.ai/errors/forbidden) | 403 | Needs approval by a person |
| [`invalid_credentials`](https://docs.appgoat.ai/errors/invalid_credentials) | 422 | Connection credentials rejected |
| [`provider_error`](https://docs.appgoat.ai/errors/provider_error) | 502 | Store API error |
| [`not_configured`](https://docs.appgoat.ai/errors/not_configured) | 503 | Not configured |


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