Errors & limits
Every failure comes back as JSON with the same shape, so you can handle them in one place.
Error shape
{
"error": {
"message": "This key is not allowed to analyze."
}
}Status codes
400— Something in the request was missing or malformed.401— The key is missing, unknown or has been revoked.402— Not enough credits. Top up or turn on automatic top-ups.403— The key does not carry the permission this call needs.404— That case or proceeding is not in your firm.429— Too many requests — the limit is 120 per minute per key.500— Something went wrong on our side. Retry with backoff.
Rate limits
120 requests per minute per key. If you go over, wait for the next minute and try again. Spread bulk work out rather than firing everything at once.
Safe retries
Send an Idempotency-Key header on transcription requests. Repeating the same key returns the original result and is never charged twice, so a network timeout is safe to retry.
Pagination
List calls take limit (1–100, default 25) and offset, and reply with has_more so you know when to stop.
AI agent refusals
Agent tools refuse rather than return partial data. Three refusals are expected: the firm has no active plan, the firm is out of credits, or an administrator disconnected that assistant. Reading is free; only generative tools spend credits.