Plans and usage at a glance

Every Hakim workspace is billed against a plan (monthly pricing, included quotas, rate limits) and a usage ledger (per-call records for everything your keys synthesise, transcribe, or clone). Metering is deterministic and request-scoped: every billable unit maps to exactly one UsageEvent row, so the numbers your dashboard shows are the same numbers the webhook receipts and invoices are built from.

Quotas and included amounts

Each plan includes a monthly quota across three dimensions:

  • Characters synthesised (TTS, measured on the normalised text).
  • Audio transcribed (STT, measured in seconds of input).
  • Voices cloned (number of distinct clone jobs you kept).

Plans with overages enabled let you keep serving traffic past the included amount; the excess is billed at the per-unit rate the plan advertises. When overages are disabled, requests that would exceed the quota return 429 Too Many Requests with an X-Hakim-Quota-Remaining: 0 header.

Rate limits

Rate limits are per API key, per endpoint, per minute. The current ceiling is published on your plan page. Limits refresh on a sliding window so a short burst immediately after a lull is fine. When a request is shed you get a 429 with:

  • Retry-After: seconds until you can retry.
  • X-RateLimit-Limit: the ceiling for this endpoint.
  • X-RateLimit-Remaining: requests left in the current window.

Regions and residency

Hakim runs four customer-facing regions day one, Frankfurt, Doha, Dubai, and Riyadh. Every region is an independent deployment: its own database, its own model replicas, its own object store.

Requests are pinned to the region your workspace was created in. You can pick a region at signup, or email support@tryhakim.ai to migrate. For on-prem customers the API surface is identical, only the endpoint host changes.

Where to next

  • Quickstart, ship your first call in ~5 minutes.
  • SDKs, typed clients for Node.js and Python.
  • API reference, the live OpenAPI 3.1 document (lands shortly).