↑ Все API

API: геокодирование (координаты по адресу)

Определяет координаты адреса (дома, улицы, города). Только для России.

Это документация для разработчиков. Определить координаты в демоформе, посмотреть сценарии использования и варианты подключения сервиса можно на странице «Найти координаты по адресу»

Как вызвать

Чтобы вызвать метод, зарегистрируйтесь и подтвердите почту.

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

[ "москва сухонская 11" ]
curl -X POST \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Authorization: Token ${API_KEY}" \
  -H "X-Secret: ${SECRET_KEY}" \
  -d '[ "москва сухонская 11" ]' \
  https://cleaner.dadata.ru/api/v1/clean/address
// https://github.com/hflabs/dadata-csharp

var token = "${API_KEY}";
var secret = "${SECRET_KEY}";
var api = new CleanClientAsync(token, secret);
var result = await api.Clean<Address>("москва сухонская 11");
// https://github.com/ekomobile/dadata
// Использует API-ключ из переменной окружения DADATA_API_KEY,
// а секретный ключ из переменной окружения DADATA_SECRET_KEY

import (
    "context"
    dadata "github.com/ekomobile/dadata/v2"
)

func main() {
    api := dadata.NewCleanApi()
    query := "москва сухонская 11"
    result, err := api.Address(context.Background(), query)
}
var url = "https://cleaner.dadata.ru/api/v1/clean/address";
var token = "${API_KEY}";
var secret = "${SECRET_KEY}";
var query = "москва сухонская 11";

var options = {
    method: "POST",
    mode: "cors",
    headers: {
        "Content-Type": "application/json",
        "Authorization": "Token " + token,
        "X-Secret": secret
    },
    body: JSON.stringify([query])
  }

fetch(url, options)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log("error", error));
// https://github.com/hflabs/dadata-php

$token = "${API_KEY}";
$secret = "${SECRET_KEY}";
$dadata = new \Dadata\DadataClient($token, $secret);
$result = $dadata->clean("address", "москва сухонская 11");
# https://github.com/hflabs/dadata-py

from dadata import Dadata
token = "${API_KEY}"
secret = "${SECRET_KEY}"
dadata = Dadata(token, secret)
result = dadata.clean("address", "москва сухонская 11")

Укажите при вызове:

  • Content-Type: application/json.
  • Accept: application/json.
  • ${API_KEY} — API-ключ.
  • ${SECRET_KEY} — секретный ключ.

Тело запроса передавайте в кодировке UTF-8.

Что в ответе

Адрес с координатами:

[
{
    "source": "москва сухонская 11",
    "result": "г Москва, ул Сухонская, д 11",
    "postal_code": "127642",
    "country": "Россия",
    "region": "Москва",
    "city_area": "Северо-восточный",
    "city_district": "Северное Медведково",
    "street": "Сухонская",
    "house": "11",
    "geo_lat": "55.8782557",
    "geo_lon": "37.65372",
    "qc_geo": 0
}
]

Координаты возвращаются в полях geo_lat и geo_lon. Поле qc_geo показывает, насколько точно удалось определить координаты:

Код qc_geo Описание
0 Точные координаты дома
1 Ближайший дом
2 Улица
3 Населенный пункт
4 Город
5 Координаты не определены

Метод возвращает больше полей, чем показано в примере. Описание всех полей см. в API Стандартизации.

Покрытие координат

«Дадата» берет координаты домов и улиц из OpenStreetMap.

Покрытие по домам:

  • Москва — 97%,
  • Санкт-Петербург — 91%,
  • другие города-миллионники — 69%,
  • остальная Россия — 47%.

По улицам:

  • Москва — 95%,
  • Санкт-Петербург — 94%,
  • другие города-миллионники — 81%,
  • остальная Россия — 70%.

Примеры и интеграции

Ограничения

Максимальная частота запросов — 20 в секунду с одного IP-адреса.

Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.

Дадата не поддерживает вызов этого метода из браузерного JavaScript. Иначе злоумышленник мог бы похитить секретный ключ и использовать API за ваш счет.

Стоимость

15 копеек за запись

Каждый вызов платный, вне зависимости от того, удалось определить координаты или нет.

ajax-spinner