Vibefollow authenticates every request with a single API key. There is no OAuth dance and no per-user token — one key per project, scoped to the project’s ingest endpoints.Documentation Index
Fetch the complete documentation index at: https://docs.vibefollow.com/llms.txt
Use this file to discover all available pages before exploring further.
Key format
Keys follow Stripe-style prefixes so you can spot them in a log:| Prefix | Environment | Status |
|---|---|---|
sk_live_… | Production | Available today |
sk_test_… | Sandbox | Coming soon |
sk_live_AbCd1234…XyZ (32+ random characters after the prefix). After issue we only ever display the first 8 and last 4 in the dashboard — the full secret is shown exactly once at creation time.
Key lifecycle
Issue a key
- Sign in at app.vibefollow.com.
- Open Settings → Developers → API keys.
- Click Create key, name it (e.g.
prod-server,staging-server), and copy the secret immediately. - Store it in your secrets manager.
Store the key
Put the secret in your environment as
VIBEFOLLOW_API_KEY — never in source, never in client bundles. Vault, AWS Secrets Manager, Doppler, fly secrets — pick one and stick to it.Use the key
Every request must carry your API key in the
Authorization header. The SDK does this for you; direct REST callers send it themselves.- Node SDK
- cURL
- Raw fetch
Rotate the key
There is no atomic “rotate” button — instead, create the new key first, deploy it to your servers, then revoke the old one. This window of overlap is the only safe way to rotate without dropping events.
- Create a new key (
prod-server-2). - Deploy the new key to your environment (
VIBEFOLLOW_API_KEY). - Verify traffic is flowing under the new key (the dashboard shows last-used timestamp per key).
- Revoke the old key.
Security notes
Keys are hashed at rest
Keys are hashed at rest
Keys are stored salted-hashed (Argon2id) — we cannot reveal a key after it leaves the create-modal. This is why losing the plaintext requires a reissue.
HTTPS only
HTTPS only
All API traffic is HTTPS-only. HTTP requests are refused at the edge with a redirect to
https://. TLS 1.2+ is required.Header-only, never query string
Header-only, never query string
Keys are never sent as query parameters — always as
Authorization: Bearer … headers. URLs end up in access logs; headers do not.Server-side only
Server-side only
The browser is not a supported runtime. If you find yourself wanting to call Vibefollow from a SPA, build a thin server proxy — never inline the key.
What AuthError means
When the SDK throws AuthError, one of these is true:
- The key is missing from the request.
- The key prefix is malformed (
sk_live_…expected). - The key has been revoked or never existed.
- The key belongs to a project the requested resource isn’t part of.