OpenStreetMap Business & POI Search (Overpass API)
Pricing
$3.00 / 1,000 place founds
OpenStreetMap Business & POI Search (Overpass API)
Returns businesses and places from OpenStreetMap via the Overpass API: cafes, hotels, pharmacies, gyms, offices and 100+ categories in a bounding box, radius or named city, with name, coordinates, address, phone, website, hours and tags. Open ODbL data, no Google Maps.
Pricing
$3.00 / 1,000 place founds
Rating
0.0
(0)
Developer
lathewright LLC
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Security
Limited permissionsShare
Find businesses and points of interest from OpenStreetMap by category and area, without Google Maps, for local lead lists, site selection, researchers and AI agents. It costs $0.003 per place, so 1,000 places cost $3.
Find businesses and points of interest from OpenStreetMap without touching Google Maps: cafes, restaurants, hotels, pharmacies, dentists, gyms, supermarkets, banks, fuel stations, schools, coworking spaces, offices by profession, car repair shops and 100+ other presets, or any raw OSM tag. Search inside a bounding box, within a radius of a point, or in a named city, county or region. Every place comes back with name, category, coordinates, address, phone, website, opening hours, brand, wheelchair access and the complete tag set, under the open ODbL licence.
Built and maintained by Lathewright. Lathewright is operated by AI systems under human ownership. A person reviews and approves everything we publish, send and sell. Pay only for what you get: $0.003 per place.
What you can do with it
- Lead lists without licence risk: "all dentists in Lyon", "every coworking space within 3 km of this address", "bicycle shops in Travis County" as a table with websites and phone numbers, from an open dataset you may store and reuse (with attribution).
- Site selection and market mapping: count competitors by neighbourhood, map supermarkets around a candidate location, export to a GIS tool.
- Agent tool: an LLM can answer "which hotels near 52.52,13.40 have wheelchair access?" in one call.
- Enrichment: get the OSM id, Wikidata id and address for places you already know by name and area.
Example tasks
Paste any of these into the Input tab, or send the same JSON through the API. Prices are the per-result prices listed under Pricing.
1. Cafes and coworking spaces within 2 km of Berlin Mitte
{"categories": ["cafe", "coworking"],"center": "52.5200,13.4050","radiusMeters": 2000,"maxPlaces": 50}
What comes back: One row per place with name, category, lat, lon, address, phone, website, openingHours and osmUrl. Up to 50 rows, at most $0.15.
2. Pharmacies in a named city
{"categories": ["pharmacy"],"areaName": "Potsdam","maxPlaces": 100}
What comes back: Pharmacies inside the OpenStreetMap boundary called Potsdam.
3. Bicycle shops in a bounding box, using a raw OSM tag
{"tagFilters": ["shop=bicycle"],"bbox": "52.48,13.35,52.55,13.45","maxPlaces": 50}
What comes back: Places matching the tag inside the box.
Input
| Field | Type | Notes |
|---|---|---|
categories | array | Preset names (see list below) or raw key=value filters |
tagFilters | array | Advanced Overpass filters: shop=bicycle, amenity=restaurant cuisine~pizza, office=*, craft=brewery |
bbox | string | south,west,north,east in decimal degrees (max about 2x2 degrees per run) |
center, radiusMeters | string, integer | lat,lon and a radius from 50 m to 50 km |
areaName, areaAdminLevel, areaCountryCode | string, integer, string | An OSM administrative boundary by name, e.g. Berlin (admin level 2 country, 4 state, 6 county, 8 city) |
namedOnly | boolean | Only elements with a name (default true) |
maxPlaces | integer | Cap per run and Overpass output limit (default 500) |
overpassEndpoint | string | Interpreter URL; default is a free public instance, use your own for heavy use |
queryTimeoutSeconds | integer | Server-side query timeout |
Presets: cafe restaurant fast_food bar pub nightclub bakery ice_cream hotel hostel guest_house apartment camp_site attraction museum viewpoint supermarket convenience grocery clothes shoes electronics hardware furniture florist books jewelry pet optician bicycle car_dealer car_repair car_wash hairdresser beauty tattoo massage laundry marketplace mall shop_any pharmacy dentist doctors clinic hospital veterinary nursing_home childcare gym sports_centre swimming_pool park playground stadium golf bank atm fuel charging_station parking bus_station train_station airport school university library place_of_worship townhall police fire_station post_office embassy theatre cinema community_centre coworking office_any company lawyer accountant estate_agent insurance it_company architect consulting financial travel_agency brewery winery craft_any industrial.
{"categories": ["cafe", "coworking"],"center": "52.5200,13.4050","radiusMeters": 1500,"maxPlaces": 200}
{ "categories": ["pharmacy"], "tagFilters": ["shop=bicycle"], "areaName": "Potsdam", "areaAdminLevel": 6, "maxPlaces": 300 }
Output
{"type": "place","osmType": "node","osmId": 66917229,"osmUrl": "https://www.openstreetmap.org/node/66917229","name": "Café Einstein","category": "amenity=cafe","categoryKey": "amenity","categoryValue": "cafe","lat": 52.5167295,"lon": 13.3797732,"address": { "street": "Unter den Linden", "housenumber": "42", "postcode": "10117", "city": "Berlin", "country": null, "full": "Unter den Linden 42, 10117, Berlin" },"phone": "+49 30 2043632","website": "https://www.einstein-udl.com/","email": null,"openingHours": "Mo-Su 07:00-22:00","brand": null,"cuisine": "coffee_shop","wheelchair": "yes","tags": { "amenity": "cafe", "name": "Café Einstein", "addr:street": "Unter den Linden" },"license": "ODbL 1.0 (c) OpenStreetMap contributors, https://www.openstreetmap.org/copyright","fetchedAt": "2026-10-19T06:30:00.000Z"}
The exact Overpass QL query, the endpoint and counts are saved to the run's key-value store as QUERY.
Pricing
| Event | Price | Notes |
|---|---|---|
Place found (place) | $0.003 | Primary event. 500 places = $1.50 |
Plus Apify's standard start fee ($0.00005 per run). One Overpass request per run, no proxies, no browser. A query that fails (timeout, instance busy) charges nothing. Set a maximum cost per run and the Actor stops cleanly at the limit.
How to use it
- Apify Console: fill in the form, press Start, download JSON, CSV, Excel or GeoJSON-ready rows from the Output tab.
- API:
POST https://api.apify.com/v2/acts/lathewright~osm-places-overpass/run-sync-get-dataset-items?token=<token>with the input JSON as the body. - n8n, Make, Zapier: use the Apify node/module, pick this Actor, paste the input JSON.
Use from an AI agent (MCP)
Add this Actor as a tool in Claude, Cursor, VS Code or any MCP client with https://mcp.apify.com/?tools=lathewright/osm-places-overpass. The Actor description is the tool description, and the input fields above are the tool parameters. Example prompts: "Find gyms within 2 km of 48.8566,2.3522", "List all pharmacies in Potsdam with phone numbers".
Data source, fair use and limits
- Data: OpenStreetMap, licensed under the Open Database License (ODbL). You must credit "© OpenStreetMap contributors" and keep derived databases open under the ODbL terms (see openstreetmap.org/copyright). Each row carries the licence note.
- Default endpoint: the public Overpass instance at
overpass.kumi.systems, operated by the Austrian non-profit Private.coffee. Its terms (checked 19 October 2026) allow use in any project including commercial ones, ask users to share resources fairly, limit simultaneous requests, send a meaningful User-Agent and notify them before large operations (more than ten requests per second or ten concurrent). The Actor sends one query per run, waits at least two seconds between any retries, sets a server-side timeout and caps output. Its data snapshot can lag the live map by weeks or months (the test run's snapshot was three months old); the snapshot date is logged and saved inQUERY. - Why not overpass-api.de: the main public instance states that it is intended for browser-based and human-operated tools and asks automated or high-volume users to run their own instance, so it is not the default. The same applies to Nominatim (not used; its policy bans bulk scripted use), which is why areas are resolved inside Overpass by boundary name instead.
- Area-name queries: at the time of writing the default instance answers bounding-box and radius queries but returns HTTP 500 for
areaNamequeries (which need Overpass area data);overpass-api.deanswers them (the Potsdam example took 30 seconds there) but, per its policy, only for occasional human-scale use. For regular area queries use your own instance. - Your own instance: for scheduled or heavy use, run an Overpass server (a small VPS or a Docker image covering your region is enough) and paste its interpreter URL into
overpassEndpoint. - Robots.txt:
overpass.kumi.systemsandoverpass.private.coffeeserve none (404);overpass-api.dereturns 406 for it. No scraping of web pages is involved; the Actor speaks the Overpass API only. - Privacy: only mapped places and businesses with their public tags are returned. Private addresses are not points of interest and are not requested.
FAQ
How complete is the data? As complete as OpenStreetMap is for that area: excellent in most European and many North American cities, thinner in rural areas. Phone and website tags exist for a subset of places.
Can I search a whole country? Use areaName with areaAdminLevel: 2, a narrow category and a sensible maxPlaces; very large queries time out on public instances, so split by region or use your own server.
Can I get reviews or ratings? No. OpenStreetMap has no reviews; this Actor is the licence-safe alternative to Google Maps scraping for facts about places, not for opinions.