Documentation / Plans and limits
Plans and limits
Plan limits bound request volume and query resource use. Paid continuity is opt-in, explicitly capped, and can always remain hard stop.
On this page
Plan limits
| Limit | Explorer | Core | Pro | Business |
|---|---|---|---|---|
| Included requests | 10,000 | 50,000 | 250,000 | 1,000,000 |
| Daily limit | 500 | — | — | — |
| Access window | 30 days | Subscription | Subscription | Subscription |
| Requests per minute | 20 | 60 | 300 | 600 |
| Concurrent requests | 1 | 2 | 4 | 8 |
| Maximum query timeout | 30 s | 60 s | 120 s | 120 s |
| Query body | 16 KiB | 32 KiB | 64 KiB | 128 KiB |
| Query memory / maxsize | 256 MiB | 512 MiB | 1 GiB | 2 GiB |
| Query response | 32 MiB | 256 MiB | 512 MiB | 1 GiB |
Explorer requires a verified durable account, includes 10,000 successful requests total, allows 500 per UTC day, and expires after 30 days. It has no paid overage and no service-level guarantee. Monthly and annual paid subscriptions have the same recurring request allowance; annual billing changes the base-plan payment schedule, not the allowance. See pricing for current prices.
Address and business search and regional POI discovery are included in every plan. Use your existing API key and shared request allowance; no separate subscription is required.
Paid continuity
Paid plans start with Stop at my limit. During checkout or later on Usage and billing, the account owner may instead authorize metered continuity under a dollar cap, or authorize Mapsource to choose the lower-cost eligible plan up to a selected maximum tier and immediate-charge cap. Charge-bearing choices require a fresh confirmation.
| Plan | Overage rate |
|---|---|
| Core | $7 / 10,000 successful requests |
| Pro | $4 / 10,000 successful requests |
| Business | $2 / 10,000 successful requests |
The cap and policy apply to the organization, so creating or rotating keys cannot multiply the allowance. Once the cap is reached, requests stop. A smart upgrade is attempted only after an exact Stripe invoice preview fits within the remaining authorized cap; otherwise metering continues only to that cap.
Under lowest-cost upgrades, overage events remain in Mapsource’s durable outbox while the upgrade decision is open. A successful upgrade waives those pending events and records the previewed plan charge against the cap. If no upgrade becomes economical, or a safe preview fails, the authorized events are metered instead. The policy cannot be enabled mid-period after metered overage has already begun.
For subscriptions carrying a meter item, the allowance and cap use that item’s Stripe billing period, including annual base plans. The exact start and reset instants are returned by /api/usage. Hard-stop subscriptions created before metering retain their calendar-month window until a metered policy is enabled.
Request accounting
Successful Overpass, raster tile, vector tile, elevation, contour, routing, matrix, map-match, snap, optimize, place, spatial-analysis, compute, style-compile and static-render requests contribute to the organization’s shared usage period. A compute pipeline counts each upstream step it runs, not once for the pipeline.
Failed authentication and rejected queries do not consume accepted-request quota. The usage endpoint, service status, and basemap catalog do not consume query quota. Requests made through MCP use the same underlying service accounting.
The basemap contract, hosted style presets, glyph list, and compiled preset styles are free and unmetered. Data, analysis, and rendering endpoints enforce per-key rate and concurrency limits. Concurrency also depends on available service capacity. Tile requests count toward the shared allowance and support private caching.
Quota headers report a point-in-time balance. Concurrent requests may change it. Use the usage endpoint for current totals.
Search and discovery request accounting
GET /api/places/lookup counts one successful lookup, not one request per result or per internal index search. If Photon is unavailable and a regional Overpass query is needed, that interpreter request is counted separately.
POST /api/places/discover counts the services it runs: one Overpass request, an isochrone request when you supply minutes, and a matrix request when rankBy=travel_time has candidates to rank. The discovery wrapper adds no request charge.
| Workflow | Counted requests |
|---|---|
| Lookup using the global index | 1 lookup |
| Lookup with regional Overpass fallback | 1 lookup + 1 Overpass = 2 |
| Discovery with bbox or an existing polygon | 1 Overpass |
| Discovery generating a travel-time region | 1 isochrone + 1 Overpass = 2 |
| Discovery with an existing region and travel-time ranking | 1 Overpass + 1 matrix = 2 |
| Discovery generating a region and ranking by travel time | 1 isochrone + 1 Overpass + 1 matrix = 3 |
Matrix calls are skipped when no candidates match. Each requested discovery page runs its own search and counts the services it executes. Supplying an existing polygon avoids generating another isochrone. Successfully completed steps remain counted if a later step fails; retrying runs and counts those steps again.
MCP geo_search operations lookup and discover use this same accounting. Restricted project keys need the discovery scope, which also covers Overpass; generated isochrones and travel-time ranking require navigation scope as well. Existing subscription keys already include these services.
The API reference’s cost class is a relative operation cost, not a multiplier for the monthly request count. Search limits, coverage, pagination and examples are in address and business search. Debounce typed input, cancel superseded requests and respect rate limits.
Response headers
| Header | Meaning |
|---|---|
X-Request-Id | Reference for request diagnostics. |
X-RateLimit-Limit | The key’s configured requests-per-minute limit. |
X-Quota-Limit | Included request allowance for the current usage period. |
X-Quota-Remaining | Remaining allowance reported for this request. |
X-Quota-Reset | Next usage-period reset, as Unix seconds. |
X-Mapsource-Quota-Warning | Stable 50%, 75%, 90%, or 100% included-allowance milestone; clients may de-duplicate on the value. |
X-Mapsource-Overage-Estimated-Cents | Current estimated overage charge in USD cents on accepted overage requests. |
X-Mapsource-Overage-Warning | Stable US$10 overage band for customer-side alerts. |
Retry-After | Delay before another attempt, when supplied. |
Quota headers accompany accepted data requests. They are not guaranteed on every rejection; if missing, use the error code and /api/usage. Convert reset seconds to milliseconds before creating a JavaScript date.
const reset = response.headers.get("X-Quota-Reset");
if (reset) {
const resetsAt = new Date(Number(reset) * 1000);
// Schedule against resetsAt, not your invoice date.
}Query execution defaults
Without [timeout:], Mapsource adds a 25-second timeout. Without [maxsize:], it adds your plan’s memory ceiling in bytes. Values above plan limits are rejected. Set both explicitly when moving queries between providers.
[out:json][timeout:30][maxsize:268435456];
nwr["building"](47.60,-122.34,47.61,-122.33);
out geom 100;The query timeout limits execution time. Set a longer client timeout to allow for response transfer. Output limits restrict returned objects but may not reduce the work required to find matching features.
When a limit is reached
For rate or concurrency limits, wait for Retry-After and reduce parallel requests. For allowance exhaustion, wait for X-Quota-Reset, raise an authorized cap, or upgrade; a short Retry-After is not a new allowance. Explorer’s 10,000-request total does not reset. For query size, timeout, memory, or response limits, reduce the work before retrying.
The error reference lists the codes and recommended handling.
Questions about this guide? Contact support.