The Tally REST API is the same surface the TypeScript SDK wraps. Use the REST endpoints directly when you’re working in a language the SDK doesn’t cover yet, or when you want full control over HTTP behavior (custom retry middleware, structured logging, etc.).Documentation Index
Fetch the complete documentation index at: https://docs.tallyforagents.com/llms.txt
Use this file to discover all available pages before exploring further.
Base URL
http://localhost:3000 for local development — that’s helpful for dev, but every deployed environment should set the base URL.
Versioning
Every endpoint is prefixed with/v1. The v1 family is stable: we add fields and endpoints, but we don’t remove or repurpose them. Breaking changes will live under /v2 whenever they happen — v1 will keep working in parallel.
Request format
- HTTPS only. Plain HTTP is rejected.
- JSON only. Set
Content-Type: application/jsonon every request with a body. Tally returnsapplication/jsonon every response, including errors. - Field names are
snake_case—agent_id,amount_usdc,idempotency_key. The SDK preserves this casing in TypeScript types.
Response format
Successful responses return a JSON object with the resource keyed under its name:Error format
Errors use a consistent envelope across every endpoint:| Field | Type | Description |
|---|---|---|
type | string | Coarse-grained category — unauthenticated, forbidden, not_found, etc. Drives the HTTP status. |
message | string | Human-readable. Safe to log; no PII. |
code | string (optional) | Specific failure mode within type. |
details | any (optional) | Structured context — often the failed Zod issue list. |
type. See Errors for the full table.
Authentication
Bearer-token, scoped to one (account, mode). See Authentication for the details.Where to go from here
- Authentication — how API keys work.
- Errors — full error type table and status codes.
- Rate limits — request ceilings and
Retry-Aftersemantics. - Idempotency — making writes safe across retries.