Side-by-side comparison of 7 geocoding APIs. Convert addresses to coordinates and coordinates to addresses with the right provider for your project.
Last updated: March 2026 · Prices verified at source
Geocoding APIs convert between human-readable addresses and geographic coordinates (latitude/longitude). They power map search, address validation, delivery routing, and location-based features.
Convert text addresses to lat/lng coordinates. Power search bars, store locators, and address autocomplete.
Convert coordinates to addresses. Show "You are at..." in mobile apps, tag photos with locations, log delivery drops.
Verify and normalize addresses at checkout. Reduce failed deliveries and improve data quality.
Geocode thousands of addresses at once. Clean up CRM data, import spreadsheets, build mapping datasets.
Core capabilities across all 7 geocoding providers.
| Feature | Google Mapsmaps.google.com | Mapboxmapbox.com | OpenCageopencagedata.com | LocationIQlocationiq.com | Nominatimnominatim.org | Positionstackpositionstack.com | HEREhere.com |
|---|---|---|---|---|---|---|---|
| Forward Geocoding | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Reverse Geocoding | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Autocomplete | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✓ |
| Batch Geocoding | ✗ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ |
| Address Validation | ✓ | ✗ | ✗ | ✗ | ✗ | ✗ | ✓ |
| Map Tiles | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✓ |
| Routing / Directions | ✓ | ✓ | ✗ | ✓ | ✗ | ✗ | ✓ |
| No API Key Required | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
| Self-Hostable | ✗ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ |
| Data Source | Mapbox + OSM | OpenStreetMap | OpenStreetMap | OpenStreetMap | Multiple | HERE | |
| Global Coverage | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Free tiers and paid plans for each geocoding API. All prices as of March 2026.
| Provider | Free Tier | Paid Starting At | Cost per 1K Requests | Credit Card Required? |
|---|---|---|---|---|
| Nominatim | Unlimited (self-host) / Shared: 1 req/s | Free (self-host) or hosted from ~$25/mo | $0 (self-hosted) | No |
| Positionstack | 25,000 req/month | $9.99/month (100K req) | $0.10 | No |
| OpenCage | 2,500 req/day | $50/month (10K req/day) | $0.17 | No |
| LocationIQ | 5,000 req/day | $49/month (30K req/day) | $0.05 | No |
| Google Maps | $200/mo credit (~40K req) | Pay-as-you-go | $5.00 | Yes |
| Mapbox | 100K req/month | $5.00 per 1K over free tier | $5.00 | Yes |
| HERE | 250K req/month | Pay-as-you-go | $1.00 | Yes |
LocationIQ offers the best balance of free tier generosity (5K/day), low paid pricing ($0.05/1K), and OSM-quality data. For zero-cost projects, Nominatim is unbeatable — self-host for unlimited geocoding, or use the public endpoint for low-volume needs.
The gold standard for geocoding accuracy, especially for ambiguous addresses and complex queries. Best-in-class autocomplete ("Places API") and address validation. Downsides: most expensive per-request, requires credit card, and strict Terms of Service (results must be displayed on Google Maps).
Enterprise apps where accuracy is critical and you need the full Google Maps ecosystem (maps, directions, Street View, Places).
Strong geocoding built on a combination of proprietary data and OpenStreetMap. Generous 100K free requests/month. The real strength is the mapping platform — if you're already using Mapbox GL JS for maps, the geocoding integrates seamlessly. Batch geocoding available.
Projects already using Mapbox maps, or those needing combined map tiles + geocoding from one provider.
Clean, developer-friendly geocoding API built on OpenStreetMap data. Returns rich metadata including timezone, currency, what3words address, and formatted address components. No credit card for free tier. GDPR-compliant with EU-hosted options.
Privacy-conscious apps, European projects needing GDPR compliance, and developers wanting clean structured response data.
Cost-effective geocoding using OpenStreetMap data. Offers geocoding, autocomplete, map tiles, and routing — a full mapping stack at a fraction of Google Maps pricing. The API is Nominatim-compatible, making migration easy. Also provides static maps.
Startups and mid-size apps that want Google Maps-like features at 90% lower cost. Great Nominatim drop-in replacement with better uptime.
Free and open-source geocoding from OpenStreetMap. No API key needed for the public endpoint. Self-hostable for unlimited usage. Community-maintained data means coverage varies — excellent in Europe and urban areas, sometimes sparse in rural developing regions.
Open-source projects, prototypes, and teams willing to self-host for unlimited free geocoding.
Simple geocoding API with a generous free tier (25K/month). Easy to get started — clean JSON responses, good documentation. Data sourced from multiple providers. Batch geocoding available on paid plans. Part of the apilayer family of APIs.
Quick prototypes and small projects that need simple address-to-coordinates conversion without complexity.
Enterprise-grade geocoding from a company with 35+ years of mapping data. HERE's own proprietary data (originally from NAVTEQ) is exceptionally strong for automotive, logistics, and delivery. Very generous free tier at 250K transactions/month. Supports structured and freeform address input.
Logistics, fleet management, and delivery apps where address precision and routing accuracy are critical.
Forward geocoding with each API in JavaScript (Node.js / fetch).
const address = '1600 Amphitheatre Parkway, Mountain View, CA'; const res = await fetch( `https://maps.googleapis.com/maps/api/geocode/json?address=${encodeURIComponent(address)}&key=${API_KEY}` ); const data = await res.json(); const { lat, lng } = data.results[0].geometry.location; console.log(`${lat}, ${lng}`); // 37.4224764, -122.0842499
const address = '1600 Amphitheatre Parkway, Mountain View, CA'; const res = await fetch( `https://api.opencagedata.com/geocode/v1/json?q=${encodeURIComponent(address)}&key=${API_KEY}` ); const data = await res.json(); const { lat, lng } = data.results[0].geometry; console.log(`${lat}, ${lng}`); console.log(data.results[0].annotations.timezone.name); // America/Los_Angeles
const address = '1600 Amphitheatre Parkway, Mountain View, CA'; const res = await fetch( `https://nominatim.openstreetmap.org/search?q=${encodeURIComponent(address)}&format=json&limit=1`, { headers: { 'User-Agent': 'MyApp/1.0' } } ); const [result] = await res.json(); console.log(`${result.lat}, ${result.lon}`); // No API key needed!
const address = '1600 Amphitheatre Parkway, Mountain View, CA'; const res = await fetch( `https://us1.locationiq.com/v1/search?key=${API_KEY}&q=${encodeURIComponent(address)}&format=json` ); const [result] = await res.json(); console.log(`${result.lat}, ${result.lon}`);
const address = '1600 Amphitheatre Parkway, Mountain View, CA'; const res = await fetch( `https://geocode.search.hereapi.com/v1/geocode?q=${encodeURIComponent(address)}&apiKey=${API_KEY}` ); const data = await res.json(); const { lat, lng } = data.items[0].position; console.log(`${lat}, ${lng}`);
Different projects need different geocoding APIs. Here's our take:
Google Maps or HERE. Google for consumer apps with Places autocomplete. HERE for logistics and delivery where address precision matters most.
LocationIQ or OpenCage. LocationIQ for full mapping stack at low cost. OpenCage for clean API design and GDPR compliance.
Mapbox. If you need beautiful, customizable maps with integrated geocoding. 100K free requests.
Nominatim. Self-host for unlimited free geocoding. Public endpoint for prototypes and low-volume apps.
Need to know a user's approximate location before they type an address? IP geolocation gives you country, city, and coordinates from an IP address — perfect for pre-filling location fields, showing local content, or detecting VPN usage.
Get country, city, ISP, timezone, and VPN detection from any IP address. No signup required for basic lookups.
Try Frostbyte GeoIP API