- API keys for programmatic access (
Authorization: Bearer sk_...) - Session cookies for dashboard access
Route auth matrix
| Route family | API key | Session | Public |
|---|---|---|---|
/v1/auth/* | No | No | Yes |
/v1/shelves* | Yes | Yes | No |
/v1/webhooks* | Yes | Yes | No |
/v1/dashboard/* | No | Yes | No |
Get an API key
- API
- Dashboard
No browser required — ideal for AI agents and developers using coding agents (Claude Code, Codex, OpenClaw).Step 1: Register an accountStep 2: Check your email for the 6-digit verification codeStep 3: Verify your email and receive an API keySave
201 Created
200 OK
apiKey.key — this is your SHELV_API_KEY. It is shown once.Use API keys
Send theAuthorization header on every request to /v1/shelves* and /v1/webhooks*:
Error model
Authentication failure (401):
429):
409) can happen when a shelf is not yet eligible for a requested operation (for example requesting tree or archive-url before processing completes).
Rate limits
| Scope | Limit |
|---|---|
Auth routes (/v1/auth/*) | 10 requests / 15 minutes (IP) |
Auth routes (/api/auth/**) | 10 requests / 15 minutes (IP) |
| Authenticated reads | 120 requests / minute (user) |
| Authenticated writes | 20 requests / minute (user) |
Shelf creation (POST /v1/shelves) | 10 requests / hour (user) |
Operational best practices
- Keep keys in environment variables, never source code
- Use separate keys for dev/staging/prod
- Rotate and revoke keys regularly
