Transparent API Pricing for You
Starter
Gravel + Saturation access
Email support
Pro
Gravel + Saturation + Radar*
Email + Slack support
Enterprise
All overlays + priority access
24/7 priority support • SLA
Premium Map APIs
Gravel Road Layer API
AI-powered overlay that classifies gravel, paved, and mixed surfaces to help cyclists find the best routes.
- Access: Requires active subscription + API key
- Outputs:
surface
classification +confidence
score - Usage: Raster & vector tiles available
- View Plans & Pricing
Water Saturation Layer API
Real-time ground saturation maps using rainfall history, terrain, and canopy context — updated every 2 minutes.
- Access: Requires active subscription + API key
- Outputs:
saturation
(0–1),state
(dry|damp|wet|saturated
),updated_at
- Refresh rate: Visualization updates every ~2 minutes
- View Plans & Pricing
High-Accuracy Weather Radar API Coming Soon
Next-gen radar overlay with near real-time storm tracking and precipitation intensity mapping.
- Access: Keys not yet available
- Planned outputs:
reflectivity
,precip_intensity
,storm_cells
,updated_at
- Status: Launching soon — updates will appear in your dashboard
API Plan Comparison
Flexible tiers to get you started fast and scale with your needs — all at developer-friendly pricing.
Starter
- Monthly price: $9
- Included API calls: 50,000
- Rate limit: 25 req/sec
- Available layers: Gravel + Saturation
- Support: Email only
- Commercial use:
- Weather Radar:
Pro
- Monthly price: $29
- Included API calls: 500,000
- Rate limit: 100 req/sec
- Available layers: Gravel + Saturation + Radar (when launched)
- Support: Email + Slack channel
- Commercial use:
- Custom branding:
Enterprise
- Monthly price: Custom
- Included API calls: Unlimited
- Rate limit: Unlimited
- Available layers: All (Gravel, Saturation, Radar)
- Support: 24/7 priority + phone
- Commercial use:
- Custom integrations:
Any questions?
Check out the FAQs
Still have unanswered questions and need to get in touch?
Contact supportIf you hit your included call quota or rate limit, we don’t hard-stop your app. We apply soft caps with burst protection:
- Overages: Starter & Pro are billed at $5 per extra 50,000 calls. Enterprise is custom.
- Rate limits: Starter 25 rps, Pro 100 rps, Enterprise custom. Bursts are smoothed automatically.
- Notifications: We email at 80%, 100%, and 120% of quota and show usage in your dashboard.
You can upgrade any time to increase quotas immediately.
- Starter ($9/mo, $7/mo annual): Indie devs, prototypes, or low-traffic widgets. 50k calls/mo • 25 rps • Gravel + Saturation.
- Pro ($29/mo, $23/mo annual): Production apps and growing teams. 500k calls/mo • 100 rps • Gravel + Saturation + Radar* (*available at launch).
- Enterprise (from $99/mo, $79/mo annual): High scale, SLAs, and custom needs. 5M+ calls/mo • custom rps • all overlays • priority support.
You can start on Starter and upgrade as you grow—no code changes required.
No long-term contracts for monthly plans—cancel anytime. Annual plans save 20% and are billed upfront. If you cancel an annual plan, it remains active until the end of the term.
There are no cancellation fees. Usage-based overages incurred before cancellation are still due.
Go to Account Details and click Cancel plan. Your API key stays active until the end of the current billing period.
Need help? Contact support and we’ll take care of it.
- Upgrades: Immediate access to higher quotas and rate limits. Charges are prorated.
- Downgrades: New limits start next billing cycle. Existing usage for the current period remains unaffected.
- Add-ons: Buy extra blocks of +50k calls for $5 on Starter/Pro at any time.
No code changes required—your existing API key continues to work.
- Starter: Email support during business hours.
- Pro: Email + shared Slack channel.
- Enterprise: 24/7 priority, dedicated Slack, optional phone, and SLA.
Docs & onboarding: We provide code snippets and quick-starts for tiles and data queries. Example auth:
Authorization: Bearer <your_api_key>
Tip (web apps): Exchange your key for a session cookie and call with fetch(url, { credentials: 'include' })
to avoid exposing keys in the browser.