API Overview

Run your own website on your Sway data, sell tickets from it, and hear from Sway when something changes.

The Sway Public API lets a crew (an agency, a promoter collective, a venue team) run its own website on its Sway data. Your site stays independent and talks to Sway only through the API:

  • Show your roster, events, line-ups and timetables, venues, news, partners, galleries and press kits.
  • Sell tickets: open a Sway checkout from your site, check a coupon or an access code first, follow the order.
  • Sell merch from your pages' shops: the catalogue, a cart Sway prices, a Stripe checkout on the page's own account.
  • Collect: booking requests, newsletter sign-ups, answers to your forms.
  • Run your ambassador programme on your own pages: sign-up, sign-in by email link, member area, leaderboard, rewards.
  • Hear about changes as they happen with webhooks, instead of asking every few minutes.
  • Ask an AI assistant about your data through the MCP server.

Base URL

https://www.sway.events/api/v1

Every endpoint is versioned under /v1. Answers are JSON with snake_case keys, except the calendar feeds (text/calendar) and the exports (NDJSON). GET /v1/openapi.json describes every endpoint in OpenAPI 3.1, and GET /v1/changelog lists what changed and when.


Who gets access

The API comes with the Studio and Roster plans. Keys are created in Crew admin → API by someone with the Manage API permission on the crew.

Each key belongs to exactly one crew: the key alone decides whose data you see, never a request parameter. If the crew's subscription lapses, its keys stop working until it is active again.


What your key can see

Everything the API returns is either managed or public:

LevelWhat it coversWhat you get
ManagedThe pages linked to your crew (its artists, promoters and venues) and their eventsThe full representation: bio, every link including contact emails, gig history
PublicPages that appear in your events without being yours: a guest artist on a line-up, a venue you do not manageOnly what the public Sway page already shows, marked "managed": false

Example: the guest artist. Your promoter's event features an artist who is not on your crew. The artist appears inside the event's line-up with public fields only (name, image, genres) and "managed": false. Fetched directly, GET /v1/artists/{id} answers 404.

Anything outside your crew's pages answers 404, never 403, so the API reveals nothing about what you cannot reach.

Your crew's roster artists are returned even while unpublished: the roster is your own data. Every other resource is returned only once published; unpublished ones answer 404 or are left out of line-ups.

Quickstart

Check your key and what it can do:

curl https://www.sway.events/api/v1/me \
  -H "Authorization: Bearer sway_sk_YOUR_KEY"
{
  "key": {
    "id": "3f9a1c02-7b45-4c8e-9d21-0a1b2c3d4e5f",
    "type": "secret",
    "scopes": ["read:profile", "read:artists", "read:promoters", "read:events", "read:venues", "read:content"],
    "rate_limit": { "per_minute": 120, "per_day": 20000 },
    "limits": {
      "requests_per_minute": 2400,
      "crew_work_per_minute": 600,
      "crew_work_per_day": 120000,
      "bytes_per_day": 5368709120
    },
    "websites": []
  },
  "crew": { "id": "a2628d53-4f21-4c1e-9b7d-1a2b3c4d5e6f", "name": "Insomnia", "slug": "insomnia" }
}

Then list your upcoming events:

curl "https://www.sway.events/api/v1/events?limit=10" \
  -H "Authorization: Bearer sway_sk_YOUR_KEY"

A single resource comes back as the object itself; a list comes wrapped in { "data": [...], "pagination": {...} }.


Learn more

Authentication

Secret and publishable keys, scopes, rate limits, caching, errors and idempotency.

Endpoint reference

Every endpoint, with its parameters and an example answer.

Pagination and filtering

Cursors, filters, fields, languages and expansion.

Website integration

The recipe for running a partner website on the API.

Webhooks

Signed calls to your server when an order is paid or an event changes.

MCP server

Read-only tools for AI assistants, on your crew's data.