Служба поддержки DaData.ru
Если чего-то не хватает, или вы столкнулись с проблемой — оставьте сообщение, и мы ответим в течение 24 часов. Работаем с понедельника по пятницу, с 10 до 19 по Москве.

Уточните, пожалуйста — что вы имеете в виду под JSON-схемой? Лучше всего пример.

Как проверить 3 000 емейлов из Mail Chimp?
Добрый день,
Нам необходимо выгрузить и проверить почту из Mail Chimp в каком формате и сколько будет стоить услуга выгрузить и проверить более 3000 писем.

Дадата может обработать файл, либо проверить записи через АПИ.
Стоимость обработки 3 000 записей составит 300 ₽ (узнать точную цену).

Как ограничить адрес по нескольким kladr_id?
Здравствуйте. Скажите, пожалуйста, можно ли в ограничении по kladr_id указать сразу 2 города?

Здравствуйте!
Конечно, можно указать массив ограничений в параметре locations при запросе через REST API.
При запросе через jQuery-плагин принцип тот же: передавать несколько КЛАДР-кодов в параметре locations в настройке constraints (пример).

Список городов среднего качества -> Очищенная таблица "Город - ФИАС"
Добрый день! Есть список городов со средним качеством информации, необходимо очистить названия городов и получить ФИАС населенного пункта. Это возможно сделать через сервис "Качество данных", или требуется иной инструмент?

Иван, здравствуйте!
Сервис Стандартизации создан как раз для этого: данные можно обработать в файле или через АПИ.
Попробуйте очистить один адрес, подходит ли вам такой результат?
Можете прислать пример города из вашего списка?

Возвращается qc: 1, fias_level: 8 для адреса
Адрес: г Краснодар, ул 1 Мая, д 338
Стандартизация возвращает qc: 1. Можно как-то узнать, почему?

Добрый день!
Дадата работает по ФИАС (всероссийский классификатор адресов налоговой), в котором есть две улицы 1 Мая в Краснодаре: в Карасунском и Прикубанском районах:
В ФИАСе дом 338 есть только на улице 1 Мая в Прикубанском районе, информацию по нему Дадата возвращает после стандартизации. Так как нельзя однозначно определить, что адрес распознан правильно (выбран нужный район), проставляется код качества qc = 1 (адрес распознан с допущениями).

Когда город записывается в city, а когда в settlement?
Изначально было сделано 1 поле для ввода города. При выборе города отправляю данные на обработку. Так вот хотел бы знать в каких случаях ответ приходит в разные поля я как понял если выбран AO, тогда город будет в suggestion.data.settlement, в некоторых местах приходит в suggestion.data.city

Подсказки работают по ФИАС (всероссийский классификатор адресов налоговой), в котором предусмотрено больше 10 разных уровней для адресных объектов (регион, автономный округ, город, населенный пункт и др.).
В Дадате тоже есть уровни, но не совсем такие, как в ФИАС — более привычные в быту и для отправки почты. Например:
suggestion.data.city — город (4ый уровень по ФИАС);
suggestion.data.settlement — населённый пункт (5ый и 6ой уровни в ФИАС).
Чтобы в одном поле для города учитывались и города и населённые пункты, можно вызывать подсказки с ограничением по этим параметрам:
from_bound:{value: "city"} to_bound:{value: "settlement"}
Такое решение вам подойдет?

Nuget для suggestions-csharp
Nuget существенно удобнее, чем просто DLL.
Но это имеет смысл только если библиотека полностью поддерживает API (http://dadata.userecho.com/topics/2224-v-biblioteke-suggestions-csharp-dostupnyi-ne-vse-polya-adresa-iz-api/), иначе ее приходится дорабатывать самостоятельно и Nuget будет бесполезен.

В библиотеке suggestions-csharp доступны не все поля адреса из API
В библиотеке suggestions-csharp доступны не все поля адреса из API. В частности, нет кодов ФИАС и КЛАДР для элементов адреса.
Это приводит, например, к следующим проблемам:
- http://dadata.userecho.com/topics/2220-kak-ponyat-dom-najden-v-intervale-ili-ne-najden.
- Не работают ограничения поиска по коду ФИАС.
Исправить это очень просто.

Как понять, дом найден в интервале или не найден?
Согласно документации, поле fias_id в подсказках может иметь следущий смысл:
HOUSE.HOUSEGUID
, если дом найден в ФИАС по точному совпадению;HOUSEINT.INTGUID
, если дом найден в ФИАС как часть интервала;ADDROBJ.AOGUID
в противном случае.
Проблема в том, что не все эти варианты можно различить.
Случай, когда дом найден по точному совпадению, можно определить по fias_level == 8.
Если дом найден в интервале, fias_id является кодом интервала и fias_level == 7 (улица).
Если дом не найден (но найдена улица), fias_id является кодом улицы и fias_level == 7 (улица).
Таким образом, невозможно отличить последние два случая, и неизвестно, чем является fias_id, следовательно, нельзя его использовать.
В принципе API дает возможность обойти эту проблему, сравнив fias_id и street_fias_id. Но.
- Получается, что поле fias_id бесполезно: его действительный смысл нужно выводить из других полей.
- Поле street_fias_id доступно не во всех интерфейсах к API. В частности, в библиотеке для C# есть только fias_id (впрочем, это проблема этой библиотеки сама по себе).

> Если fias_level == улица, то брать street_fias_id вместо fias_id
Если вам не нужны интервалы, то рекомендую именно так и делать. Более того, я бы вообще не использовал ФИАС-коды домов, а всегда хранил код улицы + номер дома. Потому что ФИАС-коды домов неустойчивые, они могут меняться (это противоречит идее уникального идентификатора, но факт — налоговая их меняет).
Сервис поддержки клиентов работает на платформе UserEcho