OpenStreetMap Nominatim Geocoder
Pricing
from $8.99 / 1,000 result items
OpenStreetMap Nominatim Geocoder
Batch geocode addresses, reverse-geocode coordinates, or look up places by OSM ID using the public Nominatim API. Returns display name, address parts, bounding box, and OSM type and ID for each result.
Pricing
from $8.99 / 1,000 result items
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
5
Total users
0
Monthly active users
a day ago
Last modified
Categories
Share
OpenStreetMap Nominatim Geocoder
Geocode addresses, reverse-geocode coordinates, or look up places by OSM ID, up to a million per run. Every result returns the full display name, structured address parts, bounding box, and OSM type and ID. No API key required. Export to CSV, JSON, Excel, or XML.
Nominatim's public API rate-limits you to one request per second and caps search results at 40 per query. This Actor batches your queries, manages the polite-use delay, and collects every match into one flat dataset. It handles search, reverse, and lookup modes so you can turn a list of addresses, coordinates, or OSM IDs into structured location data without writing a single line of code.
| Who uses it | What they scrape OpenStreetMap Nominatim for |
|---|---|
| Data analysts | Enrich a spreadsheet of addresses with coordinates and canonical place names. |
| Logistics planners | Convert a list of delivery coordinates into full street addresses for route planning. |
| GIS specialists | Fetch the bounding box and administrative hierarchy for a set of OSM relation IDs. |
| Market researchers | Geocode a list of store names or landmarks to map competitor locations. |
What it does
This Actor geocodes free-text queries, reverse-geocodes latitude/longitude pairs, or fetches places by OpenStreetMap node, way, or relation ID, and returns each result as a flat row with the full address and bounding box.
- 🔎 Search mode: Free-form address or place name queries, with optional country and language filters.
- 📍 Reverse mode: Feed it latitude,longitude pairs and get back the nearest address and all address components.
- 🆔 Lookup mode: Fetch a place directly by its OSM type and ID (node, way, or relation).
- 🌐 Language preference: Request display names and address parts in your choice of language.
- 🗺️ Country restriction: Limit search results to one or more ISO 3166-1 alpha-2 country codes.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with OpenStreetMap Nominatim data
🗺️ Geocode a list of landmarks.
A travel researcher pastes 200 landmark names into search mode and exports a CSV with coordinates and full addresses for mapping.
📦 Reverse-geocode delivery coordinates.
A logistics analyst feeds a list of GPS pings into reverse mode and gets back street addresses to validate drop-off zones.
🏛️ Fetch administrative boundaries by OSM ID.
A GIS specialist uses lookup mode with a list of relation IDs to retrieve the bounding boxes and hierarchy of city and state boundaries.
🌍 Build a multilingual place database.
A developer runs the same search queries with different language settings to collect place names in English, Spanish, and Japanese for a localization project.
Why choose this scraper
| What you get | |
|---|---|
| No API key | Talks directly to the public Nominatim endpoint with polite-use delays built in. |
| Three modes | Search, reverse, and lookup cover every common geocoding workflow. |
| Batch input | Paste hundreds of queries, coordinates, or OSM IDs and collect all results in one run. |
| Structured output | Every row includes the display name, address breakdown, bounding box, and OSM type and ID. |
How it compares
No other Store actor targets OpenStreetMap Nominatim the same way, so the honest comparison is with the alternatives teams actually weigh.
| OpenStreetMap Nominatim Geocoder | Build it in-house | By hand | |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When OpenStreetMap Nominatim changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |
Configure the run
Drive the Actor from search queries, coordinate pairs, and OSM IDs, alone or together, and filters like country codes and language run as each query is sent so only matching places reach your dataset. The Input tab lists every parameter.
A first run with the defaults:
{"maxItems": 10,"mode": "search","queries": ["Eiffel Tower","Times Square NYC","Colosseum Rome","Tokyo Tower","Sydney Opera House","10 Downing Street London","Brandenburg Gate Berlin","Statue of Liberty","Taj Mahal","Christ the Redeemer Rio"],"coordinates": ["48.8584,2.2945","40.7580,-73.9855","41.8902,12.4922"],"osmIds": ["R146656","R62422","R1221769"]}
A larger pull:
{"maxItems": 200,"mode": "search","queries": ["Eiffel Tower","Times Square NYC","Colosseum Rome","Tokyo Tower","Sydney Opera House","10 Downing Street London","Brandenburg Gate Berlin","Statue of Liberty","Taj Mahal","Christ the Redeemer Rio"],"coordinates": ["48.8584,2.2945","40.7580,-73.9855","41.8902,12.4922"],"osmIds": ["R146656","R62422","R1221769"]}
Pricing
Pay-per-result: $0.01199 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $1.20 |
| 1,000 results | $11.99 |
| 10,000 results | $119.90 |
New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the OpenStreetMap Nominatim Geocoder.
- Set your inputs and any filters, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to OpenStreetMap Nominatim through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/nominatim-osm-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results for my search query?
Check that your query is specific enough. Very broad terms may return no match. Also verify that your country codes filter, if set, is not excluding the expected region.
Why is the Actor running slowly?
The Actor adds a mandatory one-second delay between requests to comply with Nominatim's usage policy. Processing many queries will take time proportional to the number of requests.
Why do I get fewer results than my limit per query setting?
Nominatim returns only the matches it finds. If a query has fewer matching places than your limit, you will receive only those matches. The hard cap is 40 per query on the public server.
Why are some address fields empty in my results?
Nominatim populates address components based on what is mapped in OpenStreetMap. Some places have less detailed address data than others, so fields like postcode or city may be missing.
Why does my lookup by OSM ID fail?
Ensure the ID is still valid in OpenStreetMap. Deleted or merged objects will not return a result. Also verify the format: a letter (N, W, R) followed directly by the numeric ID, with no spaces.
FAQ
| Question | Answer |
|---|---|
| Do I need an API key or a Nominatim account? | No. This Actor uses the public Nominatim endpoint. It respects the usage policy by adding a one-second delay between requests. |
| How many results can I get per search query? | The public Nominatim server caps results at 40 per query. You can set a lower limit in the input, and you can run many queries in one batch to build a larger dataset. |
| What is the difference between search, reverse, and lookup modes? | Search mode turns text like 'Eiffel Tower' into coordinates. Reverse mode turns a latitude,longitude pair into an address. Lookup mode fetches a place directly by its OSM type and ID, such as a node, way, or relation. |
| Can I filter search results by country? | Yes. Use the country codes field with comma-separated ISO 3166-1 alpha-2 codes, like 'us,ca,mx', to restrict results to specific countries. |
| What language will the place names be in? | You set the preferred language in the input. Nominatim will return the display name and address components in that language when a translation is available, falling back to the local name otherwise. |
| How do I format coordinates for reverse mode? | Enter one latitude,longitude pair per line, like '48.8584,2.2945'. The Actor sends each pair as a separate reverse-geocoding request. |
| How do I format OSM IDs for lookup mode? | Use the format |
| Is there a limit on how many queries I can run? | You can set the maximum number of places to collect per run up to 1,000,000. The Actor will stop when it reaches that total or exhausts your input list. |
| What export formats are supported? | You can export your dataset to CSV, JSON, Excel, or XML from the Apify platform. |
| Can I mix search queries, coordinates, and OSM IDs in one run? | No. You pick one mode per run. Run the Actor multiple times with different modes if you need to process different input types. |
Related actors
Browse the full ParseForge collection for more scrapers.
🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by OpenStreetMap Foundation. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.
