Подсказки ФИО

POST/v1/suggest/fio

Дополняет ФИО по началу ввода, раскладывает на фамилию/имя/отчество и определяет пол. Два режима: целая строка ("query": "иванова мари") или дополнение одной части через parts. С флагом declensions к каждой подсказке добавляются склонения по шести падежам. Доступен по публичному ключу (pk_…) — подходит для браузерных форм.

Параметры запроса

ПолеТипОписание
queryrequiredstringНачало ФИО или отдельной части.
countintegerСколько подсказок вернуть (1–20, по умолчанию 10).
genderstringФильтр пола: MALE или FEMALE.
partsarray Дополнять только указанную часть: SURNAME, NAME, PATRONYMIC.
declensionsbooleantrue — добавить к каждой подсказке склонения по 6 падежам.

Поля ответа

ПолеТипОписание
suggestions[].valuestringПолное ФИО в правильном регистре.
suggestions[].surnamestringФамилия.
suggestions[].namestringИмя.
suggestions[].patronymicstringОтчество.
suggestions[].genderstring Пол: male, female или unknown.
suggestions[].declensionsobject Склонения по 6 падежам (nominativeprepositional), каждый — { surname, name, patronymic }. Только при declensions: true.
POST /v1/suggest/fio
{ "query": "иванова мари", "count": 5 }

// фильтр по полу + склонения по 6 падежам:
{ "query": "иванова мария сергеевна", "gender": "FEMALE", "declensions": true }

// дополнение одной части (фамилия / имя / отчество):
{ "query": "ал", "parts": ["NAME"], "gender": "MALE" }

Подсказки email

POST/v1/suggest/email

Достраивает адрес по началу ввода: к локальной части подставляет распространённые почтовые домены (gmail.com, yandex.ru, mail.ru и др.). Доступен по публичному ключу (pk_…).

Параметры запроса

ПолеТипОписание
queryrequiredstring Начало адреса, например ivan или ivan@gma.
countintegerСколько подсказок вернуть (1–20, по умолчанию 10).

Поля ответа

ПолеТипОписание
suggestions[].valuestringДостроенный адрес целиком.
suggestions[].localstringЛокальная часть (до @).
suggestions[].domainstringПочтовый домен (после @).
POST /v1/suggest/email
{ "query": "ivan@gma", "count": 3 }
Стандартизация

Стандартизация ФИО

POST/v1/clean/fio

Разбирает ФИО на части, определяет пол и исправляет регистр. Пакетно — через items (нативный ответ) или массивом строк (плоский DaData-формат). Для автодополнения при вводе используйте подсказки ФИО с разбором на части и склонениями по падежам.

POST /v1/clean/fio
{ "source": "иванова мария сергеевна" }

Поля ответа

ПолеТипОписание
sourcestringИсходная строка ФИО из запроса — для сопоставления ответа со входом.
resultstring Стандартизированное ФИО в правильном порядке и регистре; null, если распознать не удалось.
surnamestringФамилия с корректной заглавной буквой; null, если не выделена.
namestringИмя с корректной заглавной буквой; null, если не выделено.
patronymicstringОтчество с корректной заглавной буквой; null, если отсутствует.
genderstring Пол: male — мужской, female — женский, unknown — определить не удалось.
transliteratedbool true, если ввод был на латинице и приведён к кириллице (результат — реконструкция исходного написания).
qcinteger Код качества разбора: 0 — ФИО уверенно распознано, 1 — разобрано неуверенно (только фамилия, инициалы или часть определена по позиции).
casesobject Склонения ФИО по падежам (ключи: nominative, genitive, dative, accusative, instrumental, prepositional) для подстановки в документы; null, если склонять нечего.
cases.{падеж}.surnamestringФамилия в соответствующем падеже; null, если не выделена.
cases.{падеж}.namestringИмя в соответствующем падеже; null, если не выделено.
cases.{падеж}.patronymicstringОтчество в соответствующем падеже; null, если отсутствует.

Проверка телефона

POST/v1/clean/phone

Нормализует номера РФ и зарубежных стран: определяет страну, тип (мобильный/городской) и валидность. Для РФ дополнительно — оператор (с учётом переноса номера), регион и часовой пояс.

Формат вывода задаётся полем mask в теле запроса. Допустимые значения: имя пресета из списка ниже ("mask": "intl") или пользовательский шаблон ("mask": "+7 (XXX) XXX-XX-XX"), где плейсхолдер цифры — X, # или 9; остальные символы сохраняются без изменений. Маска накладывается на национальный номер любой страны:

  • e164+79627302371
  • intl+7 (962) 730-23-71
  • national8 (962) 730-23-71
  • intl_sp+7 962 730-23-71
  • dash+7-962-730-23-71
  • spaces8 962 730 23 71
  • plain9627302371
  • plain889627302371
  • свой шаблон, напр. +7 (XXX) XXX-XX-XX
POST /v1/clean/phone

// mask — ИМЯ пресета (intl / e164 / national …) ИЛИ свой шаблон "+7 (XXX) XXX-XX-XX"
{ "items": ["89627302371", "+375 29 491-19-11"],
  "mask": "intl" }

Поля ответа

