# Evaluating Responses

All API responses contain a JSON object, which will always contain a top-level integer property `status_code`, indicating success (`= 0`) or failure (`!= 0`).

{% hint style="info" %}
In case of errors, are adopted HTTP status codes are adopted and a JSON string property `message` that explain the error.
{% endhint %}

## Errors

MBurger APIs uses the following HTTP error codes:

| Code | Meaning               | Description                                                        |
| ---- | --------------------- | ------------------------------------------------------------------ |
| 400  | Bad Request           | Your request is invalid.                                           |
| 401  | Unauthorized          | Your API key is wrong or not present.                              |
| 403  | Forbidden             | You don't have permission to access this resource.                 |
| 404  | Not Found             | The requested resource can not be found.                           |
| 405  | Method Not Allowed    | You tried to use an invalid method.                                |
| 406  | Not Acceptable        | You requested a format that isn't json.                            |
| 422  | Unprocessable Entity  | Your request did not pass the input validation.                    |
| 429  | Too Many Requests     | You're requesting too many! Slow down!                             |
| 500  | Internal Server Error | We had a problem with our server. Try again later.                 |
| 503  | Service Unavailable   | We're temporarily offline for maintenance. Please try again later. |

## Examples

On authentication error is returned an HTTP 401 and a JSON like this:

```bash
{
  "message": "The project token is not present."
}
```

On bad request error is returned an HTTP 400 and a JSON like this:

```bash
{
  "message": "Given filter(s) `available` are not allowed. Allowed filter(s) are `id, subscription, value, geofence`."
}
```

On permission error is returned an HTTP 403 and a JSON like this:

```bash
{
  "message": "This action is unauthorized."
}
```

On not found error is returned an HTTP 404 and a JSON like this:

```bash
{
  "message": "The requested resource can not be found."
}
```

On validation error is returned an HTTP 422 and a JSON like this:

```bash
{
  "message": "The given data was invalid.",
  "errors": {
    "email": [
      "The email has already been taken."
    ]
  }
}
```


---

# 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.mburger.cloud/api-docs-1/common/evaluating-responses.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.
