API Геокодера Яндекс Карт API

Отрасль: Карты и геоданные. Актуально на 2026-10-24.

HTTP-геокодер Яндекс Карт: прямое геокодирование (координаты по адресу или названию объекта) и обратное (адрес по координатам). Сервис учитывает распространённые опечатки и предлагает несколько вариантов; при обратном геокодировании можно ограничить тип топонима — дома, улицы, населённые пункты. Ответ — JSON.

Сценарии

Получить координаты по адресу

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

  1. Получи ключ в Кабинете разработчика (продукт «API Геокодера») — он активируется в течение 15 минут. Ключ передаётся в параметре apikey; держи запросы на сервере или защищай ключ подписью signature.
  2. Запроси координаты: GET /v1 с geocode — адресом, lang = ru_RU, format = json и results = 1, если нужен только лучший вариант.
  3. Координаты — в response.GeoObjectCollection.featureMember[0].GeoObject.Point.pos в порядке «долгота широта» через пробел. Не перепутай порядок при передаче в карты и формулы расстояний.
  4. Проверь точность: GeocoderMetaData.precision = exact значит, что дом найден точно; near, street или other — что адрес распознан частично, стоит уточнить его у покупателя.
  5. Геокодер исправляет опечатки: исправленный запрос — в GeocoderResponseMetaData.fix.
import requests

r = requests.get("https://geocode-maps.yandex.ru/v1/", params={
    "apikey": "<ключ>", "geocode": "Москва, Тверская улица, 7", "lang": "ru_RU", "format": "json", "results": 1,
}).json()
obj = r["response"]["GeoObjectCollection"]["featureMember"][0]["GeoObject"]
lon, lat = map(float, obj["Point"]["pos"].split())
precision = obj["metaDataProperty"]["GeocoderMetaData"]["precision"]
print(lat, lon, precision)

Определить адрес по координатам

Подставить адрес по точке, которую пользователь выбрал на карте или передал из геолокации телефона.

  1. Запроси адрес: GET /v1 с geocode = «долгота,широта» (по умолчанию порядок именно такой; для «широта,долгота» передай sco = latlong).
  2. Чтобы получить именно дом, а не район или метро, передай kind = house. Другие варианты — street, metro, district, locality.
  3. Полный адрес — в GeocoderMetaData.text, по частям — в Address.Components: пары kind и name от страны до дома. Поле AddressDetails устарело.
curl -G https://geocode-maps.yandex.ru/v1/ \
  -d apikey=<ключ> -d geocode=37.611347,55.760241 -d kind=house -d lang=ru_RU -d format=json -d results=1

Искать адрес только в своём городе

Подсказки и проверка адреса доставки в зоне работы: чтобы «Ленина, 5» нашлось в твоём городе, а не в соседнем.

  1. Задай область поиска: bbox — углами «долгота1,широта1~долгота2,широта2», или ll (центр) и spn (протяжённость).
  2. Передай rspn = 1, чтобы искать только внутри области; с rspn = 0 область лишь повышает приоритет результатов.
  3. Запроси несколько вариантов: GET /v1 с results до 50 и покажи их пользователю на выбор. Следующие страницы — через skip (кратно results).
  4. Если в geocode переданы координаты, ограничение области не применяется.
curl -G https://geocode-maps.yandex.ru/v1/ \
  -d apikey=<ключ> --data-urlencode 'geocode=Ленина 5' \
  -d bbox=49.0,55.7~49.3,55.9 -d rspn=1 -d results=5 -d lang=ru_RU -d format=json

Базовые URL

Авторизация

Тип: API-ключ

Ключ из Кабинета разработчика передаётся в параметре apikey; активируется в течение 15 минут после получения. Для защиты ключа от кражи можно подписывать запросы параметром signature.

https://geocode-maps.yandex.ru/v1/?apikey=YOUR_API_KEY&geocode=бульвар+Мухаммед+Бин+Рашид+1&format=json

Методы

GET /v1 — Геокодирование

Пример обратного геокодирования:

Постраничная выдача (объекты с 11-го по 15-й):

Структура ответа (сокращена):

Параметр Где Тип Обяз. Описание
apikey query string да Ключ из Кабинета разработчика
geocode query string да Адрес (прямое геокодирование) или координаты (обратное)
lang query string да Язык ответа language_region: ru_RU, uk_UA, be_BY, en_RU, en_US, tr_TR
sco query string нет Порядок координат в geocode: longlat (по умолчанию) или latlong
kind query string нет Вид топонима при обратном геокодировании: house, street, metro, district, locality
rspn query boolean нет Ограничить поиск областью ll/spn или bbox: 0 — нет (по умолчанию), 1 — да
ll query string нет Долгота и широта центра области поиска
spn query string нет Протяжённость области поиска по долготе и широте
bbox query string нет Область поиска углами x1,y1~x2,y2; приоритетнее ll+spn
format query string нет Формат ответа: json
results query integer нет Максимум объектов, по умолчанию 10, не больше 50
skip query integer нет Сколько объектов пропустить; должно делиться на results
uri query string нет ID объекта для получения доп. информации, вместо текста и координат
signature query string нет Подпись запроса

Пример запроса:

https://geocode-maps.yandex.ru/v1/?apikey=YOUR_API_KEY&geocode=55.270141,25.193445&format=json

Пример ответа:

https://geocode-maps.yandex.ru/v1/?apikey=YOUR_API_KEY&geocode=Дубай+Марина&results=5&skip=10&format=json

Нюансы

Ошибки

Код Описание
400 Нет обязательного параметра или неверное значение; подробности в message
403 Неверный apikey (Invalid apikey)
429 Слишком много запросов за короткое время

Источники


Если этого недостаточно — официальная документация: https://yandex.ru/maps-api/docs/geocoder-api/index.html JSON: https://mcp-everything.ru/api/integrations/yandex-geocoder. MCP: https://mcp-everything.ru/mcp