Skip to main content
Every metered API response includes Hirebase-Usage-* headers describing the meter that request billed — so you can track quota consumption in real time without polling Usage Summary after every call. All of these headers (plus X-Billing-Code and the X-RateLimit-* set) are CORS-exposed for browser clients.

Meters

Usage is metered by what a response returns, not by which endpoint you called. Every route that returns jobs bills the jobs meter; every route that returns companies bills the companies meter.

Headers

Headers appear on successful responses and on quota 429s (which additionally carry X-Billing-Code: limit_exceeded). They are absent on un-metered endpoints (billing, tasks, reference data) and on legacy-billing accounts.
Accounts without a subscription have no Stripe billing period, so Period-Start/Period-End are omitted and Usage Summary returns null for them. Free-tier allowances reset on the first of each calendar month (UTC). Trial accounts see the trial window as their period.

What each endpoint costs

Meter costs apply to API-key calls. Web-app (dashboard) browsing costs 0 against these meters.
Search calls bill per result, not per request. A POST /v2/jobs/search with limit: 100 that returns 100 jobs consumes 100 units of m_jobs_api_calls. The default limit is 10. On the free plan, five calls at limit: 100 use the entire month’s allowance — keep limit small while you evaluate.

What each plan includes

Allowances reset every billing period. block means requests on that meter return 429 once the allowance is used; meter means requests keep succeeding and the extra units are billed at the overage rate. Every plan, including Free, can call every job, company, vector, export, and insights endpoint. Plans differ only in allowance and in what happens past it. Annual billing is 20% off the monthly price.

At the cap

When a meter with Overage-Mode: block reaches its included allowance, further requests on that meter return 429 with X-Billing-Code: limit_exceeded:
The check is made before your request runs, using the most it could cost — the requested limit for per-result endpoints. If that does not fit in what remains, the request is refused and the message tells you how many units are left:
Lower limit to the remaining count and the request succeeds. Because the reservation is atomic, parallel requests cannot overshoot a hard cap; each one either fits or is refused. Zero-cost endpoints such as POST /v2/jobs/estimate keep working at the cap. Other meters are unaffected: a key that has used its jobs allowance can still search companies until the companies allowance is used. Meters with Overage-Mode: meter keep returning 200 past the allowance; Hirebase-Usage-Overage-Used starts counting and overage is billed at your plan’s rate. See Error Handling for distinguishing quota 429s from rate-limit 429s.
Read Hirebase-Usage-Included-Remaining on each response and size your next limit to it. The Python SDK exposes this as client.last_usage and raises QuotaExceededError for cap 429s so you never retry them as if they were rate limits.