Skip to main content
Two credentials, one rule: the credential identifies an account, and every quota and every row it can reach belongs to that account.

Personal API keys

Create one in the Developer console. Free accounts can hold two active keys; Patron holds five and Pro holds twenty.
Both are equivalent. Use Authorization: Bearer unless a client library insists on the other.
A key grants full access to the owner’s private library, reading history, and feeds. Never put one in a query string, in client-side code, in logs, or anywhere article content could reach it. Never send it to a publisher URL.

Key lifecycle

1

Create one key per client or deployment

Then a compromised integration can be revoked on its own.
2

Copy the secret immediately

smry stores only a verifier and cannot show the secret again.
3

Keep it in a secret manager

Not in source, not in commit history, not in a screenshot.
4

Revoke anything unused or exposed

Revocation takes effect on the next request.
Keys can expire, and entitlement is rechecked on every request. Holding more keys does not raise any quota — limits are per account, not per key.

OAuth

Interactive clients discover OAuth at https://api.smry.ai/.well-known/oauth-protected-resource, register dynamically when needed, and run Authorization Code with PKCE. The user must approve access before your client receives a token. Two scopes exist, and an operation declares exactly one: Each endpoint page in the API Reference names the scope it requires. Request the narrowest one your client actually needs.
The hosted MCP server requires smry:write, because tool discovery exposes mutating tools. See Connect an agent.

What these credentials do not authorize

Personal keys and OAuth tokens authorize /v1/* and /mcp only. They are not browser sessions: they do not work against smry’s internal /api/* paths. The reverse also holds — a signed-in browser session or extension credential does not authorize /v1/*.

Handling failures

Every one of those responses carries the same envelope — error and code, and sometimes hint or retryAfter. Branch on code. Full table in Errors.

Next

Quickstart

Make the first authenticated request.

Rate limits

What a key is allowed to do per minute and per day.
Last modified on September 13, 2026