ПолеТипОписание
resultarray Массив результатов — по одному объекту на каждый телефон из запроса, в том же порядке.
result[].sourcestringИсходная строка телефона в том виде, как она была передана.
result[].phonestring Телефон в стандартизованном формате (для РФ — +7 (XXX) XXX-XX-XX, для других стран — международный формат); null, если номер не распознан.
result[].typestring Тип номера: mobile — мобильный, direct_mobile — прямой мобильный, landline — стационарный, toll_free — бесплатный (8-800), voip — IP-телефония, premium_rate — платный, unknown — не определён; null, если номер невалиден.
result[].is_validbool Валиден ли номер по плану нумерации страны: true — валиден, false — распознан, но невалиден.
result[].countrystring Название страны номера (например, Россия, Беларусь); null, если номер не распознан.
result[].country_codestring Телефонный код страны без знака «+» (например, 7 — Россия, 375 — Беларусь); null, если номер не распознан.
result[].city_codestring Код города/оператора — часть номера после кода страны; null, если у плана нумерации страны его нет или номер не распознан.
result[].numberstringАбонентский номер без кода страны и кода города/оператора.
result[].extensionstring Добавочный (внутренний) номер, если он был в исходной строке; иначе null.
result[].operatorstring Оператор связи номера с учётом переносимости (бренд, например МегаФон); только для номеров РФ.
result[].operator_originalstring Исходный оператор по плану нумерации; присутствует только при факте переноса номера к другому оператору.
result[].portedbool Признак переноса номера к другому оператору: true — номер перенесён (текущий оператор отличается от исходного), false — не перенесён.
result[].regionstring Регион РФ, к которому относится номер; только для номеров РФ (для 8-800 пустой).
result[].citystringГород номера (для стационарных номеров РФ); иначе null.
result[].timezonestring Часовой пояс региона номера в формате IANA (например, Europe/Moscow); только для номеров РФ.
result[].qcinteger Код качества разбора: 0 — номер корректен и валиден, 1 — распознан с допущениями или невалиден по плану нумерации, 3 — пустой ввод или мусор.

Проверка email

POST/v1/clean/email

Проверяет синтаксис и доменную зону, возвращает признак доставляемости и тип адреса.

POST /v1/clean/email
{ "source": "maria@hintdata.ru" }

// пакетно — массив строк (ответ в плоском DaData-формате):
["maria@hintdata.ru", "info@bad..ru"]

Поля ответа

ПолеТипОписание
resultarray Массив результатов проверки — по одному объекту на каждый входной адрес.
result.sourcestringИсходный адрес ровно в том виде, как он был передан на вход.
result.emailstringОчищенный и стандартизированный адрес; null, если адрес некорректен.
result.localstring Локальная часть адреса до символа @; null, если адрес некорректен.
result.domainstring Доменная часть адреса после символа @; null, если адрес некорректен.
result.typestring Класс домена: personal — личный почтовый сервис, corporate — корпоративный домен; null, если адрес некорректен.
result.rolebool Ролевой адрес (info@, sales@, noreply@ и т.п.): true — служебный, не персональный; false — обычный.
result.disposablebool Одноразовый временный домен: true — да, false — нет; null, если адрес некорректен.
result.mxbool Домен принимает почту (есть MX-запись): true — да, false — нет; null, если адрес некорректен.
result.correctedbool Домен исправлен: true — устранена опечатка в домене (gmial → gmail), false — без изменений.
result.normalizedbool Адрес нормализован: true — схлопнуты подряд идущие точки в локальной части, false — без изменений.
result.qcinteger Код качества: 0 — корректен без замечаний; 1 — корректен с замечанием (домен исправлен, нормализован, одноразовый или ролевой); 2 — некорректен; 3 — пустой ввод.

Стандартизация даты рождения

POST/v1/clean/birthdate

Приводит дату из любого формата («4 фев 1985», «04.02.1985», «1985-02-04») к единому формату и рассчитывает возраст.

POST /v1/clean/birthdate
{ "source": "04 февраля 1985 г." }
// любой формат → ДД.ММ.ГГГГ + возраст
{
  "domain": "birthdate",
  "results": [{
    "source": "04 февраля 1985 г.",
    "birthdate": "04.02.1985",
    "year": 1985,
    "month": 2,
    "day": 4,
    "age": 41,
    "is_adult": true,
    "qc": 0
  }]
}

Поля ответа

ПолеТипОписание
querystringИсходная строка запроса, переданная на стандартизацию.
suggestionsarrayМассив результатов стандартизации (по одному объекту на дату).
suggestions.sourcestringИсходное значение даты в том виде, как оно было передано.
suggestions.birthdatestring Нормализованная дата рождения в формате ДД.ММ.ГГГГ; null, если дата не распознана.
suggestions.yearintegerГод рождения числом; null, если дата не распознана.
suggestions.monthintegerМесяц рождения числом 1–12; null, если дата не распознана.
suggestions.dayintegerДень рождения числом 1–31; null, если дата не распознана.
suggestions.ageinteger Возраст в полных годах на текущую дату; null, если дата не распознана.
suggestions.is_adultbool Совершеннолетие: true — 18 лет и более, false — менее 18; null, если дата не распознана.
suggestions.qcinteger Код качества разбора: 0 — распознана точно, 1 — распознана с допущением (двузначный год достроен до четырёхзначного), 2 — не распознана, 3 — пустой ввод.