Skip to main content
POST
List points of interest near a coordinate

Overview

This endpoint returns the neighbourhood points of interest for any coordinate pair, using the exact same selection logic as the Marketability Report — so an ad-hoc lookup and a report’s neighbourhood section always return the same POIs for the same coordinates. Although the operation is a read with no side effects, the coordinates are passed in a JSON request body, which is why the endpoint uses POST rather than GET.
The route requires the trailing slash (/api/points-of-interest/). A redirected slashless POST can drop its request body in some clients.

Request body

Send a JSON object with both coordinates:
Coordinates may be sent as JSON numbers, integers, or numeric strings — all are coerced to floats. Trailing zeros are irrelevant (40.7120 and 40.712 are the same value).

Selection logic

Each POI category is searched within its own radius around the queried point: Results are ordered nearest-first, capped at 3 per place type and 16 total. These limits are fixed and cannot be tuned per request.

Response fields

The response is a JSON array of POI objects (an empty array [] when nothing is within range — this is not an error condition).

place_type values

airport, bank, bus_stop, bus_station, metro_station, future_metro_station, tram_station, elementary_school, high_school, primary_school, kindergarden, hospital, clinic, park, playground, fuel_station, sports, church, police, post_office, shopping_mall, train_station, university, city_hall, supermarket

Errors


Example request

Example response:

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
latitude
number
required

Latitude to search around.

Required range: -90 <= x <= 90
Example:

40.712776

longitude
number
required

Longitude to search around.

Required range: -180 <= x <= 180
Example:

-74.005974

Response

Points of interest near the queried coordinate, ordered nearest-first. An empty array means nothing is within range — not an error.

id
integer

POI identifier.

external_id
string | null

Identifier from the source dataset.

name_en
string | null

English name.

name_gr
string | null

Greek name.

place_category
string | null

Source-provided category label.

place_type
enum<string>

POI type.

Available options:
airport,
bank,
bus_stop,
bus_station,
metro_station,
future_metro_station,
tram_station,
elementary_school,
high_school,
primary_school,
kindergarden,
hospital,
clinic,
park,
playground,
fuel_station,
sports,
church,
police,
post_office,
shopping_mall,
train_station,
university,
city_hall,
supermarket
latitude
number | null

POI latitude.

longitude
number | null

POI longitude.

distance
number | null

Distance from the queried point, in metres, rounded to 2 decimals.