OSM POI Extractor avatar

OSM POI Extractor

Pricing

$3.00 / 1,000 places

Go to Apify Store
OSM POI Extractor

OSM POI Extractor

Extract local businesses and places from OpenStreetMap by place name and category — with phone, email, website, address and coordinates. Open data, no login, no proxies.

Pricing

$3.00 / 1,000 places

Rating

0.0

(0)

Developer

Tom Awake

Tom Awake

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Extract local businesses and places from OpenStreetMap by place name and category — with phone numbers, emails, websites, opening hours, addresses and coordinates.

No login. No cookies. No proxies. No API keys. Nothing to break.

Type Bordeaux, France and restaurants. That is the whole configuration.

Scraping Google Maps breaks Google's terms of service. This Actor reads OpenStreetMap, an open database, through the public Overpass and Nominatim APIs — access that is offered, documented and free. There is no anti-bot system to defeat, no account to get suspended, and no proxy bill.

The data is licensed ODbL 1.0: you may use it commercially, including in a lead list or a product, provided you attribute OpenStreetMap. Every row carries an attribution field so the requirement travels with the data. If you redistribute a derived database, ODbL's share-alike terms apply to that database — worth knowing before you resell the raw export.

What makes this one different

It takes a place name, not a bounding box. Overpass needs (44.81,-0.63,44.91,-0.53) and amenity=restaurant. That is why most OpenStreetMap tools go unused. Here you type a town and pick from 82 categories.

It queries the real administrative area, not a rectangle. Asking for "Gironde" by bounding box means querying the Atlantic Ocean: measured, 64 near-empty requests and over ten minutes. This Actor resolves the département's actual boundary and returns 488 pharmacies in about four seconds.

It returns the most complete records first. Overpass emits points before buildings, so a capped run would hand you an arbitrary, biased slice. Rows are ranked by how contactable they are before the limit applies. Measured on Bordeaux restaurants, asking for 120 out of 835:

Naive orderThis Actor
With a phone number47 %100 %
With a website47 %99 %
With a street address97 %

It includes places mapped as buildings. Many POIs are areas, not points. Querying nodes only silently loses them — 37 of 835 Bordeaux restaurants.

Output

One row per place, deduplicated.

FieldExample
nameLa Tupiña
categoryrestaurants
phone+33 5 56915637
emailcontact@latupina.com
websitehttp://www.latupina.com/
address6 Rue Porte de la Monnaie
street, housenumber, postcode, city, countrysplit for mail merge
latitude, longitude44.8335, -0.5658
openingHoursMo-Su, PH 11:00-23:00
cuisine, brand, operator, wheelchairwhen mapped
siret, sirenFrench business identifiers, when mapped
osmType, osmId, osmUrlprovenance, to verify any row
attribution© OpenStreetMap contributors, ODbL 1.0

French places often carry ref:FR:SIRET and ref:FR:SIREN, which lets you join the export straight to the French company register. Measured on Bordeaux restaurants: 84 of the first 120 rows carried a SIRET.

Input

{
"location": "Bordeaux, France",
"category": "restaurants",
"maxItems": 500,
"requirePhone": false
}
FieldDefaultNotes
locationBordeaux, FranceTown, city, district, département, region or country
categoryrestaurants82 presets — see below
maxItems500Up to 50,000
requirePhonefalseKeep only places with a phone number
requireWebsitefalseKeep only places with a website
boundingBox[south, west, north, east], overrides location
center + radiusMetersCircle around a point
customTags["amenity=restaurant"] for tags with no preset

Categories

Food and drink — restaurants, fast-food, cafes, bars, nightclubs, bakeries, caterers

Accommodation — hotels, guest-houses, campsites

Health — pharmacies, doctors, dentists, hospitals, clinics, veterinarians, opticians, physiotherapists

Retail — supermarkets, convenience-stores, clothing-stores, shoe-stores, furniture-stores, hardware-stores, florists, bookshops, jewellers, electronics-stores, bicycle-shops, pet-shops, butchers, greengrocers, wine-shops, tobacco-shops

Personal services — hairdressers, beauty-salons, tattoo-parlours, dry-cleaners, gyms, spas

Automotive — car-dealers, car-repair, car-rental, petrol-stations, car-wash, driving-schools

Professional services — real-estate-agents, lawyers, accountants, insurance-offices, banks, architects, travel-agencies, employment-agencies, advertising-agencies, it-companies, coworking-spaces

Trades — plumbers, electricians, carpenters, painters, roofers, locksmiths, builders

Education — schools, kindergartens, universities, language-schools

Leisure — museums, attractions, theatres, cinemas, sports-centres, swimming-pools, golf-courses, playgrounds

Logistics and infrastructure — warehouses, post-offices, parcel-lockers, ev-charging, parking, atms

Anything else: use customTags with a tag from taginfo.openstreetmap.org.

Use cases

  • Local lead lists — pick a category and a city, tick "only places with a phone number", export a call list.
  • Market and site analysis — count competitors per town, map their density, compare coverage between areas.
  • Store locators and directories — seed a directory with real coordinates and opening hours.
  • Enriching a CRM — match on name and postcode, fill in missing phone numbers and websites.
  • Field logistics — route planning from real coordinates.

Coverage, honestly

OpenStreetMap is volunteer-mapped, so completeness varies by country and by category. Measured on 966 Bordeaux restaurants: 98.8 % had a name, 74.3 % a street address, 48.9 % opening hours, 41.5 % a website, 41.1 % a phone number, 12.2 % an email address.

Dense European cities are mapped well. Rural areas and some categories are thinner. This Actor reports what is in the database — it does not invent missing fields, and it will not pretend a village has ten dentists.

Behaviour and limits

  • Several Overpass mirrors are used in turn; a loaded or failing mirror is skipped automatically.
  • Very large areas with no administrative boundary fall back to a tiled scan, deduplicated across tiles.
  • Places with no name are skipped: a nameless point is not a business.
  • Nominatim's usage policy is respected — one geocoding request per run.