# REST API

## Authenticating requests

Authentication is done by passing an API token in the `Authorization` header of your HTTP request:&#x20;

```markup
Authorization: Bearer <api-token>
```

## API reference

Swagger documentation is published with all available endpoints:

* Marple DB: <https://db.marpledata.com/api/docs>
* Marple Insight: <https://insight.marpledata.com/api/v1/spec/>

<figure><img src="https://3590686807-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FwEBNWlmdcxXBXd7oyqyR%2Fuploads%2FZjKoOCMR1f4qG3AS8reU%2Fimage.png?alt=media&#x26;token=0f91189d-61d4-4753-8ab7-f7c92877b657" alt=""><figcaption></figcaption></figure>

## **Formatting request arguments** <a href="#arguments-and-responses" id="arguments-and-responses"></a>

There are two ways to pass arguments to an endpoint:

1. **URL encoding** (Key-Value Pairs) – Used in GET requests.
2. **JSON encoding** (Request Body) – Used in POST requests.

The method depends on the endpoint, but generally:

* GET requests → Use URL encoding.
* POST requests → Use JSON encoding.

```python
import requests

# URL encoding for a GET request
params = {"key1": "value1", "key2": "value2"}
response = requests.get("https://api.example.com/endpoint", params=params)

# JSON encoding for a POST request
data = {"key1": "value1", "key2": "value2"}
response = requests.post("https://api.example.com/endpoint", json=data)
```

This ensures proper data formatting based on the request type.
