The two paths run on separate gateways with different routing — an
API key is never valid against dashboard endpoints, and a JWT is
never valid against the public API.
API keys
API keys authenticate every public-data request — countries, cities, walking tours, entry requirements, and the rest.Header format
Send the key as thex-api-key header:
Constraints
- Up to 5 active keys per account. Revoke unused keys to free a slot.
- The plaintext key is shown once at creation and never persisted in recoverable form. Store it in a secrets manager.
- Names are unique per account — duplicates return
409 Conflict. - Revocation is soft (sets
revoked_at) and idempotent. Revoked keys remain visible in the dashboard for audit but are rejected by the API.
Rotation
There is no in-place rotation. To rotate:- Mint a new key in the dashboard.
- Deploy it to your client.
- Revoke the old key.
JWT (developer dashboard)
The dashboard endpoints — managing your own keys, viewing usage, checking your subscription — use a Supabase-issued JWT in the standardAuthorization: Bearer header.
You will not normally call these endpoints directly; the
developer dashboard handles them. They
exist for tooling and CI scripts that need programmatic access to a
specific user’s account.
Dashboard endpoints additionally require a real user — anonymous
Supabase sessions cannot mint or manage keys. Sign up before
attempting key management calls.
Subscription tiers
Every key carries a tier derived from the account’s developer subscription. Tiers gate request volume and rate limits.MVP note. Tier-based rate limiting is staged but not yet enforced
at the gateway. Keys are minted with the correct tier and the
enforcement layer will roll out without API contract changes — your
existing integrations will not need to change when limits go live.
Watch the developer dashboard for the
current per-tier quota.