Getting started
Authentication
Bearer tokens created in the app, one per integration, revocable at any time. How the header looks and what a 401 means.
Updated 4 September 2026
Every request to /api/v1/* carries an API token in the Authorization header:
Authorization: Bearer sgn_R7xq9…
The scheme is case-insensitive; the token is not. Tokens are never accepted in the query string.
Tokens
- Created in Settings → Integrations → API keys by a workspace member. Give each integration its own token, so you can revoke one without breaking the others.
- Format:
sgn_followed by 43 URL-safe base64 characters (47 characters in total). - Shown once at creation. Seegnals stores only a SHA-256 hash and the first 12 characters, which is what you see in the token list.
- A token belongs to exactly one workspace and gives full access to the API for that workspace. There are no scopes or roles on tokens.
- Revoking sets
revoked_aton the token. The next request with it gets401, immediately. The row stays in the list for audit. Last usedin the token list updates on every authenticated request.
The 401 responses
Both bodies carry WWW-Authenticate: Bearer realm="Seegnals API".
{ "error": "Missing bearer token." }
The header is absent or does not start with Bearer.
{ "error": "Invalid API token." }
The token has the wrong shape, is unknown, or has been revoked. The API does not tell you which, on purpose.
What you will not see
- 403. A token only ever sees its own workspace. A request for another workspace’s prospect or subscription returns
404, exactly as if the id did not exist. - 500 on bad auth. A missing or wrong token always ends as
401. This is checked after every deploy. - OAuth, IP allow-lists, CORS headers. The API is meant to be called from your server, a workflow tool or a script. Calls from a browser page on another origin are not supported.
Good practice
Store the token in your secret manager. Keep it out of your codebase. Rotate by creating a new token, switching the integration, then revoking the old one. If a token leaks, revoke it first and ask questions later; creating a replacement takes ten seconds.