Getting Started with the Seaty API
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.
- Sign in to Seaty and go to your organisation's admin Tools menu.
- Open Developer (the API keys, playground and webhooks area), and find the API keys section.
- Choose Create a key, give it a recognisable name (for example "Accounts sync"), and decide whether it may record balance payments and refunds.
- 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:
- List events → pick an event
id. - List that event's dates → pick a date
id. - List that date's orders → pick an order
id. - Read the order, its tickets, payments and discounts.
Each step is covered in its own endpoint guide, starting with Events.
Next
- Authentication and keys: scopes, security and revoking keys.
- Requests and responses: pagination, money, dates, errors and rate limits.
Need help? Email support@seaty.co.uk.