API карт, поиска и Studio
Создавайте с картами и геоданными
Авторизация и ошибки
Передавайте ключ в Authorization: Bearer. Координаты: [долгота, широта]. Задайте OSRMROUTE_API_KEY локально; DATASET_ID — UUID вашего набора данных. Не публикуйте ключ Studio в браузерном коде.
401: неверный ключ · 403: нет разрешения · 402: недостаточно кредитов · 429: лимит запросов · 502/503: источник недоступен. Проверяйте HTTP-статус; резерв кредитов неуспешных платных операций освобождается.
409: конфликт ревизий. Прочитайте актуальный ресурс и согласуйте изменения перед повтором.
Поиск на естественном языке
Ищите места короткими запросами на английском.
- Кредиты за запрос
- 2
- Необходимые разрешения
geocode + places
Категория на английском + near/in + место; радиус 100–5000 м. Шесть категорий, до десяти кандидатов. Без рейтингов, цен и доступности в реальном времени. Два кредита, включая успешный пустой результат.
POST /api/v1/search/natural
q * | string | maxLength: 1000 |
|---|---|---|
ai | boolean | default: false |
center | array | |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/search/natural" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q":"cafes near Berlin within 2 km"}'intent
places[].distance_meters
places[].details
interpretation: constrained_english_grammar
exhaustive: falseСведения о местах
Читайте атрибуты, предоставленные источником.
- Кредиты за запрос
- 1
- Необходимые разрешения
places
Один кредит с разрешением places. Объект OpenStreetMap по ID результата; кеш источника на час. Отсутствующие контакты, часы работы и доступность остаются null. Время источника — дата правки объекта, не проверка бизнеса. Без статуса открытия в реальном времени. 20 вызовов/мин/ключ; общий лимит обращений к источнику вне кеша 30/мин.
POST /api/v1/places/details
id * | string | maxLength: 24 |
|---|
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/places/details" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"id":"osm:N:123"}'place.details.phone
place.details.website
place.details.opening_hours
place.details.wheelchair
place.details.observed_at
place.details.source_updated_at
place.details.open_now: nullПредпросмотр стиля по тексту
Опишите цвета и слои, затем проверьте карту.
- Кредиты за запрос
- 0
- Необходимые разрешения
studio
Английские команды через точку с запятой: тема, hex-цвет и видимость слоёв. Предпросмотр не сохраняет. Применение меняет черновик и может запустить автосохранение.
POST /api/v1/studio/preview
prompt * | string | maxLength: 1000 |
|---|---|---|
ai | boolean | default: false |
design | object | |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/studio/preview" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"dark; water #123456; hide buildings"}'design
changes[]
saved: false
method: explicit_style_commandsStatic Maps API
Экспортируйте оформленные карты в PNG для отчётов и приложений.
- Кредиты за запрос
- 4
- Необходимые разрешения
maps
Четыре палитры: light, dark, navigation, minimal. 128–512 px, zoom 1–14. Упрощённый рендер с атрибуцией; пользовательские слои и эффекты Studio не поддерживаются.
POST /api/v1/maps/static
center * | array | |
|---|---|---|
zoom | integer | min: 1 · max: 14 · default: 12 |
width | integer | min: 128 · max: 512 · default: 512 |
height | integer | min: 128 · max: 512 · default: 512 |
style | string | light | dark | navigation | minimal |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/maps/static" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"center":[13.405,52.52],"zoom":12,"width":512,"height":512,"style":"light"}' \
--output map.pngContent-Type: image/pngDataset Query API
Находите ближайшие объекты в собственных загруженных геоданных.
- Кредиты за запрос
- 1
- Необходимые разрешения
maps
Только данные владельца ключа. Радиус 0–50 000 м, лимит 1–50. Ближайшие точки и оценочные локальные расстояния, не дорожные расстояния и не полная геометрия. Пустой успешный результат также стоит 1 кредит.
POST /api/v1/maps/datasets/{id}/query
point * | array | |
|---|---|---|
radius | number | min: 0 · max: 50000 · default: 0 |
limit | integer | min: 1 · max: 50 · default: 10 |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/maps/datasets/$DATASET_ID/query" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"point":[2.3522,48.8566],"radius":1000,"limit":10}'type: FeatureCollection
features[].geometry.type: Point
features[].properties
returnedSearch Along Route API
Сравнивайте остановки и дополнительное время поездки вдоль маршрута.
- Кредиты за запрос
- 14
- Необходимые разрешения
places + route
Автомобильные маршруты до 200 км. Пять точек выборки и до восьми объездов; поиск не исчерпывающий. fuel, charging_station, restaurant, cafe, parking, pharmacy. Без текущего трафика и доступности зарядок.
POST /api/v1/places/along-route
start * | array | |
|---|---|---|
end * | array | |
category * | string | fuel | charging_station | restaurant | cafe | parking | pharmacy |
max_detour_seconds | number | min: 0 · max: 1800 · default: 600 |
limit | integer | min: 1 · max: 8 · default: 5 |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/places/along-route" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"start":[13.405,52.52],"end":[13.3777,52.5163],"category":"cafe","max_detour_seconds":600,"limit":5}'places[]
baseline.duration_seconds
baseline.distance_meters
discovery
duration_modelStructured Geocoding API
Ищите адреса по улице, городу, индексу и стране.
- Кредиты за запрос
- 1
- Необходимые разрешения
geocode
Укажите street, city или postcode. Код страны — две буквы, остальные поля до 100 символов. Компоненты формируют текстовый поиск. matched/different/missing и точность источника не гарантируют проверку адреса.
POST /api/v1/search/structured
housenumber | string | maxLength: 100 |
|---|---|---|
street | string | maxLength: 100 |
city | string | maxLength: 100 |
state | string | maxLength: 100 |
postcode | string | maxLength: 100 |
countrycode | string | maxLength: 2 |
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/search/structured" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"street":"Friedrichstraße","city":"Berlin","countrycode":"DE"}'features[].id
features[].address
features[].precision
features[].match.components
features[].precision_basis
search_method: composed_address_querySuggest & Retrieve API
Создавайте поиск мест с подсказками и безопасным получением результата.
- Кредиты за запрос
- 1 + 1
- Необходимые разрешения
geocode
Suggest и retrieve стоят по 1 кредиту. Запрос 1–200 символов. Токены действуют 10 минут и привязаны к владельцу ключа. Retrieve возвращает подписанный снимок подсказки, а не новый поиск.
POST /api/v1/search/suggest
q * | string | maxLength: 200 |
|---|
POST /api/v1/search/retrieve
token * | string | maxLength: 16384 |
|---|
curl --fail-with-body -X POST "https://osrmroute.com/api/v1/search/suggest" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"q":"Paris"}'suggestions[].id
suggestions[].name
suggestions[].address
suggestions[].token
expires_in_seconds: 600
retrieve → place, retrieval: signed_suggestion_snapshotcurl --fail-with-body -X POST "https://osrmroute.com/api/v1/search/retrieve" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"token":"TOKEN_FROM_SUGGEST"}'Studio API
Управляйте стилями, наборами данных и публикацией из приложения.
- Кредиты за запрос
- 0
- Необходимые разрешения
studio
Явное разрешение studio требуется и для неограниченных ключей. GET выводит стили или метаданные; POST управляет ресурсами. Для стилей нужны ревизии и подтверждение публикации. Наборы создаются/удаляются, без правки на месте. 30 чтений или 5 записей/минуту/ключ; действуют квоты пространства.
GET / POST /api/v1/studio/{resource}
action * | string | |
|---|---|---|
id | string | |
revision | integer | |
name | string | maxLength: 80 |
design | object | |
data | object | |
confirmPublic | boolean | |
confirmDelete | boolean | |
version | integer | |
curl --fail-with-body "https://osrmroute.com/api/v1/studio/styles" \
-H "Authorization: Bearer $OSRMROUTE_API_KEY"GET styles → styles[]
GET datasets → datasets[]styles · create | name, design |
|---|---|
styles · save / autosave | id, revision, name, design |
styles · duplicate | id, revision, name |
styles · restore | id, revision, version |
styles · publish | id, revision, confirmPublic: true |
styles · unpublish / delete | id, revision |
datasets · create | name, data: GeoJSON FeatureCollection |
datasets · delete | id, confirmDelete: true |
{
"action": "create",
"name": "Berlin",
"design": {
"preset": "light",
"colors": {
"land": "#f1f3f5",
"water": "#a9d8ed",
"park": "#c9dfc6",
"road": "#ffffff",
"highway": "#edc779",
"building": "#d9dee3",
"label": "#334155"
},
"visible": {
"roads": true,
"buildings": true,
"parks": true,
"labels": true,
"pois": true,
"boundaries": true
},
"center": [
13.405,
52.52
],
"zoom": 11,
"overlays": []
}
}{
"action": "create",
"name": "Paris places",
"data": {
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"name": "Paris"
},
"geometry": {
"type": "Point",
"coordinates": [
2.3522,
48.8566
]
}
}
]
}
}