OpenCage Geocoding API
"Easy, Open, Worldwide, Affordable Geocoding and Geosearch" [1]
OpenCage Geocoding API is a worldwide forward and reverse geocoding service, in operation since 2014, suited for use cases ranging from fleet tracking and logistics to academic research and IoT location data. Paid subscriptions start at $50/month with a free tier of 2,500 requests per day for testing (production use requires a paid plan), and enterprise pricing is available. The REST API supports API key auth and ships with official SDKs in over ten languages including Python, Go, Rust, and R, plus an MCP server. GDPR and HIPAA compliance are documented.
Best for / Avoid if
Best for: Prototypes and side projects - free to start, no sales call; Regulated or enterprise workloads - compliance attestations and an enterprise plan; AI agents and automation - an agent-ready surface (MCP / llms.txt)
Scores
- 90 / 100Agent friendliness
- 100 / 100Pricing transparency
- 85 / 100Setup speed
- 80 / 100Docs quality
- 100 / 100Procurement ease
- 30 / 100Trust readiness
Pricing & procurement
- Pricing model
- Subscription [2]
- Published pricing
- ✓ Yes [3]
- Free tier
- ✓ Yes [4]
- Free tier details
- 2,500 requests/day, 1 request/second, no credit card required; explicitly for testing only - production use prohibited; inactive accounts deleted after 3 months of inactivity [5]
- Self-serve signup
- ✓ Yes
- Requires sales call
- ✗ No
- Enterprise plan
- ✓ Yes [6]
| Plan | Item | Per | Amount | Source |
|---|---|---|---|---|
| Free Trial | 2,500 requests/day, 1 req/sec rate limit; testing only, no production use | month | $0 | source |
| X-Small | 10,000 requests/day, 15 req/sec rate limit; €45/month (~€0.15 per 1,000 requests) | month | - | source |
| Small | 30,000 requests/day, 20 req/sec rate limit; €110/month (~€0.12 per 1,000 requests) | month | - | source |
| Medium | 125,000 requests/day, 25 req/sec rate limit; €450/month (~€0.12 per 1,000 requests) | month | - | source |
| Large | 300,000 requests/day, 40 req/sec rate limit; €900/month (~€0.10 per 1,000 requests) | month | - | source |
| Enterprise | Custom daily request limit and rate limit; from €1,800/month; dedicated support and custom terms | month | - | source |
Capabilities
- Supported actions
- forward_geocode, reverse_geocode, batch_geocode, geosearch_autocomplete [7]
- Regions
- worldwide
- Languages
- IETF language tags accepted via language parameter (50+ languages including African, Asian, and European languages), native (returns results in local language)
- Input types
- free-form address, place name, lat/lon (decimal format), UN/LOCODE code [8]
- Output types
- JSON, GeoJSON, XML, Google-v3-json (deprecated legacy format) [9]
- Webhooks
- ✗ No [10]
- Sandbox / test mode
- ✗ No [11]
- SDK languages
- Python, Java, PHP, Ruby, Perl, MATLAB, Scala, JavaScript (Leaflet), R, Go, Rust [12]
- MCP server
- ✓ Yes [13]
Trust & compliance
- SOC 2
- None [14]
- HIPAA
- ✓ Yes [15]
- GDPR
- ✓ Yes [16]
- ISO 27001
- ✗ No [17]
- PCI DSS
- ✗ No [18]
- Published SLA
- ✗ No [19]
- Rate limits
- Free trial: 2,500 requests/day (hard limit), 1 req/sec. X-Small paid: 10,000 req/day, 15 req/sec. Small: 30,000 req/day, 20 req/sec. Medium: 125,000 req/day, 25 req/sec. Large: 300,000 req/day, 40 req/sec. Enterprise: custom. Paid plans have soft daily limits (service continues if exceeded, upgrade requested next month). [20]
- Known restrictions
- Free trial is for testing only; production use explicitly prohibited - FAQ states 'Please do NOT run production services on a free trial', Free trial inactive accounts auto-deleted after 3 months, G-NAF (Australian address) data cannot be used for mail generation without secondary source verification, Geosearch does not support house-level address search, Geosearch has no free trial, API requires HTTPS (TLS 1.2+), HTTP GET method only (other methods return 405), Caching/storage of results explicitly permitted with no restrictions [21]
Developer surface
Integration
- API style
- rest
- Base URL
- https://api.opencagedata.com/geocode/v1
- Version
- v1
- Versioning
- url
- Stability
- ga
- Auth methods
- api_key
- Idempotency keys
- ✗ No
- Error format
- vendor-specific
- Rate limit
- 2500 / day
- Python
opencage· repo - Java
jopencage· repo - PHP
php-opencage-geocode· repo - Ruby
opencage-geocoder· repo - Perl
Geo::Coder::OpenCage· repo - MATLAB
opencage-matlab· repo - Scala
scala-opencage-geocoder· repo - JavaScript (Leaflet)
leaflet-opencage-geocoding· repo - R
opencage· repo - Go
opencage· repo - Rust
geocoding· repo
Adoption & maturity
- Launched
- 2014-01-01
- Notable customers
- SIXT Share, BigMile, DQC Data Quality Company, Cobalt Intelligence
Other Geocoding APIs
Geocodio
"The delightfully boring geocoder"
Melissa
Global data quality and enhancement solutions to profile, verify, clean, update, match, and integrate People data.
Azure Maps (Search / Geocoding)
"Azure Maps is a set of mapping and geospatial services that enable developers and organizations to build intelligent location-based experiences for applications across many different industries and use cases. Use the Azure Maps REST APIs and Web SDK to bring maps, geocoding, location search, routing, real-time traffic, geolocation, time zone information, and weather data into your web and mobile solutions."
LocationIQ
"Affordable Google Maps alternative for your website or app"
Google Geocoding API
"The Geocoding API is a service that accepts a place as an address, latitude and longitude coordinates, or Place ID. It converts the address into latitude and longitude coordinates and a Place ID, or converts latitude and longitude coordinates or a Place ID into an address."
Radar Geocoding API
"Use Radar's geocoding APIs to convert addresses to latitude and longitude coordinates, or vice versa."
References
- ↑Description: opencagedata.com
- ↑Pricing model: opencagedata.com · opencagedata.com
- ↑Published pricing: opencagedata.com
- ↑Free tier: opencagedata.com · opencagedata.com
- ↑Free tier details: opencagedata.com · opencagedata.com
- ↑Enterprise plan: opencagedata.com · opencagedata.com
- ↑Supported actions: opencagedata.com
- ↑Input types: opencagedata.com
- ↑Output types: opencagedata.com
- ↑Webhooks: opencagedata.com
- ↑Sandbox: opencagedata.com
- ↑SDK languages: opencagedata.com
- ↑MCP server: opencagedata.com · github.com
- ↑SOC 2: opencagedata.com
- ↑HIPAA: opencagedata.com · opencagedata.com
- ↑GDPR: opencagedata.com · opencagedata.com
- ↑ISO 27001: opencagedata.com · opencagedata.com
- ↑PCI DSS: opencagedata.com
- ↑Published SLA: opencagedata.com · status.opencagedata.com
- ↑Rate limits: opencagedata.com · opencagedata.com
- ↑Known restrictions: opencagedata.com · opencagedata.com
Change history
- 2026-06-15 Score Agent Friendliness: 60 → 90
- 2026-06-15 Score Docs Quality: 45 → 80
- 2026-06-14 Markdown Docs Served: (none) → Yes
- 2026-06-14 API Reference URL: (none) → https://opencagedata.com/api
- 2026-06-14 Robots Allows Agents: (none) → Yes
- 2026-06-14 Has Structured Data: (none) → Yes
- 2026-06-14 Markdown Docs URL: (none) → https://opencagedata.com/api.md
- 2026-06-14 Capabilities: {} → {"batch":true,"forward":true,"reverse":true,"autocomplete":true}
- 2026-06-14 Summary Md: (none) → OpenCage Geocoding API is a worldwide forward and reverse geocoding service, in…
- 2026-06-14 Score Docs Quality: 0 → 45
- 2026-06-14 Score Agent Friendliness: 30 → 60
- 2026-06-14 Status Page URL: (none) → https://status.opencagedata.com
- 2026-06-14 Llms Txt Present: (none) → Yes
- 2026-06-14 Llms Txt URL: (none) → https://opencagedata.com/llms.txt
- 2026-06-14 Rendering: (none) → static
- 2026-06-14 Openapi Spec URL: (none) → https://opencagedata.com/openapi.yaml
- 2026-06-14 Docs URL: (none) → https://opencagedata.com/api
- 2026-06-14 Score Agent Friendliness: (none) → 30
- 2026-06-14 Scoring Methodology: (none) → Scores are computed deterministically from this profile's published, sourced fi…
- 2026-06-14 Best For: (none) → Prototypes and side projects - free to start, no sales call, Regulated or enter…
- 2026-06-14 Score Trust Readiness: (none) → 30
- 2026-06-14 Score Procurement Friction: (none) → 100
- 2026-06-14 Score Docs Quality: (none) → 0
- 2026-06-14 Score Setup Speed: (none) → 85
- 2026-06-14 Score Pricing Transparency: (none) → 100
- 2026-06-14 GDPR: set to Yes
- 2026-06-14 ISO 27001: set to No
- 2026-06-14 PCI DSS: set to No
- 2026-06-14 SLA Published: set to No
- 2026-06-14 Data Retention Policy URL: set to https://opencagedata.com/gdpr
- 2026-06-14 Documented Rate Limits: set to Free trial: 2,500 requests/day (hard limit), 1 req/sec. X-Small paid: 10,000 re…
- 2026-06-14 Rate Limit Requests: set to 2500
- 2026-06-14 Rate Limit Window: set to day
- 2026-06-14 Known Restrictions: set to Free trial is for testing only; production use explicitly prohibited - FAQ stat…
- 2026-06-14 Auth Methods: set to api_key
- 2026-06-14 Auth Docs URL: set to https://opencagedata.com/api#authentication
- 2026-06-14 API Style: set to rest
- 2026-06-14 Base URL: set to https://api.opencagedata.com/geocode/v1
- 2026-06-14 API Version: set to v1
- 2026-06-14 Versioning Scheme: set to url
- 2026-06-14 Stability: set to ga
- 2026-06-14 MCP URL: set to https://github.com/OpenCageData/opencage-geocoding-mcp
- 2026-06-14 Quickstart URL: set to https://opencagedata.com/api#quickstart
- 2026-06-14 Idempotency Supported: set to No
- 2026-06-14 Error Format: set to vendor-specific
- 2026-06-14 Requires Verification: set to No
- 2026-06-14 Starting Price Usd: set to 50
- 2026-06-14 Price Basis: set to month
- 2026-06-14 Free Tier Limit: set to 2,500 requests/day
- 2026-06-14 Launched At: set to 2014-01-01
Suggest an edit / leave a review
Leave a review or comment
curl -X POST https://apio.sh/api/feedback/opencage \
-H 'Content-Type: application/json' \
-d '{"kind":"review","rating":5,"body":"Your experience with this API…"}'Suggest a correction to a field (cite a source)
curl -X POST https://apio.sh/api/suggest/opencage/FIELD \
-H 'Content-Type: application/json' \
-d '{"value":"corrected value","citations":[{"url":"https://source.example/page","excerpt":"supporting quote"}],"note":"what changed and why"}'