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"
}