OpenStreetMap Places & Business Finder avatar

OpenStreetMap Places & Business Finder

Pricing

$0.30 / 1,000 places

Go to Apify Store
OpenStreetMap Places & Business Finder

OpenStreetMap Places & Business Finder

OpenStreetMap places and business finder using Overpass. Export mapped names, categories, coordinates, addresses and contact fields as JSON where supplied, with attribution.

Pricing

$0.30 / 1,000 places

Rating

0.0

(0)

Developer

Grit

Grit

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

8 days ago

Last modified

Share

OpenStreetMap places scraper returns mapped businesses and other places from the Overpass API. OpenStreetMap places API results include names, categories, coordinates, addresses, contact details, and attribution when the source provides them.

Input example

{
"bbox": "52.515,13.385,52.522,13.4",
"tags": [
"amenity=restaurant"
],
"maxItems": 15
}

The input keys and allowed values follow .actor/input_schema.json.

Output fields

FieldTypeExample or excerpt from sample
attributionstring"© OpenStreetMap contributors"
attribution_urlstring"https://www.openstreetmap.org/copyright"
licensestring"ODbL-1.0"
license_urlstring"https://opendatacommons.org/licenses/odbl/1-0/"
sourcestring"OpenStreetMap / Overpass API"
statusstring"ok"
namestring"Bocca di Bacco"
categorystring"amenity=restaurant"
category_keystring"amenity"
category_valuestring"restaurant"
addressstring or null"167;168, Friedrichstraße, 10117, Berlin, DE"
latnumber52.5151119
lonnumber13.3889084
coordinate_sourcestring"node"
osm_typestring"node"
osm_idinteger86001794
osm_urlstring"https://www.openstreetmap.org/node/86001794"
opening_hoursstring or null"Mo-Sa 12:00-24:00"
query_citystring or nullnull
retrieved_atstring"2026-10-05T13:47:20.558187+00:00"
errorsarray[]
house_numberstring or null"167;168"
streetstring or null"Friedrichstraße"
placestring or nullnull
postcodestring or null"10117"
citystring or null"Berlin"
suburbstring or null"Mitte"
districtstring or nullnull
statestring or nullnull
countrystring or null"DE"
phonestring or null"+49 30 20672828"
websitestring or null"http://www.boccadibacco.de/"
emailstring or null"info@boccadibacco.de"

Output example

Trimmed from sample_output.json; omitted fields remain available in the dataset.

{
"attribution": "© OpenStreetMap contributors",
"attribution_url": "https://www.openstreetmap.org/copyright",
"license": "ODbL-1.0",
"license_url": "https://opendatacommons.org/licenses/odbl/1-0/",
"source": "OpenStreetMap / Overpass API",
"status": "ok",
"name": "Bocca di Bacco"
}

Attribution and license

Data: © OpenStreetMap contributors, available under the Open Database License 1.0. Each result and diagnostic row carries attribution and license links. Preserve these fields and display contributor credit when using or sharing results. Derived databases may have share-alike obligations; consult the OpenStreetMap copyright and license guidance before redistributing data. Actor service charges do not change the data license.

Limits and responsible use

  • maxItems defaults to 100 and accepts 1–10,000. It caps all dataset rows, including errors, and is sent as an Overpass output limit. Reaching the cap does not prove a complete area export; there is no pagination or relevance ranking.
  • Bounding-box order is south,west,north,east. Coordinates must be finite and valid; each axis has a maximum span of 2 degrees. Antimeridian crossing is unsupported. Broad area IDs or expensive filters can still exceed server resources even with a small output cap.
  • Concurrency is fixed at 1. The next request waits at least minDelaySeconds (default 10, minimum 5) after the previous request completes. One bbox/area query is sent; city lookup adds one preceding query. Up to three attempts use exponential backoff, at least 15 seconds and Retry-After. A cooldown exceeding 120 seconds ends the run for a later retry.
  • The run uses one endpoint, without redirect following, proxy rotation, failover to public mirrors or tiling. The default is https://overpass-api.de/api/interpreter; overpassUrl supports your supplied HTTP/HTTPS instance and rejects embedded credentials, query parameters and fragments.
  • The default public endpoint is for occasional small runs. For recurring, production or many-user use, supply and operate your own Overpass endpoint. Per-run limits do not coordinate traffic across separate runs; schedule those conservatively. Follow the Overpass usage policy, including its guidance against using public instances as an application's sustained backend. Do not assemble planet-scale exports from boxes.
  • A response download is capped at 32 MiB. Server timeout is 10–120 seconds (default 60), with a 128 MiB declared server memory bound. These bound an individual query, not total source coverage. A runtime-error remark or invalid response is treated as incomplete, not as successful places.
  • Malformed objects produce uncharged error rows; other valid objects continue. A failed source query produces an attributed error row and fails the run so automation can distinguish failure from a genuinely empty result.
  • OSM coverage varies. Missing phone/email/opening hours remain missing; POIs can be outdated, unnamed or repeated as different OSM objects. A matched amenity tag does not necessarily represent a business.

FAQ

What are the output limits? maxItems caps places and diagnostics. Coverage depends on mapped features and Overpass availability.

Do I need a proxy or login? Public Overpass requests need no login or proxy. Use an endpoint you are permitted to query.

How is this priced? Proposed pay per event: $0.0003 for each unique place row. Diagnostics and duplicates are uncharged. These are proposals in PRICING.md; the owner must configure Store billing.

How are rate limits handled? The code uses one concurrent Overpass request and minDelaySeconds between attempts; throttled responses use backoff and Retry-After.

How fresh is the data? OpenStreetMap data is community maintained. retrieved_at marks collection time; names, contact details, and opening hours may be missing or outdated. Retain the OSM attribution and follow the ODbL terms when reusing data.

Use with AI agents / MCP

After the actor is published, connect your agent to the Apify MCP server with an Apify API token. Use call-actor with the published actor identifier and the JSON input shown above. Read the returned dataset with get-dataset-items; the run response itself contains status and storage IDs, not the result rows. Alternatively, use the Apify API to start a run and read its default dataset. Keep the actor input bounded with maxItems, and inspect source links and any error fields before using results in an answer.