The unit
One credit, spent per call
Buy credits in one-time packs that never expire. Optional auto-recharge buys your chosen pack when your balance runs low, within the monthly cap you set. A call debits its price from one account-wide wallet, and the balance after the debit comes back on the response itself as credits_remaining — no second request needed to track spend.
One ceiling to know about: the endpoints riding our metered commercial upstream — the routes configured to use that provider, including some social content and transcript operations — can be subject to a shared account-wide fair-use limit, normally 25,000 upstream attempts per rolling 30 days (retries count). Quota-checked live responses report x-fairuse-limit and x-fairuse-remaining when available; cached responses may omit them. Missing headers do not mean unlimited quota. A refusal is FAIR_USE_EXCEEDED and costs nothing, and sustained volume above it is an enterprise conversation we are glad to have.
150 credits
Free to start
£0.0019 / credit
From
never
Pack expiry
0 credits
Failed call
Pack sizes and per-credit rates are on the pricing page. This page is about what each individual call draws down.
Tiers
Price follows the work
An endpoint's price reflects how many upstream requests it makes and how much assembly it does on top. The table below reads current prices and examples directly from the billing registry.
| Credits | Tier | Examples |
|---|---|---|
| 0 | Free · 50 | app_store/categories · app_store/languages · app_store/locations |
| 1 | 1-credit routes · 252 | airbnb/locations · airbnb/stay-rating · aliexpress/categories |
| 2 | 2-credit routes · 60 | amazon/best-sellers · amazon/deals · amazon/seller-products |
| 3 | 3-credit routes · 174 | airbnb/experience · airbnb/experience-reviews · airbnb/search-experiences |
| 4 | 4-credit routes · 16 | google_finance/explore · google_finance/markets · google_finance/quote |
| 5 | 5-credit routes · 49 | amazon/product · amazon/reviews · amazon/sellers |
| 6 | 6-credit routes · 1 | linkedin/profile/full |
| 8 | 8-credit routes · 2 | panorama/creator-vetting · panorama/video-intel |
| 10 | 10-credit routes · 10 | cohorts/queries · panorama/answers · panorama/audience-overlap |
| 30 | 30-credit routes · 8 | panorama/ai-visibility · panorama/campaign · panorama/crisis-postmortem |
These tiers describe the catalogue; they are not a formula. The authoritative price of any single endpoint starts with the credit_cost field on its catalogue row — call GET /v1/utility/endpoints for all of them, or GET /v1/utility/endpoint?id=github/search for one. Both are free. Some operations quote or settle a variable charge (for example multi-source search, research and scheduled monitor runs); read their estimate and returned credits_used, not only the list price.
Never charged
What you do not pay for
Failed calls
Failed calls cost 0 credits. A paid live call reserves credits before the upstream fetch; if it fails, the reservation is refunded. Your ledger may show a debit and its matching refund, with a net charge of 0.
Sandbox examples
Explicit /sandbox calls can return representative output marked synthetic: true and cost 0. Production /v1 never falls through to that output after provider failure.
The batch wrapper
POST /v1/batch costs nothing itself. You pay for the calls inside it, at their own prices.
Discovery and account endpoints
utility/*, credits/* and status are 0 credits, and they bypass the balance check — a customer at zero can always read their own balance and the catalogue.
Cache
A cached hit costs 0 credits
Public upstream data is cached briefly and shared across callers. When your call is answered from that cache, the net charge is 0 credits. A concurrent request that waited for another fetch may show a temporary reservation and matching refund. Request a new retrieval with fresh=1; when honoured, the uncached call follows that endpoint’s billing rules. Fresh bypasses have their own allowance; see caching. The envelope tells you: cached: true.
Cross-platform search, cached for 0
A cached cross-platform search costs 0 credits instead of its current catalogue price.
Nothing to reason about
A hit is 0 whatever the endpoint costs; only a live fetch is ever billed.
Only public data is shared
Anything whose answer depends on who is asking — your balance, your monitors, your jobs — is never cached, so no response can cross accounts.
Paginated endpoints bill per page fetched, at the endpoint's price. Page-size defaults, maximums and any result-based or composite pricing depend on the endpoint. Check its parameters and pricing notes; there is no universal limit of 100.
Rate limits
600 a minute, 25 at once
Rate limits are per API key and identical on every pack — buying more credits does not buy a higher ceiling, and running out of credits does not lower one.
| Limit | Value | On breach |
|---|---|---|
| Requests | 600 / minute | 429 RATE_LIMITED with a retry-after header counting the seconds until the oldest request leaves the sliding window. |
| Concurrency | 25 in flight | 429 RATE_LIMITED with retry_after_seconds: 1 — the slot frees as soon as an in-flight request finishes. |
The limiter runs before any billing work, so a throttled request costs 0 credits. Batch items are admitted one by one, so a 20-item batch consumes 20 of the 600. Need more headroom? Talk to us about Enterprise limits. The failure mode is documented in errors.
Auditing
Check every credit
Each charge writes a ledger row referencing the request_id of the call that caused it, so any figure on your bill can be traced back to a single request.
$ curl "https://www.monocrawl.com/v1/credits/transactions?limit=5" \
-H "x-api-key: mn_your_key_here"
"data": {
"items": [
{ "id": "48211", "delta": -3, "balance_after": 94, "reason": "usage",
"ref_type": "usage_event", "ref_id": "req_4f2b8c1d09ae37b562",
"created_at": "2026-08-30T09:14:02.113Z" }
],
"count": 1,
"cursor": null
}credits_remaining
Read it when present. Success includes the balance; errors can omit it when unknown. A replay returns the original, historical balance.
credits/balance
Remaining and lifetime credits, plus when the balance last moved. Free, and never blocked by a low balance.
credits/transactions
The full ledger, newest first, with cursor pagination. Filter to one call with request_id.