Environments
All paths below are relative to whichever base URL you use. Example:
GET /auth/validate → https://api.usetyms.com/v1/adam/auth/validate in production, or https://staging-api.usetyms.com/v1/adam/auth/validate in sandbox.
Request a sandbox account and staging credentials from developer@usetyms.com before pre-production testing. Do not point production keys at the sandbox host (or sandbox keys at production).
Try the API
On each page under API reference, you can:- Choose Production or Sandbox as the server (sandbox requires credentials from developer@usetyms.com)
- See the full
https://api.usetyms.com/v1/adam/...orhttps://staging-api.usetyms.com/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 for Partners routes (register, list, billing, seat/credit grants)
attachments object shape (file + type required, including "type": "base64" for Base64 files).
Authentication summary
Conceptual guides: Authentication, OAuth 2.0.
Subscription gate
For business-scoped routes, the account must meet Tyms’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
Chart-of-accounts delete may return 400 when the account is default, in use, or blocked by cashbook rules — the
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:
Exception:
POST /bank-transactions/upload always requires prompt; see Create bank transactions (AI) in the API reference tab.
Support
- Email: developer@usetyms.com