> For the complete documentation index, see [llms.txt](https://docs.exoclick.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.exoclick.com/api/exoclick-public-api/api-manual-http-headers.md).

# HTTP Headers

This section describes the HTTP headers the API will accept from any request.

## Content-Type

All requests must contain a content-type HTTP Header.

### Accepted Content-Types

| Base Format | Content-Types       | Content-Types                                       |
| ----------- | ------------------- | --------------------------------------------------- |
| JSON        | application/json    | text/json is currently not an accepted content type |
| Form data   | multipart/form-data | Only used when uploading variations                 |

### Content-Type Errors

| Response Code | Notes                                                                                                       |
| ------------- | ----------------------------------------------------------------------------------------------------------- |
| 400           | The content type was understood but could not be decoded. More information will appear in the response body |
| 415           | The content type is missing or is not supported                                                             |

{% hint style="info" %}
**Note**: In cases where the content-type header has a problem then the response content-type will be the default format for the API, currently application/json
{% endhint %}

{% hint style="info" %}
**Note**: The API currently does not adhere to the Accept-type HTTP Header, all responses are sent in the same content-type as the received request provided the request’s content-type was valid
{% endhint %}

## Authorization

This header is optional and is used to provide authentication details to the API for the current user which will enable the current user to access restricted API resources. Tokens can be obtained via the Login API. An example header is:

```
Authorization: Bearer 45267dbe480c8c7d799c62ccad92cb44f67ab086
```

The Authorization header accepts a string that is built from two parts, seperated by a single space. The first part is the token type, the second is the access token itself.

### Authorization Errors

| Response Code | Notes                                                                   |
| ------------- | ----------------------------------------------------------------------- |
| 400           | A malformed authorization header was provided                           |
| 401           | The authorization header is missing or the token was invalid or expired |

### Choosing an authorization token type

On any failure the response headers will contain a WWW-Authenticate header which will indicate the token type that is required for access.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.exoclick.com/api/exoclick-public-api/api-manual-http-headers.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
