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

# API Overview

> Integrate Drumtix data into your own tools using the REST API.

The Drumtix REST API lets you read event data, orders, tickets, attendees, and check-ins programmatically — and make certain writes too. It's useful for building custom dashboards, syncing data to external tools, or triggering workflows.

<Note>
  API access requires a **Pro plan**. Keys can be generated in **Settings → API**.
</Note>

## Base URL

```
https://app.drumtix.com/api/v1
```

## Authentication

All requests require an API key passed as a Bearer token. See [Authentication](/api-reference/authentication).

## Scopes

Every API key has one or more scopes that control what it can do:

| Scope            | What it allows                                                         |
| ---------------- | ---------------------------------------------------------------------- |
| `read`           | Read all data (events, orders, tickets, attendees, check-ins, payouts) |
| `write`          | Create and update events and ticket tiers                              |
| `checkins:write` | Record check-ins via `POST /checkins`                                  |

## Rate limits

Requests are rate-limited per key. Limits are returned in response headers:

| Header                  | Description                                   |
| ----------------------- | --------------------------------------------- |
| `X-RateLimit-Limit`     | Maximum requests per minute for this key type |
| `X-RateLimit-Remaining` | Requests remaining in the current window      |

Read endpoints allow **60 requests/min**. Write endpoints allow **10 requests/min**.

When a limit is hit the API returns `429 Too Many Requests` with a `Retry-After` header (seconds until reset).

## Response format

All responses are JSON. Successful responses wrap data in a `data` key. Errors return a top-level `error` string.

```json theme={null}
// Success
{ "data": { ... } }

// List success
{ "data": [...], "total": 42, "page": 1, "limit": 20 }

// Error
{ "error": "Event not found" }
```

## Pagination

List endpoints accept `page` (default `1`) and `limit` (default `20`, max `100`) query parameters:

```
GET /api/v1/events?page=2&limit=50
```

The response includes `total`, `page`, and `limit` fields alongside `data`.

## Getting your API key

Go to **Settings → API** in the dashboard and click **Generate Key**. The raw key is only shown once — copy it immediately and store it securely.
