osrmroute
Документация

API карт, поиска и Studio

Создавайте с картами и геоданными

Авторизация и ошибки

Передавайте ключ в Authorization: Bearer. Координаты: [долгота, широта]. Задайте OSRMROUTE_API_KEY локально; DATASET_ID — UUID вашего набора данных. Не публикуйте ключ Studio в браузерном коде.

401: неверный ключ · 403: нет разрешения · 402: недостаточно кредитов · 429: лимит запросов · 502/503: источник недоступен. Проверяйте HTTP-статус; резерв кредитов неуспешных платных операций освобождается.

409: конфликт ревизий. Прочитайте актуальный ресурс и согласуйте изменения перед повтором.

Сведения о местах

Читайте атрибуты, предоставленные источником.

Кредиты за запрос
1
Необходимые разрешения
places

Один кредит с разрешением places. Объект OpenStreetMap по ID результата; кеш источника на час. Отсутствующие контакты, часы работы и доступность остаются null. Время источника — дата правки объекта, не проверка бизнеса. Без статуса открытия в реальном времени. 20 вызовов/мин/ключ; общий лимит обращений к источнику вне кеша 30/мин.

POST /api/v1/places/details

Тело запроса — Поля с * обязательны.
id *stringmaxLength: 24
cURL
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 *stringmaxLength: 1000
aibooleandefault: false
designobject
cURL
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_commands

Static Maps API

Экспортируйте оформленные карты в PNG для отчётов и приложений.

Кредиты за запрос
4
Необходимые разрешения
maps

Четыре палитры: light, dark, navigation, minimal. 128–512 px, zoom 1–14. Упрощённый рендер с атрибуцией; пользовательские слои и эффекты Studio не поддерживаются.

POST /api/v1/maps/static

Тело запроса — Поля с * обязательны.
center *array
zoomintegermin: 1 · max: 14 · default: 12
widthintegermin: 128 · max: 512 · default: 512
heightintegermin: 128 · max: 512 · default: 512
stylestringlight | dark | navigation | minimal
cURL
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.png
Ответ
Content-Type: image/png

Dataset Query API

Находите ближайшие объекты в собственных загруженных геоданных.

Кредиты за запрос
1
Необходимые разрешения
maps

Только данные владельца ключа. Радиус 0–50 000 м, лимит 1–50. Ближайшие точки и оценочные локальные расстояния, не дорожные расстояния и не полная геометрия. Пустой успешный результат также стоит 1 кредит.

POST /api/v1/maps/datasets/{id}/query

Тело запроса — Поля с * обязательны.
point *array
radiusnumbermin: 0 · max: 50000 · default: 0
limitintegermin: 1 · max: 50 · default: 10
cURL
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
returned

Search 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 *stringfuel | charging_station | restaurant | cafe | parking | pharmacy
max_detour_secondsnumbermin: 0 · max: 1800 · default: 600
limitintegermin: 1 · max: 8 · default: 5
cURL
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_model

Structured Geocoding API

Ищите адреса по улице, городу, индексу и стране.

Кредиты за запрос
1
Необходимые разрешения
geocode

Укажите street, city или postcode. Код страны — две буквы, остальные поля до 100 символов. Компоненты формируют текстовый поиск. matched/different/missing и точность источника не гарантируют проверку адреса.

POST /api/v1/search/structured

Тело запроса — Поля с * обязательны.
housenumberstringmaxLength: 100
streetstringmaxLength: 100
citystringmaxLength: 100
statestringmaxLength: 100
postcodestringmaxLength: 100
countrycodestringmaxLength: 2
cURL
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_query

Suggest & Retrieve API

Создавайте поиск мест с подсказками и безопасным получением результата.

Кредиты за запрос
1 + 1
Необходимые разрешения
geocode

Suggest и retrieve стоят по 1 кредиту. Запрос 1–200 символов. Токены действуют 10 минут и привязаны к владельцу ключа. Retrieve возвращает подписанный снимок подсказки, а не новый поиск.

POST /api/v1/search/suggest

Тело запроса — Поля с * обязательны.
q *stringmaxLength: 200

POST /api/v1/search/retrieve

Тело запроса — Поля с * обязательны.
token *stringmaxLength: 16384
cURL
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_snapshot
cURL · retrieve
curl --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
idstring
revisioninteger
namestringmaxLength: 80
designobject
dataobject
confirmPublicboolean
confirmDeleteboolean
versioninteger
cURL
curl --fail-with-body "https://osrmroute.com/api/v1/studio/styles" \
  -H "Authorization: Bearer $OSRMROUTE_API_KEY"
Ответ
GET styles → styles[]
GET datasets → datasets[]
Операции Studio
styles · createname, design
styles · save / autosaveid, revision, name, design
styles · duplicateid, revision, name
styles · restoreid, revision, version
styles · publishid, revision, confirmPublic: true
styles · unpublish / deleteid, revision
datasets · createname, data: GeoJSON FeatureCollection
datasets · deleteid, confirmDelete: true
POST /api/v1/studio/styles · application/json
{
  "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": []
  }
}
POST /api/v1/studio/datasets · application/json
{
  "action": "create",
  "name": "Paris places",
  "data": {
    "type": "FeatureCollection",
    "features": [
      {
        "type": "Feature",
        "properties": {
          "name": "Paris"
        },
        "geometry": {
          "type": "Point",
          "coordinates": [
            2.3522,
            48.8566
          ]
        }
      }
    ]
  }
}
Команда поддержки

Поддержка OSRMRoute

Напишите нашей команде напрямую

МЫ ГОТОВЫ ПОМОЧЬ

Чем вам помочь?

Задайте вопрос об интеграции, оплате или аккаунте. Ответы появятся в этой беседе.

Ваши чаты

Ваши чаты появятся здесь.