Skip to main content

Environments

All paths below are relative to whichever base URL you use. Example: GET /auth/validatehttps://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/... or https://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 key tyms_sk_... for most routes, or a partner key for Partners routes (register, list, billing, seat/credit grants)
Use Attachments for the 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 (see USEADAM_DEVELOPER_API.md in this repo for the full narrative):
  • Lists usually return data as an array and often include meta for pagination (page, limit, total).
  • Financial reports add meta.from and meta.to (and cash flow may include meta.previous_period_end).
  • AI creates with process_type: async (the default on most routes) typically return job-style fields inside data; use direct when you need the created resource in the same response.
Where we document them, success responses include 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 window
  • X-RateLimit-Remaining — remaining in the current window
  • X-RateLimit-Reset — when the window resets
Implement backoff if you receive 429 Too Many Requests.

UUID resolution

For update and delete operations, path identifiers may be either:
  • the record uuid, or
  • the record source_uuid
The API resolves both to the same row when present. Example: if 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 number
  • limit — page size
  • date_orderasc or desc (default desc where documented)
Some lists support extra filters (e.g. 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