Today billing goes live on the Croma platform. Changing how something is charged raises questions, so this entry spells out every rule and every number, with no fine print. The idea behind all of it: you pay for what the API serves you, you can see your balance at any time, and no limit ever takes you by surprise.
If you already have an organization there is nothing to do. It is on the Free plan, with credits for this month, and your console shows the balance from today.
What changes, in one sentence#
Every organization used to have a cap of 100 requests a day, the same for everyone. Now every organization holds a monthly balance of credits, and each request spends credits according to what it costs to serve. The daily cap is gone.
How credits work#
Two kinds of request, one balance:
| Request | Credits | What it is |
|---|---|---|
| Live | 10 | A country or global endpoint that queries the official source the moment you call it: court cases, company registries, vehicles, background checks, web search, extraction. |
| Dataset | 1 | An endpoint answered from Croma's own tables, refreshed on a schedule: procurement, regulations, gazettes, case law. Its guide says so, and it answers in milliseconds. |
The price gap mirrors the cost gap. Querying an official source live has a real cost every time; a dataset is already there. With one balance you choose the mix that suits you: 500 live lookups, 5,000 dataset reads, or anything in between.
The rules, all of them:
- Credits reset on your plan's monthly date. Unused credits do not carry over.
- Batch requests spend per item: a 10-item batch of live lookups spends 100 credits.
- A request that fails spends nothing. A cached answer spends the same as a fresh one.
- Polling the status of an async job never spends credits.
- Web search, extraction and research keep their hourly ceilings. They protect the sources, not your wallet.
The plans#
Every plan includes the full catalog, the MCP server and the console. The only difference is how many credits you receive each month.
| Plan | Price | Credits per month | Equivalent to |
|---|---|---|---|
| Free | $0 | 5,000 | 500 live lookups or 5,000 dataset reads |
| Hobby | $20 | 20,000 | 2,000 live lookups or 20,000 dataset reads |
| Standard | $99 | 100,000 | 10,000 live lookups or 100,000 dataset reads |
| Contract | Custom | What we agree on | Higher volumes, invoicing, or terms of your own |
On the paid plans 1,000 credits cost one dollar. Free asks for no card. Upgrades apply immediately and are prorated; downgrades apply at the end of the period; cancelling is one click in the billing portal. The details are on the pricing page.
What you see in every response#
Your code sees the same number you do. Every API response carries the balance in its headers, in credits:
X-RateLimit-Limit: 20000
X-RateLimit-Remaining: 19988
X-RateLimit-Reset: 2026-10-04T04:19:37.174Z
RateLimit-Policy: "credits";q=20000;w=2592000When the balance is spent, the API answers 402 with a message that says what to do, and goes back to normal as soon as you upgrade or the reset arrives:
{
"error": {
"type": "billing_error",
"code": "plan_limit_reached",
"message": "Your plan has no credits left for this period. Upgrade at https://platform.usecroma.com/billing or wait until 2026-10-04T04:19:37.174Z."
}
}The error code and the headers are documented under rate limits.
A heads-up before anything happens#
Nobody should discover a limit in production. So the admins of your organization get an email when usage reaches 80% of the month's credits, and another if they run out. The email says how much you have used, how much you have, and when it resets, with a direct link to your console so you can decide calmly.
Your console#
At platform.usecroma.com/billing you see your plan, credits used and remaining, the reset date, and the plans available. From there you upgrade through Stripe, manage your payment method, download invoices, or cancel. Only organization admins can change the plan; the rest of the team sees the same numbers.
Contracts#
If your volume goes past Standard, you need invoicing, or you prefer terms of your own, we talk and put it in a contract with its own monthly number of credits. In the API and in the console it looks exactly like any other plan: same headers, same balance, same alerts. Only the sender of the invoice changes.
Growing together#
We built this model on one conviction: that every dollar you put into Croma turns into data that serves you, and that you can see that relationship clearly. Starting is free, growing is proportional, and no decision is made in the dark. If any of this does not fit, or you have a case these rules do not cover well, tell us. We will gladly adjust.