Getting Started with the Seaty API

Create an API key, make your first authenticated request, and understand the response. A five-minute walkthrough for organisers integrating with Seaty.

This page takes you from nothing to your first successful API response in a few minutes.

1. Create an API key

API keys are created from your organisation's admin area, and only an organisation super-admin can create them.

  1. Sign in to Seaty and go to your organisation's admin Tools menu.
  2. Open Developer (the API keys, playground and webhooks area), and find the API keys section.
  3. Choose Create a key, give it a recognisable name (for example "Accounts sync"), and decide whether it may record balance payments and refunds.
  4. Copy the key when it is shown.

Important: the full key is shown once, at the moment you create it. Seaty stores only a one-way hash of it, so it can never be displayed again. If you lose it, revoke it and create a new one. Treat the key like a password.

A key looks like sk_live_ followed by a long random string and a signature, for example:

sk_live_q28KYUs9u4eyMzABMbzuiQmp0QLMQbNf.otRW_KxDFxMUA7QajUZTPQ

2. Make your first request

Send the key as a bearer token in the Authorization header. Here is a request for your five most recent events:

curl "https://developer.seaty.co.uk/v1/events?per_page=5" \
  -H "Authorization: Bearer sk_live_your_key_here"

The same call in a few other languages:

# Python (requests)
import requests

response = requests.get(
    "https://developer.seaty.co.uk/v1/events",
    params={"per_page": 5},
    headers={"Authorization": "Bearer sk_live_your_key_here"},
)
print(response.json())
// JavaScript (fetch)
const response = await fetch("https://developer.seaty.co.uk/v1/events?per_page=5", {
  headers: { Authorization: "Bearer sk_live_your_key_here" },
});
const body = await response.json();
console.log(body);

3. Read the response

Every list endpoint returns the same envelope: your records in data, paging links in links, and paging detail in meta.

{
  "data": [
    {
      "id": 1024,
      "tag": "spring-concert",
      "name": "Spring Concert",
      "organisation_id": 3,
      "currency_symbol": "£",
      "ticketing_enabled": true,
      "buying_enabled": true
    }
  ],
  "links": { "first": "...", "last": "...", "prev": null, "next": "..." },
  "meta": { "current_page": 1, "per_page": 5, "from": 1, "to": 5, "total": 23, "path": "/v1/events" }
}

Take the id of an event from data and use it to drill in, for example its dates:

curl "https://developer.seaty.co.uk/v1/events/1024/dates" \
  -H "Authorization: Bearer sk_live_your_key_here"

4. Explore interactively

The live, always-up-to-date reference is at https://developer.seaty.co.uk/docs. It lists every endpoint with its parameters and response shapes, and lets you authorise with your key and try calls in the browser.

5. Generate a typed client (optional)

You do not have to hand-write a client. The whole API is described by an OpenAPI 3 document at https://developer.seaty.co.uk/openapi.json, so any OpenAPI generator can produce a fully-typed SDK in your language. Because it is generated from the live spec, regenerating keeps your client in step with the API.

# A typed client in your language (swap -g: python, typescript-fetch, php, csharp, go, java, ruby, ...)
npx @openapitools/openapi-generator-cli generate \
  -i https://developer.seaty.co.uk/openapi.json \
  -g python \
  -o ./seaty-client
# TypeScript: just the types
npx openapi-typescript https://developer.seaty.co.uk/openapi.json -o ./seaty.d.ts

The SDKs & code tab in your organisation's Developer area has the same commands with a per-language quickstart you can copy.

A typical flow

Most integrations follow the same path down the data:

  1. List events → pick an event id.
  2. List that event's dates → pick a date id.
  3. List that date's orders → pick an order id.
  4. Read the order, its tickets, payments and discounts.

Each step is covered in its own endpoint guide, starting with Events.

Next


Need help? Email support@seaty.co.uk.