Catalog/maps-osm-poi

Maps

Nearby POIs via OpenStreetMap Overpass API

Find nearby points of interest by category (cafe, restaurant, hotel, hospital, pharmacy, atm, bank, fuel, parking, supermarket, school, park, museum, ...) within a radius — it builds the correct Overpass QL (which agents botch), runs it, and normalizes results into a distance-sorted list with name, coordinates, address, opening hours, phone, and website. Answers 'cafes near me', 'closest pharmacy to these coordinates', 'hotels within 1km', 'find ATMs nearby'.

Price$0.01per request
MethodPOST
Route/v1/maps/osm-poi
StatusLive
MIME typeapplication/json
Rate limit60/minute
Cache3600s public
mapsosm-poioverpasspoiplacesnearbyopenstreetmapamenity
API URLhttps://x402.hexl.dev/v1/maps/osm-poi
Integration docs
Example request
{
  "latitude": 48.8584,
  "longitude": 2.2945,
  "category": "cafe",
  "radiusMeters": 500,
  "limit": 5
}
Example response
{
  "center": {
    "latitude": 48.8584,
    "longitude": 2.2945
  },
  "category": "cafe",
  "count": 1,
  "pois": [
    {
      "id": "node/7008116686",
      "name": "Café Ribe",
      "category": "cafe",
      "latitude": 48.8564807,
      "longitude": 2.2928406,
      "distanceMeters": 257,
      "address": null,
      "city": null,
      "openingHours": null,
      "phone": null,
      "website": null
    }
  ],
  "radiusMeters": 500,
  "query": "[out:json][timeout:25];(node[\"amenity\"=\"cafe\"](around:500,48.8584,2.2945);way[\"amenity\"=\"cafe\"](around:500,48.8584,2.2945);relation[\"amenity\"=\"cafe\"](around:500,48.8584,2.2945););out center tags;"
}
Input schema
{
  "type": "object",
  "required": [
    "latitude",
    "longitude",
    "category"
  ],
  "properties": {
    "latitude": {
      "type": "number",
      "examples": [
        48.8584
      ]
    },
    "longitude": {
      "type": "number",
      "examples": [
        2.2945
      ]
    },
    "category": {
      "type": "string",
      "examples": [
        "cafe",
        "restaurant",
        "pharmacy"
      ]
    },
    "radiusMeters": {
      "type": "number",
      "examples": [
        1000
      ]
    },
    "limit": {
      "type": "number",
      "examples": [
        20
      ]
    }
  }
}
Output schema
{
  "type": "object",
  "additionalProperties": true
}