Skip to main content
The Seyn API authenticates every request with a bearer API key. Each key belongs to exactly one organisation; there are no cross-organisation keys.

Key format

Seyn keys are random tokens prefixed with sk_live_:
Send the key in an Authorization header on every request:
The SDK does this for you automatically: you just pass { apiKey } to the constructor.

Creating a key

  1. Sign in at app.seynlabs.com.
  2. Open Settings → API Keys.
  3. Click Create, give it a label.
  4. Copy the full sk_live_* token from the modal. This is the only time the full token is visible: Seyn only stores its SHA-256 hash plus the first 8 characters (the prefix) for display.
If you close the modal without copying the token, the key is unrecoverable. Revoke it and create a new one.

Org admins can manage keys

Anyone with the org:admin role in your Seyn organisation can create and revoke keys for that organisation. org:member accounts can use the API but can’t manage keys.

Rotation

There’s no “edit” or “renew” operation: keys are immutable. To rotate:
  1. Create a new key.
  2. Deploy your services with the new key.
  3. Once you’re confident every caller is on the new key, revoke the old one in the same dashboard.
Revocation takes effect immediately. The next request with the revoked key will get a 403 KEY_REVOKED response.

Where to use a key

  • Server-side only. API keys grant read access to your entire organisation’s extracted knowledge. Treat them like database credentials.
  • Environment variables or your secret store (HashiCorp Vault, AWS Secrets Manager, 1Password, etc.). Never commit a key.
  • Never in browsers or mobile apps. If you need browser-side queries, proxy through your own backend that reads the key from its environment.

Error codes

The INVALID vs REVOKED distinction is deliberate. If you see INVALID_API_KEY, the bug is on your side: check what you pasted. If you see KEY_REVOKED, the bug is upstream: talk to your admin.

Rate limits

Default: 60 requests per minute per key. A 429 with code: "RATE_LIMITED" is returned when you exceed it. If your integration needs higher throughput (large backfills, real-time chat, BI workloads), email support@seynlabs.com with your use case and we’ll raise the limit on specific keys. The SDK does not retry on 429s; wrap your calls with your own retry-with-backoff if needed.

Multi-tenancy

Each API key is scoped to one Seyn organisation. Even if your account belongs to multiple organisations in Seyn, a given key only sees one of them. Every query is implicitly filtered to that org server-side, so there is no way to leak data across organisations via API access.