Pricing
Start free. Pay for accepted changes.
No card to start. No sales call, ever. Every plan ships with a hard spend cap already set, so usage cannot run away while you sleep.
Simple, usage-based pricing
No card to start. No sales call. Cancel at any time. Above your plan's allowance, you pay $0.10 per sourced company row. Every plan has a hard spend cap set by default.
Free
start here$0 /month
| Calls / rolling 24h | 100 |
| Watches | 3 |
| Delivered changes | 50 included |
| Spend cap | hard-capped |
Starter
$49 /month
| Calls / rolling 24h | 50,000 |
| Watches | 5 |
| Delivered changes | 250 included |
| Row credits | 1,000 included |
Growth
$199 /month
| Calls / rolling 24h | 200,000 |
| Watches | 25 |
| Delivered changes | 1,500 included |
| Row credits | 5,000 included |
Signup includes a 14-day trial: 10,000 calls per rolling 24h, no card. Cap details are under Spend caps below.
Free allowances: Both free allowances are counted, not granted once: watches count while they are live, so cancelling one frees the slot again, and delivered changes count against the billing month and refill when it turns. Changes past that month's allowance are not delivered and are not sent afterwards, the feed is forward-only, never a backlog, and your console says when one was stopped.
Common questions
Where does the data come from?
How fresh is it?
What am I charged for?
Do I need a demo call?
What the units mean
Four units appear on the plan cards. Here is what each one is, in plain terms.
A call
One API request. Calls count against your plan's quota per rolling 24 hours: 100 on Free, 50,000 on Starter, 200,000 on Growth.
A watch
A standing query that pushes new matches to your endpoint. A watch bills only when your endpoint accepts a delivered change. An idle watch costs nothing.
A delivered change
One change your endpoint accepts. Metering runs after the acknowledgement, exactly once. Failed or duplicate deliveries cost nothing. Plans include 50 (Free), 250 (Starter) or 1,500 (Growth) delivered changes.
A row credit
One sourced company row from a search. Starter includes 1,000 credits and Growth includes 5,000. Past your included credits, each sourced row is $0.10. An empty result costs nothing.
The billing system's own price list is public at /.well-known/pricing.json, and that is what your invoice follows.
Spend caps
Every self-serve plan has a hard cap already set. The soft cap warns, the hard cap stops. Caps count metered units.
| Plan | Warns at | Stops at | Most it can cost |
|---|---|---|---|
| Free | 8,000 units | 10,000 units | at most $1,000 |
| Trial | 8,000 units | 10,000 units | at most $1,000 |
| Starter | 20,000 units | 25,000 units | at most $2,500 |
| Growth | 80,000 units | 100,000 units | at most $10,000 |
| Enterprise | no preset cap: usage draws on the annual commit's shared pool | ||
Caps are counted in metered units. The money column is that cap at the metered rate above, shown so the ceiling is legible.
Rate limits
Each API key has one request budget per fixed 60-second window. The window opens on the key's first request and resets 60 seconds later; it does not slide. REST calls and MCP tool calls made with the same key draw on the same budget, and a request that answers 404 counts like any other. There is no keyless route: sign up, copy the key on screen, and start on the free tier with no card. See the quickstart.
| Plan | Per 60 second window |
|---|---|
| Free | 20 requests |
| Trial | 100 requests |
| Starter | 500 requests |
| Growth | 2,000 requests |
Every response from a rate-limited route, refused or not, carries three headers:
RateLimit-Limit (the budget for the window),
RateLimit-Remaining (requests left in it) and
RateLimit-Reset (seconds until it resets).
Past the budget the API answers 429 with a Retry-After header
(whole seconds, the same number as RateLimit-Reset) and the body
{"detail": {"reason": "rate_limited", "endpoint": "<path>"}}.
Wait Retry-After seconds, then send the request again.
A 429 whose reason is key_throttled is a different refusal: the key
is held by an abuse throttle rather than by the window, and it sends no
Retry-After because there is no scheduled end to wait for.
rate_limited is also the name of a watch delivery status, and it
means something else there: the watch fired more often than its own
max_fires_per_hour and the extra deliveries were dropped. That is a
setting on the watch, not your request rate, and it never arrives as an HTTP 429.
The trial
Signup grants 14 days of 10,000 calls per rolling 24 hours. No card. It is a grant, not a plan: there is no monthly price and nothing to cancel. The free tier under it is permanent.
Billing edge cases
What happens when I hit the hard cap?
Does a failed or duplicate delivery cost anything?
Does an empty search cost anything?
What do I get past the rate limit?
Retry-After header. Rate limits refuse
requests; they do not bill them. Watch the RateLimit-Remaining
header on each response to stay inside the window.