OpenStreetMap Nominatim Places Scraper
Pricing
from $7.69 / 1,000 results
OpenStreetMap Nominatim Places Scraper
Searches OpenStreetMap Nominatim for a place or address query and returns each match as a flat row with coordinates, bounding box, full address hierarchy, and OSM metadata.
Pricing
from $7.69 / 1,000 results
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
14 days ago
Last modified
Categories
Share
OpenStreetMap Nominatim Places Scraper
Scrape OpenStreetMap place data for any address, landmark, or point of interest. Get structured geodata including coordinates, bounding boxes, full address hierarchy, and OSM IDs. Export to CSV, JSON, Excel, or XML.
OpenStreetMap's Nominatim API rate-limits and requires you to parse nested JSON. This Actor queries the public search endpoint directly, normalizes every result into a flat row, and handles pagination so you can collect up to a million places per run. No API key, no geocoding service contract.
| Who uses it | What they scrape OpenStreetMap Nominatim for |
|---|---|
| Real estate analysts | Geocode property addresses and extract neighborhood-level place data for site selection reports. |
| Logistics planners | Validate warehouse and delivery-point coordinates against OpenStreetMap's open dataset. |
| Data journalists | Map the distribution of named landmarks or amenities across a city for investigative stories. |
| GIS specialists | Bulk-collect OSM place IDs and bounding boxes to seed a custom map layer. |
What it does
This Actor searches OpenStreetMap Nominatim for a place query and returns each matching location as a flat, structured row with coordinates, address components, and OSM metadata.
- π Free-text search: type any place name, address, or point of interest and get every Nominatim match.
- πΊοΈ Full geodata per row: latitude, longitude, bounding box, and OSM place type and ID.
- π Address hierarchy: each result includes country, state, city, postcode, and street components where available.
- π¦ Flat output: nested Nominatim JSON is unpacked into one row per place, ready for spreadsheets or databases.
Results export to CSV, JSON, Excel, or XML, or straight from the API.
What you can do with OpenStreetMap Nominatim data
π’ Geocode a property portfolio.
A real estate analyst pastes a list of addresses one by one, collects coordinates and OSM place IDs, and joins them with internal valuation spreadsheets.
πΊοΈ Map every park in a city.
A GIS specialist searches 'parks in Barcelona', collects up to 10,000 results, and imports the bounding boxes into QGIS to build a green-space coverage map.
π Enrich a CRM with location data.
A sales ops manager runs company headquarters through the Actor, grabs lat/lon and address components, and pushes the flat CSV into Salesforce.
π Validate user-submitted addresses.
A logistics planner feeds delivery addresses into the Actor, compares returned coordinates against known warehouse zones, and flags mismatches.
Why choose this scraper
| What you get | |
|---|---|
| No API key required | Queries the public Nominatim endpoint so you can start scraping immediately without registration. |
| Flat, predictable schema | Every result unpacks nested address and geodata into the same columns, avoiding manual JSON wrangling. |
| Up to a million places | Set a high maxItems value and let the Actor paginate through all available matches for broad-area searches. |
| OpenStreetMap data | Uses the community-maintained OSM database, free of proprietary geocoder licensing restrictions. |
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 Places Scraper | 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 with a single search query, from a landmark name to a full street address, and set a maximum item count to cap the run. The Input tab lists every parameter.
A first run with the defaults:
{"searchQuery": "Eiffel Tower","maxItems": 10}
A larger pull:
{"searchQuery": "Eiffel Tower","maxItems": 200}
Pricing
Pay-per-result: $0.0085 per result collected. You pay only for the results written to your dataset.
| Results collected | Approximate cost |
|---|---|
| 100 results | $0.85 |
| 1,000 results | $8.50 |
| 10,000 results | $85.00 |
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 Places Scraper.
- 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/osmnominatim-places-scraper"
Then prompt it in plain language to run the scraper and read back the results.
Troubleshooting
Why am I getting no results?
Check that your search query is specific enough. Very broad queries like 'shop' may return too many matches and time out. Try a more specific query like 'coffee shop in Portland' or include a city name.
The Actor is running very slowly.
Nominatim enforces a strict 1-request-per-second rate limit. If you set a high maxItems value, expect roughly one result per second. Reduce maxItems or run multiple queries in parallel using separate Actor runs.
Some address fields are empty in my results.
OpenStreetMap data completeness varies by region. If a place lacks a postcode or street name in OSM, those fields will be empty in your output. This reflects the underlying map data, not an error in the Actor.
I get a 'request blocked' or 403 error.
Nominatim may block requests that appear automated if the user-agent is missing. The Actor sets a proper user-agent, but if you encounter blocks, wait a few minutes and try again with a lower maxItems value.
The coordinates seem slightly off.
Nominatim returns the centroid of the place's bounding box. For large areas like a city, the coordinate represents the center point. For precise building-level coordinates, search for a specific street address.
FAQ
| Question | Answer |
|---|---|
| Do I need an OpenStreetMap account or API key? | No. This Actor queries the public, anonymous Nominatim endpoint. No account, key, or OAuth flow is required. |
| What is the rate limit? | Nominatim's public usage policy allows a maximum of 1 request per second. The Actor respects this limit automatically to avoid being blocked. |
| Can I search for a category like 'restaurants near me'? | Yes. Nominatim supports free-text queries including amenities and points of interest. Try queries like 'restaurants in Manhattan' or 'hotels near Eiffel Tower'. |
| What fields does each result row contain? | Each row includes display name, latitude, longitude, bounding box, OSM place type, OSM ID, importance score, and a full breakdown of address components such as country, state, city, postcode, and street. |
| How many results can I get from one search? | You set the maximum with the 'Maximum places' input field, up to 1,000,000. The Actor will paginate until it reaches your limit or exhausts the available matches. |
| Can I search in languages other than English? | Nominatim returns results based on the local name tags in OpenStreetMap. Searching for 'MΓΌnchen' returns Munich with its German name, and address components appear in the local language where available. |
| Does this work for reverse geocoding? | This Actor is designed for forward geocoding, which is searching by place name or address. Reverse geocoding by coordinates is not supported in this version. |
| What export formats are supported? | You can export your dataset in CSV, JSON, Excel, or XML formats from the Apify platform. |
| Is the data real-time? | Yes. Every run queries the live Nominatim API, so you get the latest OpenStreetMap data including recent community edits. |
| Can I schedule this Actor to run daily? | Yes. Use Apify's scheduler to run the Actor on a recurring basis, for example to track changes to a set of place queries over time. |
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.
