Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.veridianhp.com/llms.txt

Use this file to discover all available pages before exploring further.

Rate limits

Rate limits exist to protect both your practice and Veridian’s infrastructure from runaway clients. Normal practice traffic — even a busy practice — runs nowhere near these limits.

Limits

Limits are per API key, evaluated as a token bucket.
EnvironmentSteady rateBurst
Sandbox60 requests / minute120 requests
Production300 requests / minute600 requests
Limits are subject to change as we tune for fleet-wide health. If your production workload regularly exceeds these limits, contact support — we can adjust per-practice limits.

Response headers

Every API response carries:
X-RateLimit-Limit: 300
X-RateLimit-Remaining: 287
X-RateLimit-Reset: 1717000060
  • Limit — the bucket size
  • Remaining — tokens left
  • Reset — unix timestamp at which the bucket refills fully

When you hit the limit

A 429 response carries a Retry-After header in seconds:
HTTP/1.1 429 Too Many Requests
Retry-After: 23
Content-Type: application/json

{
  "error": {
    "code": "rate_limited",
    "message": "Per-key rate limit exceeded.",
    "requestId": "req_01HZX9..."
  }
}
Respect Retry-After. Don’t busy-loop.

Patterns that stay well under the limit

  • One session per invoice, not per render. Mint a session when the invoice is finalized, then reuse the URL until it expires.
  • Webhook over polling. Use webhooks for state changes; reserve /status for human-driven reconciliation.
  • Batch list calls. Pull a page of 100 with limit=100 rather than individual /status lookups.

Patterns to avoid

  • Polling /status every second — wasteful and you’ll hit the limit.
  • One session per page load — your invoice will reach succeeded state before you finish minting sessions.
  • Retrying instantly on 429 — exponential backoff with jitter, always.

What’s next

Errors

Full error code reference, including 429 details.

Webhooks

The pattern that eliminates polling entirely.