Plans and limits
What each MapDove plan includes, what counts as an analysis, an API call and an export, and what happens when you reach a limit.
MapDove has four plans. Every plan includes all five demo cities and the full set of analytics; plans differ in history depth, volume and team features. Current prices are on the pricing page.
Plan comparison
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
| Price per month (USD) | $0 | $149 | $499 | Contact us |
| Cities | All demo cities | All demo cities | All demo cities | All + custom markets |
| History | 90 days | 365 days | 365 days | 365 days |
| SDSS analyses / month | 25 | 500 | Unlimited | Unlimited |
| API calls / month | — | 10,000 | 100,000 | Unlimited |
| API keys | — | 3 | 10 | Unlimited |
| Seats | 1 | 5 | 25 | Unlimited |
| CSV export | — | ✓ | ✓ | ✓ |
| Visit alerts | — | 10 | 100 | Unlimited |
| Highlights | Trade areas & cross-shopping | Visit alerts, REST API | Brand benchmarking, priority support | Custom markets & data feeds, SSO & audit exports, dedicated success manager, SLA |
The same limits are available programmatically from GET /api/v1/plans and, for your own organization, GET /api/v1/org/usage. In API responses -1 means unlimited.
What counts
Analyses
One analysis is one successful run of an SDSS model:
| Action | Analyses |
|---|---|
Suitability run (/sdss/suitability) |
1 |
Huff forecast (/sdss/huff) |
1 |
Catchment, any number of rings up to 4 (/sdss/catchment) |
1 |
Compare sites, up to 5 sites (/sdss/compare-sites) |
1 |
| Re-running a saved project | 1 |
Not counted: invalid requests that fail validation, browsing places and markets, trade areas and cross-shopping on place pages, saving or opening projects. Analyses count the same whether you run them in the app or via the API.
API calls
One API call is one HTTP request authenticated with an API key (Authorization: Bearer ms_live_…), whatever the endpoint and whatever the outcome. Requests made by the MapDove app with your browser session are not API calls. An SDSS request made with a key counts as one API call and one analysis.
Exports
One export is one CSV download of a place’s daily data (export.csv), from the app or the API. Exports are included on Pro and above and are counted for reporting; there is no monthly export cap on paid plans.
Seats, keys and alerts
These are concurrent limits, not monthly ones: active members in the organization, active (non-revoked) API keys, and alerts that exist. Removing a member, revoking a key or deleting an alert frees capacity immediately.
History
history_days limits how far back date ranges can go, counted back from the last day of data. On Free, ranges start no earlier than 90 days before the last data day; out-of-range dates are clamped rather than rejected. Paid plans cover the full year of the demo dataset.
Monthly reset
Monthly counters (analyses, API calls, exports) reset at 00:00 UTC on the first day of each calendar month. Usage for the current month and the previous six is shown in Settings → Billing and returned by GET /api/v1/org/usage.
What happens at a limit
When a request would exceed a plan limit, MapDove returns HTTP 402 with error code plan_limit and a message that names the limit:
{ "error": { "code": "plan_limit", "message": "Monthly API quota of 10000 calls reached for the pro plan" } }
| Limit reached | Effect |
|---|---|
| Analyses | SDSS runs are refused until next month or an upgrade; everything else keeps working |
| API calls | Requests with API keys are refused; the app keeps working with your session |
| Seats | New members cannot be added |
| API keys | New keys cannot be created; existing keys keep working |
| Alerts | New alerts cannot be created; existing alerts keep evaluating |
| Exports not in plan | CSV downloads are refused |
Nothing is deleted when you hit a limit. Upgrading takes effect immediately and lifts the block straight away.
Separately from plan limits, short bursts of traffic may receive HTTP 429 (rate_limited). That is temporary throttling, not a quota — retry with exponential backoff. See API overview.
Changing plans
Owners and admins can upgrade from Settings → Billing; checkout is handled by our payment processor and the new plan applies as soon as payment succeeds. Downgrades, payment method changes, invoices and cancellation are available in the billing portal. If you downgrade, data you created (projects, favorites, alerts, members, keys) is retained, but you cannot add more while above the new plan’s limits.
For Enterprise — custom markets, real data feeds, SSO, audit exports or an SLA — contact sales from the pricing page.