Points of Interest
List points of interest
Returns nearby points of interest (POIs) for an arbitrary latitude/longitude pair.
POST
/
api
/
points-of-interest
/
List points of interest near a coordinate
curl --request POST \
--url https://pandora.ask-wire.com/api/points-of-interest/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"latitude": 37.9797085,
"longitude": 23.75967373
}
'import requests
url = "https://pandora.ask-wire.com/api/points-of-interest/"
payload = {
"latitude": 37.9797085,
"longitude": 23.75967373
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({latitude: 37.9797085, longitude: 23.75967373})
};
fetch('https://pandora.ask-wire.com/api/points-of-interest/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://pandora.ask-wire.com/api/points-of-interest/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'latitude' => 37.9797085,
'longitude' => 23.75967373
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://pandora.ask-wire.com/api/points-of-interest/"
payload := strings.NewReader("{\n \"latitude\": 37.9797085,\n \"longitude\": 23.75967373\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://pandora.ask-wire.com/api/points-of-interest/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"latitude\": 37.9797085,\n \"longitude\": 23.75967373\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pandora.ask-wire.com/api/points-of-interest/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"latitude\": 37.9797085,\n \"longitude\": 23.75967373\n}"
response = http.request(request)
puts response.read_body[
{
"id": 61086,
"external_id": "w1155869110",
"name_en": "Park",
"name_gr": "Πάρκο",
"place_category": "Park",
"place_type": "park",
"latitude": 37.9797085,
"longitude": 23.75967373,
"distance": 0
},
{
"id": 65625,
"external_id": "n2330727927",
"name_en": "Sklavenitis",
"name_gr": "Σκλαβενίτης",
"place_category": "Supermarket",
"place_type": "supermarket",
"latitude": 37.9802376,
"longitude": 23.7587177,
"distance": 102.38
},
{
"id": 64921,
"external_id": "n5197500021",
"name_en": "Lidl",
"name_gr": "Lidl",
"place_category": "Supermarket",
"place_type": "supermarket",
"latitude": 37.9798503,
"longitude": 23.7608444,
"distance": 103.81
},
{
"id": 48106,
"external_id": "n4384306110",
"name_en": "REVOIL",
"name_gr": "REVOIL",
"place_category": "Energy",
"place_type": "fuel_station",
"latitude": 37.9810814,
"longitude": 23.7596605,
"distance": 152.66
},
{
"id": 26129,
"external_id": "11759",
"name_en": "EYDAP",
"name_gr": "ΕΥΔΑΠ",
"place_category": "Transportation",
"place_type": "bus_stop",
"latitude": 37.9787034,
"longitude": 23.7581591,
"distance": 173.53
},
{
"id": 64524,
"external_id": "n7181693185",
"name_en": "My Market",
"name_gr": "My Market",
"place_category": "Supermarket",
"place_type": "supermarket",
"latitude": 37.9796253,
"longitude": 23.7616994,
"distance": 177.79
},
{
"id": 45860,
"external_id": "w661525262",
"name_en": "AVIN",
"name_gr": "AVIN",
"place_category": "Energy",
"place_type": "fuel_station",
"latitude": 37.98126315,
"longitude": 23.7587619,
"distance": 190.45
},
{
"id": 50418,
"external_id": "n3439694902",
"name_en": "ETEKA",
"name_gr": "ΕΤΕΚΑ",
"place_category": "Energy",
"place_type": "fuel_station",
"latitude": 37.9806927,
"longitude": 23.7576414,
"distance": 209.06
},
{
"id": 24826,
"external_id": "n6193520910",
"name_en": "National Bank of Greece",
"name_gr": "Εθνική Τράπεζα της Ελλάδος",
"place_category": "Bank",
"place_type": "bank",
"latitude": 37.9811669,
"longitude": 23.7578501,
"distance": 227.7
},
{
"id": 51106,
"external_id": "n2830767495",
"name_en": "Prolipsis",
"name_gr": "Πρόληψις",
"place_category": "Medical",
"place_type": "clinic",
"latitude": 37.9805322,
"longitude": 23.7569626,
"distance": 254.66
},
{
"id": 74634,
"external_id": "1014140",
"name_en": "6th Day Epal Athinon",
"name_gr": "6ο Ημερήσιο Επα. Λ. Αθηνών",
"place_category": "Education",
"place_type": "high_school",
"latitude": 37.981939,
"longitude": 23.758828,
"distance": 258.86
},
{
"id": 51145,
"external_id": "n4394190110",
"name_en": "New Medicine",
"name_gr": "Νέα Ιατρική",
"place_category": "Medical",
"place_type": "clinic",
"latitude": 37.9799343,
"longitude": 23.7627978,
"distance": 274.96
},
{
"id": 74898,
"external_id": "1000343",
"name_en": "7th Evening Epa.L Athinon",
"name_gr": "7ο Εσπερινό Επα. Λ Αθηνών",
"place_category": "Education",
"place_type": "high_school",
"latitude": 37.982125,
"longitude": 23.758742,
"distance": 280.84
},
{
"id": 59921,
"external_id": "w790360242",
"name_en": "Park",
"name_gr": "Πάρκο",
"place_category": "Park",
"place_type": "park",
"latitude": 37.9806993,
"longitude": 23.75644097,
"distance": 304.01
},
{
"id": 27341,
"external_id": "60924",
"name_en": "1st Ilision",
"name_gr": "1η Ιλισίων",
"place_category": "Transportation",
"place_type": "bus_stop",
"latitude": 37.9780679,
"longitude": 23.7565904,
"distance": 326.06
},
{
"id": 50677,
"external_id": "n4464612064",
"name_en": "General Hospital \"Alexandra\" (Outpatient Clinics)",
"name_gr": "Γεν. Νοσ. \"Αλεξάνδρα\" (Εξωτερικά Ιατρεία)",
"place_category": "Medical",
"place_type": "hospital",
"latitude": 37.9810314,
"longitude": 23.7562692,
"distance": 332.68
}
]{
"error": 123,
"message": "<string>"
}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 usesPOST 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:{ "latitude": 37.9797085, "longitude": 23.75967373 }
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
latitude | number | Yes | -90 ≤ value ≤ 90 | Latitude to search around. |
longitude | number | Yes | -180 ≤ value ≤ 180 | Longitude to search around. |
40.7120 and 40.712 are the same value).
Selection logic
Each POI category is searched within its own radius around the queried point:| Category | Search radius |
|---|---|
| Airport | 10 000 m |
| Metro / Future metro / Tram / Train | 2 000 m |
| All other place types | 1 000 m |
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).
| Field | Type | Description |
|---|---|---|
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 | string | POI type (see values below). |
latitude | number | null | POI latitude. |
longitude | number | null | POI longitude. |
distance | number | null | Distance from the queried point, in metres, rounded to 2 decimals. |
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
| Status | When |
|---|---|
400 Bad Request | Missing latitude/longitude, out-of-range value, or non-numeric value. |
401 Unauthorized | Missing or invalid JWT. |
Example request
curl -X POST "https://pandora.ask-wire.com/api/points-of-interest/" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "latitude": 37.9797085, "longitude": 23.75967373}'
[
{
"id": 61086,
"external_id": "w1155869110",
"name_en": "Park",
"name_gr": "Πάρκο",
"place_category": "Park",
"place_type": "park",
"latitude": 37.9797085,
"longitude": 23.75967373,
"distance": 0.0
},
{
"id": 65625,
"external_id": "n2330727927",
"name_en": "Sklavenitis",
"name_gr": "Σκλαβενίτης",
"place_category": "Supermarket",
"place_type": "supermarket",
"latitude": 37.9802376,
"longitude": 23.7587177,
"distance": 102.38
},
{
"id": 64921,
"external_id": "n5197500021",
"name_en": "Lidl",
"name_gr": "Lidl",
"place_category": "Supermarket",
"place_type": "supermarket",
"latitude": 37.9798503,
"longitude": 23.7608444,
"distance": 103.81
},
{
"id": 48106,
"external_id": "n4384306110",
"name_en": "REVOIL",
"name_gr": "REVOIL",
"place_category": "Energy",
"place_type": "fuel_station",
"latitude": 37.9810814,
"longitude": 23.7596605,
"distance": 152.66
},
{
"id": 26129,
"external_id": "11759",
"name_en": "EYDAP",
"name_gr": "ΕΥΔΑΠ",
"place_category": "Transportation",
"place_type": "bus_stop",
"latitude": 37.9787034,
"longitude": 23.7581591,
"distance": 173.53
},
{
"id": 64524,
"external_id": "n7181693185",
"name_en": "My Market",
"name_gr": "My Market",
"place_category": "Supermarket",
"place_type": "supermarket",
"latitude": 37.9796253,
"longitude": 23.7616994,
"distance": 177.79
},
{
"id": 45860,
"external_id": "w661525262",
"name_en": "AVIN",
"name_gr": "AVIN",
"place_category": "Energy",
"place_type": "fuel_station",
"latitude": 37.98126315,
"longitude": 23.7587619,
"distance": 190.45
},
{
"id": 50418,
"external_id": "n3439694902",
"name_en": "ETEKA",
"name_gr": "ΕΤΕΚΑ",
"place_category": "Energy",
"place_type": "fuel_station",
"latitude": 37.9806927,
"longitude": 23.7576414,
"distance": 209.06
},
{
"id": 24826,
"external_id": "n6193520910",
"name_en": "National Bank of Greece",
"name_gr": "Εθνική Τράπεζα της Ελλάδος",
"place_category": "Bank",
"place_type": "bank",
"latitude": 37.9811669,
"longitude": 23.7578501,
"distance": 227.7
},
{
"id": 51106,
"external_id": "n2830767495",
"name_en": "Prolipsis",
"name_gr": "Πρόληψις",
"place_category": "Medical",
"place_type": "clinic",
"latitude": 37.9805322,
"longitude": 23.7569626,
"distance": 254.66
},
{
"id": 74634,
"external_id": "1014140",
"name_en": "6th Day Epal Athinon",
"name_gr": "6ο Ημερήσιο Επα. Λ. Αθηνών",
"place_category": "Education",
"place_type": "high_school",
"latitude": 37.981939,
"longitude": 23.758828,
"distance": 258.86
},
{
"id": 51145,
"external_id": "n4394190110",
"name_en": "New Medicine",
"name_gr": "Νέα Ιατρική",
"place_category": "Medical",
"place_type": "clinic",
"latitude": 37.9799343,
"longitude": 23.7627978,
"distance": 274.96
},
{
"id": 74898,
"external_id": "1000343",
"name_en": "7th Evening Epa.L Athinon",
"name_gr": "7ο Εσπερινό Επα. Λ Αθηνών",
"place_category": "Education",
"place_type": "high_school",
"latitude": 37.982125,
"longitude": 23.758742,
"distance": 280.84
},
{
"id": 59921,
"external_id": "w790360242",
"name_en": "Park",
"name_gr": "Πάρκο",
"place_category": "Park",
"place_type": "park",
"latitude": 37.9806993,
"longitude": 23.75644097,
"distance": 304.01
},
{
"id": 27341,
"external_id": "60924",
"name_en": "1st Ilision",
"name_gr": "1η Ιλισίων",
"place_category": "Transportation",
"place_type": "bus_stop",
"latitude": 37.9780679,
"longitude": 23.7565904,
"distance": 326.06
},
{
"id": 50677,
"external_id": "n4464612064",
"name_en": "General Hospital \"Alexandra\" (Outpatient Clinics)",
"name_gr": "Γεν. Νοσ. \"Αλεξάνδρα\" (Εξωτερικά Ιατρεία)",
"place_category": "Medical",
"place_type": "hospital",
"latitude": 37.9810314,
"longitude": 23.7562692,
"distance": 332.68
}
]
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Response
Points of interest near the queried coordinate, ordered nearest-first. An empty array means nothing is within range — not an error.
POI identifier.
Identifier from the source dataset.
English name.
Greek name.
Source-provided category label.
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 POI latitude.
POI longitude.
Distance from the queried point, in metres, rounded to 2 decimals.
Was this page helpful?
Previous
List regional unitsReturns a paginated list of regional units (level 4 in the geographic hierarchy).
Next
⌘I
List points of interest near a coordinate
curl --request POST \
--url https://pandora.ask-wire.com/api/points-of-interest/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"latitude": 37.9797085,
"longitude": 23.75967373
}
'import requests
url = "https://pandora.ask-wire.com/api/points-of-interest/"
payload = {
"latitude": 37.9797085,
"longitude": 23.75967373
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({latitude: 37.9797085, longitude: 23.75967373})
};
fetch('https://pandora.ask-wire.com/api/points-of-interest/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://pandora.ask-wire.com/api/points-of-interest/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'latitude' => 37.9797085,
'longitude' => 23.75967373
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://pandora.ask-wire.com/api/points-of-interest/"
payload := strings.NewReader("{\n \"latitude\": 37.9797085,\n \"longitude\": 23.75967373\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://pandora.ask-wire.com/api/points-of-interest/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"latitude\": 37.9797085,\n \"longitude\": 23.75967373\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://pandora.ask-wire.com/api/points-of-interest/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"latitude\": 37.9797085,\n \"longitude\": 23.75967373\n}"
response = http.request(request)
puts response.read_body[
{
"id": 61086,
"external_id": "w1155869110",
"name_en": "Park",
"name_gr": "Πάρκο",
"place_category": "Park",
"place_type": "park",
"latitude": 37.9797085,
"longitude": 23.75967373,
"distance": 0
},
{
"id": 65625,
"external_id": "n2330727927",
"name_en": "Sklavenitis",
"name_gr": "Σκλαβενίτης",
"place_category": "Supermarket",
"place_type": "supermarket",
"latitude": 37.9802376,
"longitude": 23.7587177,
"distance": 102.38
},
{
"id": 64921,
"external_id": "n5197500021",
"name_en": "Lidl",
"name_gr": "Lidl",
"place_category": "Supermarket",
"place_type": "supermarket",
"latitude": 37.9798503,
"longitude": 23.7608444,
"distance": 103.81
},
{
"id": 48106,
"external_id": "n4384306110",
"name_en": "REVOIL",
"name_gr": "REVOIL",
"place_category": "Energy",
"place_type": "fuel_station",
"latitude": 37.9810814,
"longitude": 23.7596605,
"distance": 152.66
},
{
"id": 26129,
"external_id": "11759",
"name_en": "EYDAP",
"name_gr": "ΕΥΔΑΠ",
"place_category": "Transportation",
"place_type": "bus_stop",
"latitude": 37.9787034,
"longitude": 23.7581591,
"distance": 173.53
},
{
"id": 64524,
"external_id": "n7181693185",
"name_en": "My Market",
"name_gr": "My Market",
"place_category": "Supermarket",
"place_type": "supermarket",
"latitude": 37.9796253,
"longitude": 23.7616994,
"distance": 177.79
},
{
"id": 45860,
"external_id": "w661525262",
"name_en": "AVIN",
"name_gr": "AVIN",
"place_category": "Energy",
"place_type": "fuel_station",
"latitude": 37.98126315,
"longitude": 23.7587619,
"distance": 190.45
},
{
"id": 50418,
"external_id": "n3439694902",
"name_en": "ETEKA",
"name_gr": "ΕΤΕΚΑ",
"place_category": "Energy",
"place_type": "fuel_station",
"latitude": 37.9806927,
"longitude": 23.7576414,
"distance": 209.06
},
{
"id": 24826,
"external_id": "n6193520910",
"name_en": "National Bank of Greece",
"name_gr": "Εθνική Τράπεζα της Ελλάδος",
"place_category": "Bank",
"place_type": "bank",
"latitude": 37.9811669,
"longitude": 23.7578501,
"distance": 227.7
},
{
"id": 51106,
"external_id": "n2830767495",
"name_en": "Prolipsis",
"name_gr": "Πρόληψις",
"place_category": "Medical",
"place_type": "clinic",
"latitude": 37.9805322,
"longitude": 23.7569626,
"distance": 254.66
},
{
"id": 74634,
"external_id": "1014140",
"name_en": "6th Day Epal Athinon",
"name_gr": "6ο Ημερήσιο Επα. Λ. Αθηνών",
"place_category": "Education",
"place_type": "high_school",
"latitude": 37.981939,
"longitude": 23.758828,
"distance": 258.86
},
{
"id": 51145,
"external_id": "n4394190110",
"name_en": "New Medicine",
"name_gr": "Νέα Ιατρική",
"place_category": "Medical",
"place_type": "clinic",
"latitude": 37.9799343,
"longitude": 23.7627978,
"distance": 274.96
},
{
"id": 74898,
"external_id": "1000343",
"name_en": "7th Evening Epa.L Athinon",
"name_gr": "7ο Εσπερινό Επα. Λ Αθηνών",
"place_category": "Education",
"place_type": "high_school",
"latitude": 37.982125,
"longitude": 23.758742,
"distance": 280.84
},
{
"id": 59921,
"external_id": "w790360242",
"name_en": "Park",
"name_gr": "Πάρκο",
"place_category": "Park",
"place_type": "park",
"latitude": 37.9806993,
"longitude": 23.75644097,
"distance": 304.01
},
{
"id": 27341,
"external_id": "60924",
"name_en": "1st Ilision",
"name_gr": "1η Ιλισίων",
"place_category": "Transportation",
"place_type": "bus_stop",
"latitude": 37.9780679,
"longitude": 23.7565904,
"distance": 326.06
},
{
"id": 50677,
"external_id": "n4464612064",
"name_en": "General Hospital \"Alexandra\" (Outpatient Clinics)",
"name_gr": "Γεν. Νοσ. \"Αλεξάνδρα\" (Εξωτερικά Ιατρεία)",
"place_category": "Medical",
"place_type": "hospital",
"latitude": 37.9810314,
"longitude": 23.7562692,
"distance": 332.68
}
]{
"error": 123,
"message": "<string>"
}