Documentation Index
Fetch the complete documentation index at: https://developers.recoupable.com/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Every request to the Recoup API must be authenticated using exactly one of two mechanisms:| Method | Header | Use case |
|---|---|---|
| API Key | x-api-key | Server-to-server integrations |
| Access Token | Authorization: Bearer <token> | Frontend apps authenticated via Privy |
401 error.
Agent onboarding endpoints (
POST /api/agents/signup and POST /api/agents/verify) are unauthenticated — they exist so agents can obtain their first API key. See the Agents guide for details.API Keys
API keys are the primary way to authenticate programmatic access to the Recoup API. All API keys are personal keys — they are always tied to the account that created them.Creating an API Key
- Navigate to chat.recoupable.com/keys
- Enter a descriptive name (e.g.
"Production Server") - Click Create API Key
Using an API Key
Pass your key in thex-api-key header:
Access to Organizations
If your account belongs to one or more organizations, your API key can access data across those organizations by passing anaccount_id parameter on supported endpoints. This lets you filter to any account within an organization your key has access to.
- No org membership — the key can only access its own account’s data
- Org member — the key can pass
account_idto filter to any account within that organization
Org membership is determined by the account’s organizations. An account gains access to an org when it is added as a member.
Access Tokens (Privy)
If you’re building a frontend application that authenticates users via Privy, you can pass the user’s Privy JWT as a Bearer token instead of an API key.How We Verify Access on API Calls
Every authenticated request goes throughvalidateAuthContext, which enforces the following access rules:
API Key or Bearer Token
By default, requests access the key owner’s own account. Whenaccount_id is provided:
The Recoup internal admin organization has universal access to all accounts.
Organization Access via organization_id
Some endpoints accept an organization_id parameter. When provided, the API additionally validates that the authenticated account is either:
- A member of the organization, or
- The organization account itself
Error Responses
| Status | Cause |
|---|---|
401 | Missing or invalid credentials, or both x-api-key and Authorization headers provided |
403 | Valid credentials but insufficient access to the requested account_id or organization_id |
Security Notes
- API keys are never stored in plaintext — only an HMAC-SHA256 hash (keyed with your project secret) is persisted in the database
- Never include
account_idin your API key creation request — the account is always derived from your authenticated credentials - Rotate keys immediately if compromised via the API Keys Management Page
