Getting Started

Authentication

Relay uses API keys to authenticate requests. You manage keys from your dashboard.

API keys

Each organisation has one or more API keys. Keys are prefixed to indicate their environment:

relay_live_...
LiveProduction requests. Billed to your account.
relay_test_...
TestDevelopment and staging. Not billed.

Sending requests

Pass your API key in the Authorization header as a Bearer token on every request:

curl
1
2
curl https://api.relay.dev/v1/halls \
  -H "Authorization: Bearer relay_live_sk_..."
TypeScript / fetch
1
2
3
4
5
6
const res = await fetch("https://api.relay.dev/v1/halls", {
  headers: {
    Authorization: "Bearer relay_live_sk_...",
    "Content-Type": "application/json",
  },
});
Python / requests
1
2
3
4
5
6
7
import requests

r = requests.get(
    "https://api.relay.dev/v1/halls",
    headers={"Authorization": "Bearer relay_live_sk_..."},
)
data = r.json()
API keys grant full access to your organisation. Never expose them in client-side JavaScript, mobile app bundles, or public repositories. Always make Relay API calls from your backend server.

Key management

You can create, rename, and revoke API keys from Dashboard → Settings → API Keys. Revoking a key immediately invalidates it — any in-flight requests using that key will fail.

Rotate regularly

Create a new key, update your server, then revoke the old one. Zero downtime.

One key per environment

Use separate keys for development, staging, and production.

401 Unauthorized

If your API key is missing, malformed, or revoked, the API returns:

json
1
2
3
{
  "detail": "Invalid or missing API key"
}