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

# Quickstart

> Make your first API call in under 2 minutes

## 1. Get an API Key

Go to the [Tickable dashboard](https://app.tickable.nl/settings/developers) and create an API key with the `events.read` scope.

## 2. List Your Events

<CodeGroup>
  ```bash cURL theme={null}
  curl https://api.tickable.io/events \
    -H "Authorization: Bearer tk_live_YOUR_API_KEY"
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.tickable.io/events', {
    headers: {
      'Authorization': 'Bearer tk_live_YOUR_API_KEY'
    }
  });
  const { data, pagination } = await response.json();
  console.log(data);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://api.tickable.io/events',
      headers={'Authorization': 'Bearer tk_live_YOUR_API_KEY'}
  )
  data = response.json()
  print(data)
  ```
</CodeGroup>

You should get a response like:

```json theme={null}
{
  "data": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "title": "Summer Festival 2026",
      "description": "Annual summer music festival",
      "location": "Vondelpark",
      "is_public": true,
      "created_at": "2026-04-01T12:00:00Z"
    }
  ],
  "pagination": {
    "total": 1,
    "limit": 25,
    "offset": 0,
    "has_more": false
  }
}
```

## 3. Get Event Details

Pick an event ID from the list and fetch its details including ticket types:

```bash theme={null}
curl https://api.tickable.io/events/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: Bearer tk_live_YOUR_API_KEY"
```

## 4. List Tickets for an Event

Fetch tickets for an event. You'll need an API key with the `tickets.read` scope:

```bash theme={null}
curl https://api.tickable.io/events/550e8400-e29b-41d4-a716-446655440000/tickets \
  -H "Authorization: Bearer tk_live_YOUR_API_KEY"
```

Each ticket includes a `status` field (`valid`, `scanned`, or `cancelled`) so you can quickly see its state.

## 5. Set Up a Webhook (optional)

Get notified when orders come in. You'll need an API key with the `webhooks.write` scope:

```bash theme={null}
curl -X POST https://api.tickable.io/webhooks \
  -H "Authorization: Bearer tk_live_YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://yourapp.com/webhook",
    "event_types": ["order.confirmed"]
  }'
```

## Next Steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="lock" href="/authentication">
    Learn about API keys, OAuth2, and scopes
  </Card>

  <Card title="Pagination" icon="list" href="/guides/pagination">
    How to paginate through large result sets
  </Card>

  <Card title="Tickets Guide" icon="ticket" href="/guides/tickets">
    List and scan tickets via the API
  </Card>

  <Card title="Webhooks Guide" icon="bell" href="/guides/webhooks">
    Set up real-time notifications
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/events/list-events">
    Explore all available endpoints
  </Card>
</CardGroup>
