Эта страница — краткая рабочая шпаргалка по основным методам сервиса: поиск адресов, reverse geocoding, обогащение координат и адресов, маршрут, batch-запросы и несколько legacy-методов для совместимости.
Для серверных интеграций удобнее всего использовать X-API-Key.
Ключи создаются на странице Access & tokens.
Для запросов от администратора подходит JWT в заголовке Authorization: Bearer ...
или браузерная cookie-сессия.
Для большинства автоматизаций лучше брать API key. Для работы в браузере и админке обычно достаточно текущей сессии.
/api/v1/search
/api/v1/reverse
/api/v1/polygon/search
/api/v1/geo/by-address
/api/v1/geo/by-coordinates
/api/v1/route
/api/v1/routes/preview
/api/v1/geo/batch
Эти методы оставлены для старых интеграций. Новые клиенты лучше строить на /api/v1/*.
/get/cell
/get_sector
/get_sectors
/get_full_route
/get/all-data
Примеры используют requests и заголовок X-API-Key.
import os
import requests
BASE_URL = os.getenv("GEOSVC_URL", "http://localhost:8081")
API_KEY = os.environ["GEOSVC_API_KEY"]
headers = {"X-API-Key": API_KEY}
params = {
"q": "Крещатик 1",
"city": "Киев",
"language": "auto",
"limit": 5,
}
response = requests.get(
f"{BASE_URL}/api/v1/search",
params=params,
headers=headers,
timeout=30,
)
response.raise_for_status()
print(response.json())
import os
import requests
BASE_URL = os.getenv("GEOSVC_URL", "http://localhost:8081")
API_KEY = os.environ["GEOSVC_API_KEY"]
response = requests.get(
f"{BASE_URL}/api/v1/reverse",
params={"lat": 50.4501, "lng": 30.5234, "limit": 3},
headers={"X-API-Key": API_KEY},
timeout=30,
)
response.raise_for_status()
for item in response.json()["results"]:
print(item["name"], item.get("distance_m"))
import os
import requests
BASE_URL = os.getenv("GEOSVC_URL", "http://localhost:8081")
API_KEY = os.environ["GEOSVC_API_KEY"]
payload = {
"points": [
{"name": "A", "lat": 50.4501, "lng": 30.5234},
{"name": "B", "lat": 50.4547, "lng": 30.5310},
]
}
response = requests.post(
f"{BASE_URL}/api/v1/geo/batch",
json=payload,
headers={"X-API-Key": API_KEY},
timeout=30,
)
response.raise_for_status()
print(response.json())
Подходит для Node.js и браузерных интеграций. Заголовок тот же: X-API-Key.
const baseUrl = process.env.GEOSVC_URL ?? "http://localhost:8081";
const apiKey = process.env.GEOSVC_API_KEY;
const params = new URLSearchParams({
q: "Крещатик 1",
city: "Киев",
language: "auto",
limit: "5",
});
const response = await fetch(`${baseUrl}/api/v1/search?${params}`, {
headers: {
"X-API-Key": apiKey,
},
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
const baseUrl = process.env.GEOSVC_URL ?? "http://localhost:8081";
const apiKey = process.env.GEOSVC_API_KEY;
const response = await fetch(`${baseUrl}/api/v1/geo/by-address`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": apiKey,
},
body: JSON.stringify({
query: "Крещатик 1",
city: "Киев",
}),
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
const baseUrl = process.env.GEOSVC_URL ?? "http://localhost:8081";
const apiKey = process.env.GEOSVC_API_KEY;
const response = await fetch(`${baseUrl}/api/v1/route`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": apiKey,
},
body: JSON.stringify({
points: [
{ name: "A", lat: 50.4501, lng: 30.5234 },
{ name: "B", lat: 50.4547, lng: 30.5310 },
],
}),
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
const baseUrl = process.env.GEOSVC_URL ?? "http://localhost:8081";
const apiKey = process.env.GEOSVC_API_KEY;
const response = await fetch(`${baseUrl}/api/v1/routes/preview`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": apiKey,
},
body: JSON.stringify({
points: [
{ name: "pickup", lat: 50.5055597, lng: 30.4175632 },
{ name: "dropoff", lat: 50.4501, lng: 30.5234 },
],
}),
});
if (!response.ok) throw new Error(await response.text());
const preview = await response.json();
// preview.geometry is GeoJSON LineString: coordinates are [lng, lat]
// preview.bbox is [minLng, minLat, maxLng, maxLat]
console.log(preview.geometry, preview.bbox);
/api/v1/search, когда нужен ввод в свободной форме./api/v1/geo/by-coordinates и /api/v1/geo/by-address./api/v1/geo/batch или legacy /get/all-data только для старых клиентов./api/v1/routes/preview: он сразу отдаёт GeoJSON geometry и bbox.[lng, lat], не [lat, lng].