https://api.useadam.io/v1/adam
All paths below are relative to that prefix. Example: GET /auth/validate → https://api.useadam.io/v1/adam/auth/validate.
Try the API
On each page under API reference, you can:- See the full
https://api.useadam.io/v1/adam/...URL for the operation - Use the interactive request panel to set query, path, and body fields and send a request
- Copy sample code (cURL, Python, JavaScript); many endpoints include example request bodies you can adjust and run
- Authenticate with your
X-API-Key: business keytyms_sk_...for most routes, or a partner key only for Register business
attachments object shape (file + type required, including "type": "base64" for Base64 files).
Authentication summary
| Credential | Header(s) | Used on |
|---|---|---|
Business secret tyms_sk_... | X-API-Key, api-key, or sk | All routes except POST /register-business |
Partner secret (e.g. adam_partner_sk_...) | Same headers | POST /register-business only |
Subscription gate
For business-scoped routes, the account must meet Adam’s Developer API subscription requirements. Otherwise the API returns 403 Forbidden.Success envelope (typical)
Successful responses use a consistent JSON shape (seeUSEADAM_DEVELOPER_API.md in this repo for the full narrative):
- Lists usually return
dataas an array and often includemetafor pagination (page,limit,total). - Financial reports add
meta.fromandmeta.to(and cash flow may includemeta.previous_period_end). - AI creates with
process_type:async(the default on most routes) typically return job-style fields insidedata; usedirectwhen you need the created resource in the same response.
example payloads so you see realistic JSON—not a bare OK.
Error responses
Failures use a consistent JSON shape:Common HTTP status codes
| Code | Meaning |
|---|---|
200 | Success |
201 | Created (when applicable) |
400 | Invalid parameters or body (e.g. missing required prompt on bank upload) |
401 | Invalid or missing API key |
403 | Forbidden (e.g. Developer API not allowed for this business) |
404 | Resource not found |
500 | Server error |
message explains why.
Rate limiting
Rate limits may apply. Check response headers:X-RateLimit-Limit— max requests per windowX-RateLimit-Remaining— remaining in the current windowX-RateLimit-Reset— when the window resets
UUID resolution
For update and delete operations, path identifiers may be either:- the record
uuid, or - the record
source_uuid
uuid is abc-123 and source_uuid is xyz-789, either value may appear in the path segment {uuid}.
Get endpoints for specific records also accept whichever identifier your integration stores, where documented per resource.
Pagination and ordering
List endpoints commonly support:page— page numberlimit— page sizedate_order—ascordesc(defaultdescwhere documented)
schema, search, bank, status). See each resource page.
AI create body pattern
Typical fields on POST creates:| Field | Required | Description |
|---|---|---|
prompt | Yes (for AI creates) | Natural-language instructions |
attachments | No | Array of objects (file + type required on each) — Attachments |
text_attachment | No | Extra plain text merged into AI context |
process_type | No | async (default on most routes) or direct |
POST /bank-transactions/upload always requires prompt; see Create bank transactions (AI) in the API reference tab.
Support
- Email: developer@useadam.io