What counts, and how
There are two meters, because they measure different things.
Requests are HTTP calls. A catalogue check of 1,000 identifiers is a
single request, not a thousand — bulk checks remain the cheapest way to call the API.
Rejected calls are never metered: a 400 for a malformed identifier, a
401, or a 429 costs nothing.
Identifiers are the individual barcodes, VINs and model numbers you
submit to /v1/checks. The request quota bounds how often you call; the
identifier quota bounds how much you check. Every plan includes ten identifiers for each
request in its allowance, and you spend them however suits you — one at a time, or a
thousand at once.
Only identifiers that pass validation count, so a malformed export does not silently
consume your allowance. A submission that would exceed the allowance is refused whole
rather than trimmed to fit: a receipt that appears complete while covering an arbitrary
subset of what you sent is worse than a clear 402.
Lookups of a single identifier via GET /v1/identifiers/… count as a request
only. The identifier meter applies to catalogue checks.
Limits by plan
| Plan | Requests / month | Identifiers / month | Burst | Price |
|---|---|---|---|---|
| free | 500 | 5,000 | 10 / min | Free |
| starter | 10,000 | 100,000 | 60 / min | $29 / mo |
| growth | 100,000 | 1,000,000 | 300 / min | $99 / mo |
| scale | 1,000,000 | 10,000,000 | 1,000 / min | $299 / mo |
The monthly figure is the quota; the burst figure is the per-minute ceiling that protects the service from a runaway loop. Both are enforced from the same table that generates this page, so what is published is what is applied.
What happens at the limit
Exceeding the per-minute burst returns 429 with a
Retry-After header. Exhausting either monthly quota returns 402,
and the response body says which one, how much was used and how much remained. Nothing
silently degrades, and nothing bills you an overage you did not agree to — there is no
metered overage on any plan. If a plan stops fitting, move up a plan.
Billing
- Monthly, in US dollars, charged by Stripe. Cancel from the receipt Stripe emails you, at any time.
- Cancelling revokes the key at the end of the period, and the API returns
403from that point. - No setup fee, no annual commitment, no per-seat pricing.
- We store no card details and no personal data. Stripe holds the billing relationship; we hold a key id and a usage count.
Free, and what it is for
500 requests and 5,000 checked identifiers a month, the full corpus, and check receipts included — not a crippled trial. It exists so the first evaluation costs nothing and so a small integration that never grows is not forced onto a paid plan.
One-time corpus licence
Need the archive rather than a live feed? The complete corpus — 176,180 recalls, 249,392 identifiers and full amendment history — is available as a dated, checksummed export with all attribution obligations documented. Enquire.
Every field, filter and error is documented in the API reference. Ingestion freshness for all seven sources is public on the status page.