Справочные данные и обогащение
Тридцать четыре миллиона строк — как шаг
Страны, языки и валюты. 13,4 миллиона населённых пунктов и географических объектов. 19 миллионов вариантов названий. Два миллиона почтовых индексов. Аэропорты, морские порты, марки автомобилей. Шестьдесят пять эндпоинтов, без аутентификации и без тарификации, потому что это та же платформа, на которой уже работает ваш сценарий.
Почему это необычно
В любом другом инструменте автоматизации «проверить этот адрес» — это платная сторонняя интеграция. Вы ищете поставщика, открываете аккаунт, согласовываете тарифы, получаете ключ, храните ключ, следите за квотой и пересогласовываете условия, когда меняются ваши объёмы. Сам запрос занимает двадцать миллисекунд; его закупка — две недели.
Здесь это шаг в списке выбора. Данные — публичные справочные данные: GeoNames, официальные кодовые списки, опубликованные реестры — очищены, проиндексированы и предоставляются сервисом castomAPI, который появился потому, что дюжине продуктов этого семейства понадобилось одно и то же, а построить один раз оказалось дешевле, чем двенадцать.
Поиск основан на триграммах с минимумом в три символа, поэтому частичное или ошибочно написанное название всё равно найдёт нужное место. Этот минимум задан намеренно: два символа совпадают со всем подряд, а поиск, который совпадает со всем, хуже, чем никакого поиска.
Три вещи, которые с его помощью делают
Валидация — плохие данные не проходят дальше входа. Действительно ли это почтовый индекс того самого города? Существует ли такой код страны, или это опечатка, которую кто-то допустил в 2019 году и которая с тех пор тиражируется? PLN — это валюта? И та ли это валюта, в которой следует выставить счёт этому клиенту?
Нормализация — «Warsaw», «Warszawa», «Varsovie» и «Варшава» — это одно место с одним идентификатором. Существует девятнадцать миллионов вариантов названий, чтобы в вашей клиентской базе не приходилось хранить четыре написания одного города и делать вид, что это четыре города.
Обогащение — название города превращается в координаты, часовой пояс, административный регион и численность населения. Код аэропорта — в название и местоположение. Почтовый индекс — во всё, что стоит выше него в иерархии. Шесть полей, которые человеку пришлось бы вводить вручную, заполняются за двадцать миллисекунд и бесплатно.
Часовой пояс — самый незаметный из них
Определив место, вы получаете его часовой пояс, а часовой пояс — это то, что делает фразу «отправить в девять утра» означающей девять утра для получателя, а не девять утра для вас. Тихие часы, расписания и напоминания становятся корректными для международного списка без того, чтобы кто-то поддерживал таблицу соответствий.
- 1Ввод«ul. Powstańców Śląskich 5, 53-332 Wrocław, PL»
- 2Почтовый индекс сопоставлен53-332 → Вроцлав, Нижнесилезское воеводство, PL.
- 3Населённый пункт определён51.0938 с.ш., 17.0226 в.д. · Europe/Warsaw · население 674 079.
- 4Записано обратноШесть заполненных полей, которые иначе ввёл бы человек.
- §СтоимостьДетерминированный шаг. Без ключа, без квот, без платы за каждый запрос.
Затрачено: 40 мсДоступно 65 эндпоинтов

Тридцать четыре миллиона строк. Один шаг.
Разбор примеров
Где он доказывает свою ценность
До того, как увидит перевозчик
Адрес проверен и нормализован до покупки транспортной этикетки. Отклонённая этикетка стоит сбора и целого дня; отклонённый почтовый индекс стоит двадцати миллисекунд.
До того, как увидит бухгалтер
Код валюты и код страны проверены до выставления счёта, что заметно дешевле, чем проверять их после отправки.
Дедупликация списка
Две записи об одном клиенте с двумя написаниями одного города корректно объединяются, как только оба города сводятся к одному идентификатору.
Маршрутизация по географии
Координаты клиента и координаты ваших складов — и маршрут выбирает ближайший без того, чтобы кто-то поддерживал таблицу соответствия индексов и складов.
Язык — правильный
Страна сводится к своим языкам, поэтому отправляемое сообщение написано на том, который получатель, скорее всего, понимает, — решение принимается на основе данных, а не предположения по флагу.
Автопарк и логистика
Марки автомобилей, аэропорты и морские порты как канонические записи — для рабочих процессов, где что-то физически перемещается.
Честные ограничения
Это открытые справочные данные, а не коммерческий сервис проверки адресов. Он сообщит, что 53-332 — реальный почтовый индекс во Вроцлаве, и даст координаты населённого пункта. Он не сообщит, существует ли квартира 212 в доме 5 и живёт ли там кто-нибудь. Для проверки на уровне точки доставки вам нужен продукт национального почтового оператора, и рабочий процесс может вызывать его по HTTP наряду с этим.
Это также не источник персональных данных. Людей в нём нет. Он содержит места, коды, реестры и общедоступные факты — именно поэтому его можно предоставлять без аутентификации.
О свежести данных: справочные данные меняются медленно, и эти данные обновляются по расписанию, а не непрерывно. Заново переименованная деревня не появится в тот же день. Для всего, что меняется ежечасно, вам лучше подойдёт лента событий, созданная именно для этого.