API
View as Markdown

Authentication

Every request must carry your API key in one of two headers:

Authorization: Bearer tvty_YOUR_KEY_HERE

or, for clients that cannot set Authorization:

X-API-Key: tvty_YOUR_KEY_HERE

Keys passed via query string are rejected — they leak into proxy access logs.

Authentication failures return HTTP 401 with one of these error codes:

CodeReason
unauthorizedMissing, malformed, or invalid key
key_revokedKey was explicitly revoked in settings
key_expiredKey reached its expires_at date

Key storage

Keys are stored as a SHA-256 hash on our servers — we cannot show you the plaintext after you create the key. Lose it and you have to revoke and create a new one. Pre-existing keys created before 2026-05 are still valid but cannot be displayed in full anymore.

Multiple keys per account

You can have up to 25 active keys at a time. Each key has its own name, scopes, and rate-limit window. Use separate keys per integration (e.g. one for your AI agent, one for a mobile script, one for backups) so you can revoke them independently if anything leaks.

Next: Scopes.