API reference

Rate limits & idempotency

Limits keep the platform fast for everyone; idempotency keeps your retries safe.

https://api.mytabulon.com/v1

Rate limits

Limits are per key, per minute, and scale with your MyTabulon plan — Free: 120 requests (20 AI) · Plus: 300 (40 AI) · Pro: 600 (60 AI) · Max: 1,200 (120 AI). Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, and X-RateLimit-Plan headers. A 429 includes Retry-After.

Limits by plan

requests per minute, per key
Plan   General   AI responses
Free     120          20
Plus     300          40
Pro      600          60
Max    1,200         120

Coding Plan quota

Coding Plan requests through /chat/completions and /responses are metered by usage rather than the general per-minute AI limit. Every tier has a fixed 5-hour usage pool and a separate weekly pool; higher tiers provide larger pools and more concurrent requests. When a pool is exhausted you get a 429 with rate_limit_exceeded, a Retry-After header, and x-codingplan-* headers carrying percentages and reset timestamps. Concurrency exhaustion returns concurrency_limit_exceeded. See the Coding Plan page for tier details.

Idempotency

Send an Idempotency-Key header on any POST. If the same key is sent again with the same payload, you get the original response back (with an Idempotent-Replay: true header) instead of a duplicate write. Reusing a key with a different payload returns 409 idempotency_conflict.

safe retries
curl https://api.mytabulon.com/v1/invoices \
  -H "Authorization: Bearer mtb_live_..." \
  -H "Idempotency-Key: order-8412" \
  -d '{ "client_id": "...", "due_date": "2026-07-01", "items": [...] }'