Getting started
Mint an API key and make your first call.
The fastest path is an API key — your own business's credential. Building something other businesses will connect? See OAuth applications.
In the Trabalance dashboard, a Super Administrator opens Settings → API keys & webhooks → New key. Name it, tick the scopes it needs (only scopes you hold yourself are offered), and choose whether it may also drive AI assistants. The key is shown once.
curl https://api.trabalance.com/api/v1/customers?page_size=5 \
-H "Authorization: Bearer tk_live_…"Send Idempotency-Key on every write — a retry within 24 hours returns the original response instead of creating a duplicate.
curl -X POST https://api.trabalance.com/api/v1/customers \
-H "Authorization: Bearer tk_live_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 8c1f2a7e-…" \
-d '{ "name": "Acme Corp", "email": "[email protected]", "currency": "USD" }'What a response looks like
Every success is an envelope; every error names itself.
{ "status": "success", "message": "Customers successfully retrieved",
"data": { "items": [ … ], "pagination": { "total_count": 128, "page": 1, "pageSize": 5, "has_next": true, "has_prev": false } } }
{ "error": "validation_error", "error_description": "name: Invalid input: expected string, received undefined",
"details": [ { "field": "name", "message": "Invalid input: expected string, received undefined" } ] }https://api.trabalance.com/api/v1. Discovery: GET /api/v1. OpenAPI: GET /api/v1/openapi.json. For agents: GET /api/v1/llms.txt.
Testing
There is no separate sandbox in v1. Test against a trial business with a key of its own; every write is idempotent and every read is scoped to that business, so nothing you do can reach another business's data.
Related
- Mint an API key
- Pagination, ids and envelopes
- Rate limits & errors
- OAuth applications — if many businesses will connect