> ## 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.

# Public Events Feed

> Pull an organisation's upcoming events as JSON — no API key required.

The events feed is a public, read-only endpoint that returns an organisation's upcoming published events. It's used by Drumtix's own embeddable multi-event widget, and you can call it directly to build your own integration — no API key needed.

## Endpoint

```
GET https://app.drumtix.com/api/widget/events/:orgSlug
```

`:orgSlug` is the organisation's public slug — the same one used in your Shop and checkout URLs (e.g. `drumtix.com/shop/your-slug`).

### Query parameters

| Parameter | Type   | Default | Description                                                   |
| --------- | ------ | ------- | ------------------------------------------------------------- |
| `max`     | number | `6`     | Maximum number of events to return. Clamped between 1 and 20. |

### Response

Returns a JSON array of upcoming, published events, ordered by start date. Past, draft, and archived events are never included.

```json theme={null}
[
  {
    "slug": "friday-night-live",
    "orgSlug": "acme-nightclub",
    "title": "Friday Night Live",
    "startsAt": "2026-07-11T21:00:00.000Z",
    "endsAt": "2026-07-12T03:00:00.000Z",
    "timezone": "Europe/London",
    "venueName": "Acme Warehouse",
    "imageUrl": "https://cdn.drumtix.com/events/abc123/poster.jpg",
    "currency": "GBP",
    "lowestPriceMinor": 1500,
    "highestPriceMinor": 3000,
    "status": "available",
    "ticketUrl": "https://app.drumtix.com/e/acme-nightclub/friday-night-live"
  }
]
```

* `lowestPriceMinor` / `highestPriceMinor` are in minor currency units (e.g. pence for GBP) and reflect only currently-available ticket tiers. Both are `null` if no tiers are currently available.
* `status` is one of `available`, `sale_ended`, or `sold_out`.
* `ticketUrl` links straight to the Drumtix checkout page for that event.

### Example

```js theme={null}
const res = await fetch('https://app.drumtix.com/api/widget/events/acme-nightclub?max=10')
const events = await res.json()
```

## Rate limits

This endpoint is rate-limited per IP address to keep it fair for everyone calling it. If you exceed the limit, you'll get a `429` response with `Retry-After`, `X-RateLimit-Limit`, and `X-RateLimit-Remaining` headers telling you how long to wait.
