OpenStreetMap POI Finder — Cafés, Shops, Parks, 1k+ Categories
Under maintenancePricing
Pay per usage
OpenStreetMap POI Finder — Cafés, Shops, Parks, 1k+ Categories
Under maintenanceQuery OpenStreetMap's Overpass API for any bounding box + tag filter and return points of interest as structured JSON. Cafés, restaurants, shops, parks, schools, hospitals, 1,000+ other categories. No auth, no proxy, public Overpass API.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Mori
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
OpenStreetMap POI Finder
Query OpenStreetMap's Overpass API for any point, bounding box, or city — cafés, restaurants, shops, parks, schools, hospitals and 1,000+ other POI categories.
What it does
- Submits one or more Overpass-QL queries and returns one record per matching OSM element
- Each record carries geometry, the primary OSM category tag, structured address/contact fields, and the full raw tag map
- No proxy, no auth, no captcha, no JS rendering
- Handles element-type selection (
node,way,relation) per query
Input
| Field | Required | Description |
|---|---|---|
queries | yes | List of query objects (see schema below) |
maxResults | no | Cap on records emitted per query (default 1000) |
overpassEndpoint | no | Override Overpass base URL (default https://overpass-api.de/api/interpreter) |
Each queries[] entry:
{"label": "Cafés in downtown SF","bbox": "37.7749,-122.4194,37.7849,-122.4094","filters": ["amenity=cafe", "amenity=restaurant"],"elementType": "node"}
bbox:"south,west,north,east"decimal degrees (Overpass convention)filters: list of"key=value"strings (e.g.amenity=cafe,shop=bakery,tourism=museum)elementType:node(default),way, orrelationlabel: free-form, surfaces in every emitted record for traceability
Output
One record per matching element, plus a final _summary: true record with per-query counts:
{"queryLabel": "Cafés and restaurants in downtown San Francisco","bbox": { "south": 37.7749, "west": -122.4194, "north": 37.7849, "east": -122.4094 },"filters": ["amenity=cafe", "amenity=restaurant"],"osmType": "node","osmId": 1493456487,"lat": 37.7770688,"lon": -122.41733,"name": "Starbucks","category": "amenity","subcategory": "cafe","address": { "street": "Market Street", "housenumber": "1390", "city": "San Francisco", "postcode": "94102", "state": "CA" },"contact": { "phone": "+1-415-555-0100", "website": "https://...", "opening_hours": "Mo-Fr 07:00-19:00" },"tags": { "amenity": "cafe", "brand": "Starbucks", "cuisine": "coffee_shop", "wheelchair": "yes" },"scrapedAt": "2026-07-08T12:34:56.789Z"}
Examples
Coffee shops + bakeries in a 1km box around SF Union Square:
{"queries": [{"label": "Coffee and bakeries near Union Square","bbox": "37.7820,-122.4100,37.7920,-122.4000","filters": ["amenity=cafe", "shop=bakery"],"elementType": "node"}],"maxResults": 500}
All parks in a city-wide box:
{"queries": [{"label": "Parks in San Francisco","bbox": "37.7050,-122.5150,37.8350,-122.3550","filters": ["leisure=park"],"elementType": "way"}]}
Pricing
Free tier: 100 runs/month on Apify's free plan. Each run is a single Overpass POST.
Limitations
- Overpass rate-limits per IP. For high-volume runs, use
overpassEndpointto switch to a regional mirror (https://overpass.kumi.systems/api/interpreter,https://overpass.us/api/interpreter). wayandrelationqueries require Overpass to compute centroids — adds a few seconds per query but is handled by the public server.- Bounding-box queries only. Radius-around-point and city-name geocoding are out of scope for v0.1.
Changelog
- 0.1.0 — initial release. One-or-more query list, Overpass-QL generation, structured JSON output with address/contact extraction.