Points of Interest
Search POIs
Find points of interest near a location or coordinates
Endpoint
Description
Search for points of interest (restaurants, shops, fuel stations, etc.) near a location. Supports three search modes: by location ID, by coordinates with radius, or by geographic region (country, state, city).
Authentication
No authentication required for server-side requests — this is a public read endpoint. (A key is only needed for cross-origin calls made from a browser on another domain; see Authentication.)
Query Parameters
Use one of the three search modes:
Mode 1: By Location ID
| Parameter | Type | Required | Description |
|---|---|---|---|
location_id | number | Yes | Location ID to find nearby POIs |
category | string | No | Filter by POI category |
minRating | number | No | Minimum rating filter |
limit | number | No | Max results (default: 50, max: 200) |
Mode 2: By Coordinates
| Parameter | Type | Required | Description |
|---|---|---|---|
lat | number | Yes | Latitude |
lon | number | Yes | Longitude |
radius | number | No | Search radius in km (default: 1, max: 10) |
category | string | No | Filter by POI category |
minRating | number | No | Minimum rating filter |
limit | number | No | Max results (default: 50, max: 200) |
Mode 3: By Region
| Parameter | Type | Required | Description |
|---|---|---|---|
location_type | string | Yes | One of: country, state, city, municipality |
location_value | string | Yes | Region name or country code |
country_code | string | No | ISO country code (narrows state/city/municipality results) |
category | string | No | Filter by POI category |
q | string | No | Filter by name (matches name or name_en) |
minRating | number | No | Minimum rating filter |
limit | number | No | Max results (default: 50, max: 200) |
offset | number | No | Pagination offset (default: 0) |
Example Requests
By Location
By Coordinates
By Country
Example Response (Location Mode)
Example Response (Region Mode)
Ratings are on a 0–10 scale (e.g. 9.8), not 0–5. The total field is the size of the returned page, not the global count.
Response Fields
| Field | Type | Description |
|---|---|---|
pois | array | List of POIs |
total | number | Number of POIs in this response (page size, not a global count) |
hasMore | boolean | Whether more results exist (region mode with pagination) |
location_id | number | Echoed location ID (location mode) |
radius_km | number | Echoed search radius (coordinate mode) |
location_type | string | Echoed location type (region mode) |
location_value | string | Echoed location value (region mode) |
POI Fields
| Field | Type | Description |
|---|---|---|
id | string | POI ID (UUID) |
poi_id | string | Same as id (convenience alias) |
osm_id | number|null | OpenStreetMap ID |
name | string | POI name (local language) |
name_en | string|null | English name |
category | string | POI category |
subcategory | string|null | More specific category |
lat | number | Latitude |
lon | number | Longitude |
address | string|null | Street address |
city | string|null | City |
country | string|null | Country |
phone | string|null | Phone number |
website | string|null | Website URL |
opening_hours | string|null | Opening hours (OSM format) |
is_seasonal | boolean|null | Whether the business is seasonal |
description | string|null | Description (markdown) |
cuisine | string|null | Cuisine type (restaurants only) |
image_url | string|null | Image URL |
image_attribution | string|null | Image attribution text |
rating | number|null | Rating on a 0–10 scale |
is_active | boolean | Active flag (present in region mode only) |
nearest_location_name | string|null | Name of the nearest charter location |
location_name | string|null | Same nearest-location name (convenience alias) |
distance_meters | number|null | Distance from the reference location |
walking_time_minutes | number|null | Estimated walking time (location mode only) |
Error Responses
400 Bad Request
An invalid category value also returns 400 (Invalid category: <value>).