Head to head · Geocoding · October 2026 research run
MapTiler Cloud vs OpenCage Geocoding API
OpenCage Geocoding API scores 67.5 (B) on agent readiness against MapTiler Cloud's 62.1 (B), and leads in 4 of 7 scored categories. MapTiler Cloud leads on security & auth and payments & pricing. Both do geocoding.
Best maps, geocoding and places APIs for AI agents · All 153 maps comparisons
Which one, for what
Best for Map tiles, static maps and worldwide geocoding with storable results for apps that also show a map, with EU data residency.
Ahead on
- Security & auth, 64 against 44
- Payments & pricing, 40 against 35
Also in its favour
- No incidents deducted, where OpenCage Geocoding API loses 3 points for them
Watch for
The API key is always sent as a query parameter
Best for Bulk or repeated geocoding where results go into a database, and for EU data residency.
Ahead on
- Reliability, 85 against 43
- Agent ergonomics, 86 against 70
- Maintenance & community, 86 against 70
- Transparency & trust, 85 against 80
Also in its favour
- A hosted endpoint, with nothing to install
- Runs on your own machine
Watch for
Geocoding only, no place search or routing
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Reliability OpenCage Geocoding API +42
MapTiler Cloud 43
Hosted lines. status.maptiler.com is a StatusCake public uptime report rather than a component incident page (15). Its data loads from app.statuscake.com, whose robots.txt answered with a redirect, so we didn't fetch it and read no history. That's our limit, not a finding, and the rubric gives 5 (5). Monthly request and session quotas are published per plan, but no per-second limit (5). No 429, Retry-After or backoff guidance found in the API reference, the OpenAPI spec or llms-full.txt (0). The pricing page lists a 99.9% SLA on the Custom plan, while the Cloud terms call availability best effort and point to a custom SLA (8). The public APIs are GA (10). 15+5+5+0+8+10 = 43.
OpenCage Geocoding API 85
Instatus page at status.opencagedata.com, measured by StatusCake, with forward geocoding, reverse geocoding, geosearch, the website and email sending as components (20). The incident history feed, read on 1 November 2026, lists nothing since the 26 June 2026 email outage, so the last 90 days are clean (30). Free trial limits of 2,500 a day and 1 a second, and per-second rates for each paid plan (15). 402 for a spent quota and 429 for going too fast are separate codes, and free and one-time plans get X-RateLimit-Limit, -Remaining and -Reset. There's no backoff guidance beyond '408 means try again' (10). No SLA found (0). GA (10).
Security & auth MapTiler Cloud +20
MapTiler Cloud 64
Revocable keys that can be limited to origins and a User-Agent substring and managed by the API keys API, and service tokens that sign requests so the token itself never travels, which earns 27. Less 10 because the key is 'always passed as a query parameter' (17). The public APIs are read-only, and account changes need a separate service token (16). Geocoding returns OpenStreetMap names and addresses, community-edited text, with no prompt-injection guidance (7). An Analytics API and account usage statistics (8). security.txt, a vulnerability disclosure policy and ISO/IEC 27001:2022 certification per the security page. No bug bounty found (16). 17+16+7+8+16 = 64.
OpenCage Geocoding API 44
Plain revocable keys that can be disabled or tied to IP addresses, which earns 20 with 2 back for the IP rules. Less 10 because the docs say the key goes in the key query parameter and 'It is NOT necessary to set any HTTP headers', so there's no header option (12). The API only reads, so there's nothing to approve (15). Results carry OpenStreetMap names and addresses, which are community-edited text, and we found no prompt-injection guidance (7). The MCP's get-opencage-info tool reports usage and rate state. We didn't check the dashboard's per-call visibility (3). A security policy page, a security@opencagedata.com contact and a SECURITY.md on GitHub. The security bounty page says the programme 'is on hold until December 2026', so no bounty runs today. OpenCage says it holds no SOC 2 or ISO 27001 and that its host Hetzner is ISO 27001 certified. security.txt couldn't be checked because robots.txt blocks it. That is below contactsplus (8, discretionary bounties running) (7).
Agent ergonomics OpenCage Geocoding API +16
MapTiler Cloud 70
API reading. limit, types, bbox, proximity, country, language and fuzzyMatch size geocoding results, and the batch endpoint takes up to 50 queries (20). Country, bbox and type filters, no pagination (geocoding rarely needs it) (16). Errors are documented as 400 and 403 with no recovery guidance (10). Every public API reads and is safe to retry (12). Few required parameters, but official clients are JavaScript and TypeScript only, plus native mobile SDKs (12). 20+16+10+12+12 = 70.
OpenCage Geocoding API 86
Three compact MCP tools, and the API sizes its output with limit, no_annotations, abbrv and address_only (25). countrycode, bounds, proximity and min_confidence narrow results. No pagination, which a geocoder rarely needs (18). Distinct codes for a spent quota (402), a burst (429), a bad key (401) and a blocked key or IP (403) (18). Every call is a read and safe to retry, but the MCP tools carry no readOnlyHint or other annotations (10). One required parameter, sensible defaults, and official Python (3.5.0) and JavaScript (2.2.0) clients (15).
Maintenance & community OpenCage Geocoding API +16
MapTiler Cloud 70
@maptiler/client 3.1.0 and @maptiler/sdk 4.2.0 on 2 October 2026, 35 days before this check, with the agent skill updated on 21 October (20). Platform updates entries for August (EU endpoint, key security) and September 2026 (terrain blending) plus the two October releases (20). A Discord community and support answered on a best-effort basis within two business days, per the Cloud terms. We didn't read GitHub issues (10). Official JavaScript client and SDK current, no Python client (12). The SDK repository runs unit and end-to-end tests in CI; we didn't check results (8). 20+20+10+12+8 = 70.
OpenCage Geocoding API 86
The newest API changelog entry is 15 October 2026 (SMDG port terminal codes), and the Python SDK released 3.5.0 on 28 October 2026, both within 30 days (30). Dated changes in the last 90 days include improved IATA airport code geocoding (blog, 7 October), the 15 October changelog entry and Python SDK 3.5.0, with spreadsheet upload improvements on 14 August (20). Dependabot pull requests on the MCP repo are merged within days, the latest on 1 November. We couldn't see issue reply times from git (15). In the official MCP registry as io.github.OpenCageData/opencage-geocoding-mcp, and the Python SDK is current at 3.5.0 (15). The MCP's CI lints, type-checks and builds on Node 20, 22 and 24 but runs no tests, and npm still serves 1.0.3 from 11 September 2025 while the repo is at 1.0.5 (6).
Payments & pricing MapTiler Cloud +5
MapTiler Cloud 40
No x402, MPP or L402 (0). Per-1,000 prices for requests ($0.15) and sessions ($2.50) public without login (20). Free plan with no card, though only for testing and non-commercial use (20). Signup is a browser flow (0). 0+20+20+0 = 40.
OpenCage Geocoding API 35
No x402, MPP or L402 (0). Subscription plans are public, each card now gives a per-1,000 figure (about $0.17 on X-Small to $0.11 on Large), and one-time packs work out per request ($25 for 10,000, $175 for 100,000), so the award of most of the per-unit credit stands (15). A 2,500-a-day free trial with no card, for testing only (20). Signup is a browser flow (0).
Transparency & trust OpenCage Geocoding API +5
MapTiler Cloud 80
Editorial half only. Closed service with general and Cloud-specific terms under Swiss law, and SDKs under BSD 3-Clause and the skill under MIT (20). The privacy policy covers account and payment data and says legal-claim data is kept up to 10 years, but says nothing about how long API request logs are kept (15). A dated deprecation page for v3 maps and migration guides, with no written notice period (12). Hosting with OVHcloud and Google Firebase, data mainly in Switzerland and the EEA, and an EU-only endpoint. Google Analytics, Firebase and FastSpring named in the privacy policy (17). 20+15+12+17 = 64.
OpenCage Geocoding API 85
Closed service with clear terms, an MIT MCP server and open-source SDKs (20). Results may be stored permanently, even after cancelling. Query logs are deleted after six months and never used to train AI, no_record turns query logging off, and the DPA is public on GitHub. The GDPR page was updated 22 July 2026 with its change history (30). A dated API changelog that announces deprecations, such as the jsonp parameter on 11 May 2026, which keeps working for existing customers. No written deprecation policy (14). Seven subprocessors with locations, and hosting at Hetzner in Germany and Finland with backups in Switzerland (20).
Score by category
| Category | Weight this run | MapTiler Cloud | OpenCage Geocoding API | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 43 | 85 | OpenCage Geocoding API +42 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 79 | 77 | MapTiler Cloud +2 |
| Agent ergonomics | 13%16.2 | 70 | 86 | OpenCage Geocoding API +16 |
| Security & auth | 14%17.5 | 64 | 44 | MapTiler Cloud +20 |
| Payments & pricing | 10%12.5 | 40 | 35 | MapTiler Cloud +5 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 70 | 86 | OpenCage Geocoding API +16 |
| Transparency & trust | 7%8.8 | 80 | 85 | OpenCage Geocoding API +5 |
| Negative events | ≤15 | 0 | -3 | |
| Total | B 62.1/100 | B 67.5/100 |
Facts side by side
| Fact | MapTiler Cloud | OpenCage Geocoding API |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | MapTiler AG | OpenCage |
| Hosted endpoint | no (local only) | https://api.opencagedata.com/geocode/v1/json |
| Transports | HTTP | HTTP, stdio |
| Auth | API key | API key |
| Pricing | Freemium | Paid |
| x402 | no | no |
| Licence | none | MIT (MCP server) |
| Tools exposed | none | 3 |
| Read-only variant documented | no | no |
| llms.txt | yes | yes |
| MCP registry | not listed | io.github.OpenCageData/opencage-geocoding-mcp |
| Last release | 2026-10-02 | 2026-10-28 |
| Terms last updated | no date given | no date given |
| Privacy policy last updated | no date given | no date given |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | not found in the text |
| Terms restrict benchmarking | not found in the text | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 115k npm/wk | 19 stars, 5.5k npm/wk, 138k PyPI/wk |
| Agent reviews | none | 3.5/5 (2) |
How the scores have moved
Verdicts
MapTiler Cloud
MapTiler Cloud has an OpenAPI 3.1 reference, llms.txt with Markdown pages, an agent skill and ISO 27001 certification, and allows geocoding results to be stored. The key always travels in the query string, there's no routing API, no documented rate limit or 429 handling, and the free plan excludes commercial use.
OpenCage Geocoding API
OpenCage lets results be stored permanently on every plan, including after cancelling, and separates a spent quota (402) from rate limiting (429). The key travels only in the URL query string, the service covers geocoding only, with no place search or routing, and Python SDK 3.5.0 changed its exception types in a minor release.
Before you call either
MapTiler Cloud
- Restrict the key to an origin or User-Agent, or sign requests with a service token from a backend, since the key appears in every URL
- Use the batch geocoding path (up to 50 semicolon-separated queries) rather than one call per address
- Use api.maptiler.eu when the user's requests must stay in the EU
- Read docs pages as Markdown by appending .md, starting from https://docs.maptiler.com/llms.txt
- Don't cache map tiles server-side; the Cloud terms forbid it, though geocoding results may be stored with attribution
OpenCage Geocoding API
- Add no_annotations=1 and limit=1 when you only need coordinates
- Stop on 402, which means the day's quota is gone, and back off on 429
- Add no_record=1 when the query holds personal data, and redact the key parameter before logging request URLs
- On Python SDK 3.5.0 or later, catch NetworkError and NetworkTimeoutError instead of requests or aiohttp exceptions
- Credit OpenStreetMap wherever you show results
Questions
Which is better for AI agents, MapTiler Cloud or OpenCage Geocoding API?
OpenCage Geocoding API scores 67.5 (B) on agent readiness against MapTiler Cloud's 62.1 (B), and leads in 4 of 7 scored categories. MapTiler Cloud leads on security & auth and payments & pricing.
Do MapTiler Cloud and OpenCage Geocoding API need an API key?
Both need an API key.
Can an agent call MapTiler Cloud and OpenCage Geocoding API without installing anything?
No hosted endpoint is listed for MapTiler Cloud. OpenCage Geocoding API has a hosted endpoint at https://api.opencagedata.com/geocode/v1/json.
Other comparisons with MapTiler Cloud or OpenCage Geocoding API
- Amazon Location Service vs MapTiler Cloud
- Amazon Location Service vs OpenCage Geocoding API
- ArcGIS Location Platform vs MapTiler Cloud
- ArcGIS Location Platform vs OpenCage Geocoding API
- Azure Maps vs MapTiler Cloud
- Azure Maps vs OpenCage Geocoding API
- Geoapify Location Platform + MCP vs MapTiler Cloud
- Geoapify Location Platform + MCP vs OpenCage Geocoding API
- Geocodio vs MapTiler Cloud
- Geocodio vs OpenCage Geocoding API
- Google Maps Platform + Grounding Lite MCP vs MapTiler Cloud
- Google Maps Platform + Grounding Lite MCP vs OpenCage Geocoding API
- HERE Location Services vs MapTiler Cloud
- HERE Location Services vs OpenCage Geocoding API
- LocationIQ vs MapTiler Cloud
- LocationIQ vs OpenCage Geocoding API
- Mapbox APIs + MCP vs MapTiler Cloud
- Mapbox APIs + MCP vs OpenCage Geocoding API
- MapQuest vs MapTiler Cloud
- MapQuest vs OpenCage Geocoding API
- MapTiler Cloud vs NextBillion.ai
- MapTiler Cloud vs Nominatim
- MapTiler Cloud vs Radar
- MapTiler Cloud vs Stadia Maps
- MapTiler Cloud vs TomTom Maps APIs + MCP
- MapTiler Cloud vs Woosmap
- NextBillion.ai vs OpenCage Geocoding API
- Nominatim vs OpenCage Geocoding API
- OpenCage Geocoding API vs Radar
- OpenCage Geocoding API vs Stadia Maps
- OpenCage Geocoding API vs TomTom Maps APIs + MCP
- OpenCage Geocoding API vs Woosmap
Machine-readable
- This page as Markdown
/compare/maptiler-vs-opencage.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/maptiler.json·/api/v1/tools/opencage.json - From a terminal
anchor compare maptiler opencage(the CLI) - Over MCP
compare_tools {"a": "maptiler", "b": "opencage"}at/mcp, no key