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

# Data API overview

> Use your brand's results in dashboards and spreadsheets

The Data API lets you pull your brand's views, placements, and creator stats into dashboards, spreadsheets, or a data warehouse. The numbers match your client hub. The API is read only.

## Get a key

If you are a client admin, open the client portal and select **Settings > Developers > Data API > Create key**. You can also ask your EVO team to create one from your brand's **Client Hub** tab in the EVO team workspace.

Copy the key when it appears. You will see it only once. A key starts with `evo_live_`. You can revoke a key at any time and keep up to 10 active keys for your brand.

## Make a request

The base URL is `https://dialedapi.evomarketing.co/api/v1`. Send your key as a Bearer token when your tool supports headers:

```bash theme={null}
curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://dialedapi.evomarketing.co/api/v1/metrics/summary?period=30d"
```

You can also send `X-EVO-API-Key: YOUR_API_KEY`. Use `api_key` in the URL only when a spreadsheet tool cannot send headers. Headers are safer because URLs can appear in browser history and logs.

## Read a response

JSON responses contain `data` and `meta`. List responses for `/posts` and `/creators` also contain `pagination`.

| Part | What you get |
| - | - |
| `data` | The requested totals, daily rows, placements, creators, or brand details |
| `meta.brand` | Your brand's `id` and `name` |
| `meta.start_date`, `meta.end_date` | The inclusive date range used |
| `meta.platforms`, `meta.attribution` | The selected platforms and attribution method |
| `meta.generated_at` | When the response was generated |
| `pagination` | The fields needed to request the next list page |

Numbers refresh with EVO's daily sync. Allow time for new activity to appear.

## Limits and errors

You can make 120 requests per minute per key. If you exceed that limit, the API returns HTTP `429` with a `Retry-After` header. Wait that many seconds before you retry.

Errors use `{"error":{"code":"invalid_parameter","message":"..."}}`.

| HTTP status | Error code | What to do |
| - | - | - |
| `400` | `invalid_parameter` | Check the parameter name and value, then retry. |
| `401` | `unauthorized` | Send a valid key. |
| `401` | `key_revoked` | Create a new key. |
| `429` | `rate_limited` | Wait for the time in `Retry-After`, then retry. |

## Next steps

<CardGroup cols={2}>
  <Card title="Endpoints" icon="list" href="/data-api/endpoints">
    Find filters, fields, and request examples.
  </Card>

  <Card title="Spreadsheets" icon="table" href="/data-api/spreadsheets">
    Bring CSV data into Google Sheets, Looker Studio, or Excel.
  </Card>

  <Card title="Examples" icon="code" href="/data-api/examples">
    Copy recipes for curl, Python, and JavaScript.
  </Card>
</CardGroup>
