Начало работы

Глобальная инфраструктура мобильной связи работает на основе системы, известной как сигнальная сеть SS7. Эта сеть обеспечивает обмен данными абонентов, маршрутизацию вызовов, передачу SMS и обновления статуса мобильного подключения в реальном времени между операторами связи. Каждая мобильная сеть поддерживает Home Location Register (HLR) - основную базу данных, в которой хранятся важные сведения о её абонентах.

Технология HLR Lookup позволяет компаниям запрашивать эти реестры и получать актуальные данные о подключении и сетевые параметры для любого номера мобильного телефона. Это включает информацию о том, включен ли телефон, к какой сети он в данный момент подключен, был ли номер перенесен, является ли номер действительным или деактивированным, а также находится ли он в роуминге.

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

Использование API HLR Lookups

Выполнение запросов HLR Lookup - быстрое, безопасное и простое. После регистрации и получения вашего API-ключа вы можете пройти аутентификацию и выполнять мгновенные запросы с помощью простых HTTP POST запросов через POST /hlr-lookup. Также вы можете обрабатывать большие массивы данных, используя быстрые асинхронные API-запросы с отправкой результатов обратно на ваш сервер через webhook, как описано в разделе концепции.

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

curl -X POST 'https://www.hlr-lookups.com/api/v2/hlr-lookup' \
          -H "X-Digest-Key: YOUR_API_KEY" \
          -H "X-Digest-Signature: DIGEST_AUTH_SIGNATURE" \
          -H "X-Digest-Timestamp: UNIX_TIMESTAMP" \
          -d "@payload.json"

Аутентификация передается через HTTP-заголовки, а payload.json должен (как минимум) содержать следующий JSON-объект:

Пример данных запроса

{
   "msisdn": "+14156226819"
}

При успешном выполнении вы получите ответ, содержащий сведения о подключении в реальном времени для указанного мобильного номера.

Успешный ответ application/json

{
   "id":"f94ef092cb53",
   "msisdn":"+14156226819",
   "connectivity_status":"CONNECTED",
   "mccmnc":"310260",
   "mcc":"310",
   "mnc":"260",
   "imsi":"***************",
   "msin":"**********",
   "msc":"************",
   "original_network_name":"Verizon Wireless",
   "original_country_name":"United States",
   "original_country_code":"US",
   "original_country_prefix":"+1",
   "is_ported":true,
   "ported_network_name":"T-Mobile US",
   "ported_country_name":"United States",
   "ported_country_code":"US",
   "ported_country_prefix":"+1",
   "is_roaming":false,
   "roaming_network_name":null,
   "roaming_country_name":null,
   "roaming_country_code":null,
   "roaming_country_prefix":null,
   "cost":"0.0100",
   "timestamp":"2020-08-07 19:16:17.676+0300",
   "storage":"SYNC-API-2020-08",
   "route":"IP1",
   "processing_status":"COMPLETED",
   "error_code":null,
   "error_description":null,
   "data_source":"LIVE_HLR",
   "routing_instruction":"STATIC:IP1"
}

Полное описание атрибутов запроса и ответа, а также статусов подключения см. в POST /hlr-lookup.

Дополнительные услуги проверки

Запросы переносимости мобильных номеров (MNP)

Используйте MNP-запросы для определения принадлежности к сети и сведений о переносимости без запроса данных о подключении в реальном времени. Если вам нужен только MCCMNC номера, обратитесь к POST /mnp-lookup.

Определение типа номера (NT)

Определите, принадлежит ли телефонный номер стационарной линии, мобильной связи, премиум-тарифу, VoIP, пейджеру или другим диапазонам нумерации с помощью POST /nt-lookup.

Комплекты разработки программного обеспечения (SDK)

API HLR Lookups работает с любым REST-клиентом на любом языке программирования, и мы опубликовали SDK для PHP, Ruby и NodeJS на нашем GitHub, чтобы помочь вам быстро начать работу.

Инструменты

Для обеспечения удобной разработки мы предлагаем полный набор инструментов, включая мониторинг API-запросов и webhook в браузере, белый список IP-адресов, надежные опции аутентификации и тестовую конечную точку аутентификации.

Не разработчик?

HLR Lookup и запросы переносимости номеров можно выполнять без программирования. Узнайте больше о нашем корпоративном веб-клиенте и функциях отчетности в браузере.

Аутентификация

Для обеспечения безопасности и надлежащего контроля доступа большинство запросов к HLR Lookups API требуют аутентификации. Конечные точки делятся на публичные и защищенные. При обращении к защищенной конечной точке ваш запрос должен быть аутентифицирован с использованием API-ключа и секрета через метод Digest-Auth или Basic-Auth. Digest-Auth является более безопасным вариантом и настоятельно рекомендуется. Используйте конечную точку GET /auth-test для проверки настроек аутентификации.

API-ключ и API-секрет

Получите ваш API-ключ и секрет на странице настроек API. Вы также можете настроить предпочитаемый метод аутентификации и включить белый список IP-адресов для повышения безопасности. Если вы подозреваете, что ваш API-секрет был скомпрометирован, вы можете создать новый в любое время.

Получить API-ключ
Basic Auth Digest Auth Белый список IP

Стандартная базовая аутентификация проста в реализации и широко поддерживается. Вы можете аутентифицироваться, передавая API-ключ и секрет в виде пары user:pass в HTTP-запросе.

HTTP Basic Auth

curl 'https://YOUR_API_KEY:YOUR_API_SECRET@www.hlr-lookups.com/api/v2/auth-test'

Это отправляет заголовок Authorization:

Authorization: Basic BASE64(YOUR_API_KEY:YOUR_API_SECRET)

Рекомендуется: заголовок X-Basic с SHA256

Для повышения безопасности вы можете отправлять SHA256-хеш ваших учетных данных вместо их прямой передачи в формате base64. Чтобы использовать этот метод, вычислите хеш пары YOUR_API_KEY:YOUR_API_SECRET и отправьте его через заголовок X-Basic:

Запрос с Basic Auth

curl 'https://www.hlr-lookups.com/api/v2/auth-test' \
  -H "X-Basic: BASIC_AUTH_HASH"

Заголовки базовой аутентификации

Ключ Тип Описание
X-Basic string SHA256-хеш YOUR_API_KEY:YOUR_API_SECRET. Включите символ двоеточия (:) в хеш. обязательный

PHP Пример кода

$key = 'YOUR_API_KEY';
$secret = 'YOUR_API_SECRET';

$basicAuthHash = hash('sha256', $key . ':' . $secret);

Digest-Auth является рекомендуемым методом для защиты доступа к защищенным конечным точкам HLR Lookup API. Каждый запрос должен включать следующие заголовки: X-Digest-Key, X-Digest-Signature и X-Digest-Timestamp, которые описаны ниже.

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

curl 'https://www.hlr-lookups.com/api/v2/auth-test' \
  -H "X-Digest-Key: YOUR_API_KEY" \
  -H "X-Digest-Signature: DIGEST_AUTH_SIGNATURE" \
  -H "X-Digest-Timestamp: UNIX_TIMESTAMP"

Заголовки запроса

Ключ Тип Описание
X-Digest-Key string Ваш уникальный API-ключ HLR Lookups. обязательный
X-Digest-Signature string Уникальная подпись аутентификации (см. ниже). обязательный
X-Digest-Timestamp integer Текущая временная метка Unix (также см. GET /time). обязательный

Формирование подписи

X-Digest-Signature создается с использованием SHA256 HMAC-хеша, где ваш API-секрет выступает в качестве общего ключа.

Строка для хеширования структурирована следующим образом:

ENDPOINT_PATH . UNIX_TIMESTAMP . REQUEST_METHOD . REQUEST_BODY

Символ . обозначает конкатенацию строк.

Компоненты подписи Digest

Компонент Тип Описание
ENDPOINT_PATH string Запрашиваемая конечная точка API, например, /auth-test в нижнем регистре.
UNIX_TIMESTAMP integer Текущая временная метка Unix (должна быть в пределах 30 секунд). См. GET /time.
REQUEST_METHOD string Используемый HTTP-метод, например, POST или GET.
REQUEST_BODY string Данные тела запроса. Установите значение null для запросов GET.

Примеры кода

PHP PHP NodeJS NodeJS Ruby Ruby
$path = '/auth-test'
    $timestamp = time();
    $method = 'GET';
    $body = $method == 'GET' ? null : json_encode($params);
    $secret = 'YOUR_API_SECRET';

    $signature = hash_hmac('sha256', $path . $timestamp . $method . $body, $secret);
require('crypto');

    let path = '/auth-test'
    let timestamp = Date.now() / 1000 | 0;
    let method = 'GET'
    let body = method === 'GET' ? '' : JSON.stringify(params)
    let secret = 'YOUR_API_SECRET'

    let signature = crypto.createHmac('sha256', secret)
                    .update(path + timestamp + method + body)
                    .digest('hex');
require 'openssl'

path = '/auth-test'
timestamp = Time.now.to_i
method = 'GET'
body = method == 'GET' ? NIL : params.to_json
secret = 'YOUR_API_SECRET'

signature = OpenSSL::HMAC.hexdigest('sha256', secret, path + timestamp.to_s + method + body.to_s)

Используйте настройки API для ограничения доступа к определенным IP-адресам для повышения безопасности. Это особенно рекомендуется в производственных средах.

Прокрутить вверх

Концепции

Интеграция HLR-запросов на любом языке программирования или в любой системе через наш HTTP REST API выполняется просто и эффективно. Благодаря простому процессу интеграции вы можете начать выполнять запросы к мобильным сетям в режиме реального времени для мгновенного получения информации о действительности номера телефона, статусе подключения и маршрутизации.

Выбор подходящего API зависит от вашего конкретного сценария использования. Если вам требуются результаты запросов в режиме реального времени для таких приложений, как VoIP-телефония, выявление мошенничества или маршрутизация SMS, лучшим выбором будет синхронный API. Однако если ваш сценарий предполагает высоконагруженную обработку, массовые запросы или крупномасштабную проверку данных, асинхронный API обеспечивает оптимизированную производительность с эффективным использованием пропускной способности и возможностью пакетных запросов.

Настройте API для использования одного из наших вариантов пользовательской маршрутизации для оптимизации скорости, точности и экономической эффективности. Вы также можете сохранять результаты запросов в хранилищах для удобной загрузки отчетов в форматах CSV и JSON, а также расширенной аналитики через веб-интерфейс.

Синхронный API для HLR-запросов

Конечная точка POST /hlr-lookup обрабатывает один номер мобильного телефона (MSISDN) на запрос и мгновенно возвращает результаты в теле HTTP-ответа. Результаты форматируются в JSON и идеально подходят для приложений реального времени, включая проверку мобильных номеров, маршрутизацию вызовов и доставку SMS-сообщений.

Синхронный вызов API состоит из прямого HTTP-запроса и ответа. Ваша система отправляет один MSISDN (мобильный номер) на запрос и получает немедленный ответ, содержащий результаты HLR-запроса в режиме реального времени в формате JSON. Этот API оптимизирован для сценариев, требующих мгновенной проверки и контроля подключения, таких как выявление мошенничества, маршрутизация VoIP-вызовов и оптимизация SMS-шлюзов.

API асинхронных HLR-запросов

Конечная точка POST /hlr-lookups предназначена для массовой и высоконагруженной обработки, позволяя отправлять до 1,000 MSISDN на один запрос. Вместо мгновенного возврата результатов этот API использует автоматические вебхуки для последовательной отправки результатов на ваш сервер. Результаты запросов возвращаются в виде JSON-объектов через HTTP POST-обратные вызовы.

Асинхронный API оптимизирован для скорости, эффективности и масштабируемости. Он устраняет проблемы сетевой задержки, связанные с синхронными вызовами, что делает его идеальным для компаний, нуждающихся в высокопроизводительных запросах. Ваша система отправляет до 1,000 MSISDN на запрос, а наша платформа обрабатывает их параллельно, возвращая результаты на ваш сервер через HTTP-вебхуки пакетами до 1,000 результатов на обратный вызов.

SDK (комплекты для разработки)

Наши комплекты для разработки (SDK) для PHP, NodeJS и Ruby упрощают процесс интеграции, позволяя эффективно подключаться к API HLR Lookups с минимальными усилиями.

Эти SDK предоставляют готовые функции, обработку аутентификации и структурированные шаблоны API-запросов, сокращая время разработки и обеспечивая соблюдение лучших практик.

Ознакомьтесь с полным списком доступных SDK на GitHub и начните интеграцию уже сегодня.

PHP PHP NodeJS NodeJS Ruby Ruby
Логотип PHP

SDK для PHP

Мгновенная интеграция API для PHP
1   include('HLRLookupClient.class.php');
2
3   $client = new HLRLookupClient(
4       'YOUR-API-KEY',
5       'YOUR-API-SECRET',
6       '/var/log/hlr-lookups.log'
7   );
8
9   $params = array('msisdn' => '+14156226819');
10  $response = $client->post('/hlr-lookup', $params);
Логотип NodeJS

SDK для NodeJS

Мгновенная интеграция API для NodeJS
1   require('node-hlr-client');
2
3   let response = await client.post('/hlr-lookup', {msisdn: '+491788735000'});
4
5   if (response.status === 200) {
6      // lookup was successful
7      let data = response.data;
8   }
Логотип Ruby

SDK для Ruby

Мгновенная интеграция API для Ruby
1   require 'ruby_hlr_client/client'
2
3   client = HlrLookupsSDK::Client.new(
4       'YOUR-API-KEY',
5       'YOUR-API-SECRET',
6       '/var/log/hlr-lookups.log'
7   )
8
9   params = { :msisdn => '+14156226819' }
10  response = client.get('/hlr-lookup', params)
Прокрутить вверх

POST/hlr-lookupзащищенный

Выполняет синхронный HLR-запрос, предоставляя данные о подключении и переносимости мобильного номера в режиме реального времени непосредственно от сетевых операторов. Этот эндпоинт идеален для сценариев работы с живым трафиком, где приложениям, критичным ко времени, требуется мгновенная проверка доступности номера телефона (подключен) или его недоступности (выключен). Кроме того, он помогает отличить активные номера от недействительных, неизвестных или поддельных.

Для массовой обработки больших объемов данных, не требующих мгновенных результатов, рассмотрите использование асинхронного POST /hlr-lookups, который оптимизирован для высокоскоростной пакетной обработки.

Если ваша основная задача - получение данных о переносимости мобильных номеров (MCCMNC) без необходимости проверки статуса подключения в реальном времени, POST /mnp-lookup предоставляет экономически выгодную альтернативу для запросов о переносимости номеров.

Запрос Успешный ответ Ответ с ошибкой Справочник статусов
curl -X POST 'https://www.hlr-lookups.com/api/v2/hlr-lookup' \
          -d "@payload.json"

Данные запроса

{
   "msisdn":"+14156226819",
   "route":null,
   "storage":null
}

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

Ключ Тип Описание По умолчанию Обязательный
msisdn string Номер мобильного телефона (MSISDN) для запроса в международном формате (например, +14156226819 или 0014156226819). Код страны обязателен. null обязательный
route string(3) Необязательный трехсимвольный идентификатор, указывающий маршрут для данного запроса. Установите значение null или пропустите этот параметр, чтобы применить вашу пользовательскую карту маршрутизации или позволить системе автоматически определить оптимальный маршрут для этого запроса. null необязательно
storage string Необязательный идентификатор хранилища, указывающий отчет, в котором будут сохранены результаты для ручной проверки, аналитики и отчетности. Система автоматически добавляет временную метку с текущим месяцем. Если параметр пропущен или установлен в null, система автоматически группирует результаты по месяцам для целей отчетности. null необязательно
{
   "id":"f94ef092cb53",
   "msisdn":"+14156226819",
   "connectivity_status":"CONNECTED",
   "mccmnc":"310260",
   "mcc":"310",
   "mnc":"260",
   "imsi":"***************",
   "msin":"**********",
   "msc":"************",
   "original_network_name":"Verizon Wireless",
   "original_country_name":"United States",
   "original_country_code":"US",
   "original_country_prefix":"+1",
   "is_ported":true,
   "ported_network_name":"T-Mobile US",
   "ported_country_name":"United States",
   "ported_country_code":"US",
   "ported_country_prefix":"+1",
   "is_roaming":false,
   "roaming_network_name":null,
   "roaming_country_name":null,
   "roaming_country_code":null,
   "roaming_country_prefix":null,
   "cost":"0.0100",
   "timestamp":"2020-08-07 19:16:17.676+0300",
   "storage":"SYNC-API-2020-08",
   "route":"IP1",
   "processing_status":"COMPLETED",
   "error_code":null,
   "error_description":null,
   "data_source":"LIVE_HLR",
   "routing_instruction":"STATIC:IP1"
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
id string(12) Уникальный идентификатор, присвоенный данному запросу на проверку. false
msisdn string Запрашиваемый номер мобильного телефона в международном формате (например, +14156226819 или 0014156226819). false
connectivity_status string Указывает, был ли успешно получен статус подключения номера. Возможные значения: CONNECTED , ABSENT , INVALID_MSISDN или UNDETERMINED . false
mccmnc string(5|6) Пяти- или шестизначный код страны мобильной связи (MCC) и код мобильной сети (MNC), идентифицирующие сеть, с которой в настоящее время связан номер телефона. true
mcc string(3) Трехзначный код страны мобильной связи (MCC), идентифицирующий страну, в которой зарегистрирован номер телефона. true
mnc string(2|3) Двух- или трехзначный код мобильной сети (MNC), идентифицирующий конкретную сеть, к которой принадлежит номер телефона. true
imsi string Международный идентификатор мобильного абонента (IMSI) - уникальный идентификатор SIM-карты, связанной с данным номером. Доступность зависит от конфигурации сети. true
msin string(10) Идентификационный номер мобильной подписки (MSIN) в базе данных оператора мобильной связи. Доступность зависит от конфигурации сети. true
msc string(12) Центр коммутации мобильной связи (MSC), в настоящее время обрабатывающий коммуникации данного абонента. Доступность зависит от конфигурации сети. true
original_network_name string Название исходного (родного) оператора сети, связанного с данным номером. true
original_country_name string Полное название страны, в которой был первоначально зарегистрирован номер мобильного телефона, на английском языке. true
original_country_code string(2) Двухбуквенный код страны по ISO, представляющий страну, в которой был впервые присвоен номер телефона. true
original_country_prefix string Международный телефонный код (код страны), соответствующий исходной стране номера мобильного телефона. true
is_ported boolean Указывает, был ли мобильный номер перенесен из исходной сети к другому оператору. true
ported_network_name string Название оператора сети, к которому был перенесен мобильный номер, если применимо. true
ported_country_name string Название страны, в которую был перенесен мобильный номер, если применимо. true
ported_country_code string(2) Двухбуквенный код страны по ISO, представляющий страну, в которую был перенесен мобильный номер, если применимо. true
ported_country_prefix string Международный телефонный код (код страны) для страны, в которую был перенесен мобильный номер, если применимо. true
is_roaming boolean Указывает, находится ли мобильный номер в настоящее время в роуминге в иностранной сети. Доступность информации о роуминге зависит от оператора мобильной связи. true
roaming_network_name string Название сети, в которой мобильный номер находится в роуминге в настоящее время, если применимо. true
roaming_country_name string Название страны, в которой мобильный номер находится в роуминге в настоящее время, если применимо. true
roaming_country_code string(2) Двухбуквенный код страны по ISO для страны, в которой мобильный номер находится в роуминге в настоящее время, если применимо. true
roaming_country_prefix string Международный телефонный код (код страны) для страны, в которой мобильный номер находится в роуминге в настоящее время, если применимо. true
cost string Десятичное значение, представленное в виде строки, указывающее стоимость проверки в EUR. true
timestamp string Временная метка в формате W3C с указанием часового пояса, определяющая время завершения проверки. true
storage string Название хранилища, в котором были сохранены результаты проверки. Соответствует названиям отчетов и CSV-загрузкам, доступным через веб-интерфейс. true
route string(3) Трехбуквенный идентификатор, указывающий метод маршрутизации, использованный для данного запроса на проверку. true
processing_status string Результат обработки проверки. Возможные значения: COMPLETED (успешно), REJECTED (сеть недоступна, оплата не взимается) или FAILED (произошла ошибка при обработке). false
error_code integer Необязательный внутренний код ошибки, предоставляющий дополнительную диагностическую информацию для службы поддержки клиентов. true
error_description string Краткое объяснение данного кода ошибки (если имеется) на английском языке в виде простого текста. true
data_source string Источник данных, использованный для данного запроса. Возможные значения: LIVE_HLR (запрос HLR в реальном времени) или MNP_DB (статическая база данных переносимости мобильных номеров). Подробности см. в разделе параметры маршрутизации. false
routing_instruction string Строка с разделителями-двоеточиями, описывающая инструкцию маршрутизации, использованную в запросе. Первый компонент - STATIC, если вы указали маршрут, или AUTO для автоматической маршрутизации; второй компонент - идентификатор маршрута, а для запросов с автоматической маршрутизацией третий компонент показывает источник, на основе которого принято решение о маршрутизации (т.е. SCORE, CUSTOM_GLOBAL_COUNTRY, CUSTOM_GLOBAL_MCCMNC, CUSTOM_GLOBAL_PREFIX, CUSTOM_USER_COUNTRY, CUSTOM_USER_MCCMNC, CUSTOM_USER_PREFIX, MNP_FALLBACK, PLATFORM_DEFAULT, USER_DEFAULT). false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Статус Описание
CONNECTED Номер действителен, и целевое устройство в настоящее время подключено к мобильной сети. Звонки, SMS и другие услуги должны успешно доставляться получателю.
ABSENT Номер действителен, но целевое устройство либо выключено, либо временно находится вне зоны покрытия сети. Сообщения или звонки могут не доставляться до тех пор, пока устройство не подключится к сети.
INVALID_MSISDN Номер недействителен или в настоящее время не присвоен ни одному абоненту в мобильной сети. Звонки и сообщения на этот номер будут неуспешными.
UNDETERMINED Статус подключения номера не удалось определить. Это может быть связано с недействительным номером, ошибкой SS7 или отсутствием связи с целевым оператором сети. Проверьте код ошибки и поле описания для получения дополнительной диагностической информации.
Прокрутить вверх

POST/hlr-lookupsзащищенный

Инициирует пакетную асинхронную HLR-проверку для получения актуальных данных о подключении мобильных телефонов и переносимости номеров от сетевых операторов. Результаты доставляются на ваш сервер через вебхуки. Этот метод оптимизирован для обработки больших объемов номеров, не требующих немедленного ответа, таких как очистка и верификация баз данных. Для приложений реального времени, таких как маршрутизация вызовов или доставка SMS, рекомендуется использовать эндпоинт POST /hlr-lookup.

Этот эндпоинт идеально подходит для массовой обработки, когда необходимо определить номера телефонов, которые в настоящее время доступны (подключены) или недоступны (телефон выключен), отфильтровав при этом недействительные, неназначенные или поддельные номера. Кроме того, предоставляется актуальный статус переносимости (MCCMNC) наряду с данными о подключении.

Перед использованием этого эндпоинта убедитесь, что настроен URL вебхука для асинхронного получения результатов проверки. Вы можете настроить это в настройках API.

Запрос Успешный ответ Ответ с ошибкой Вебхуки Справочник статусов
curl -X POST 'https://www.hlr-lookups.com/api/v2/hlr-lookups' \
          -d "@payload.json"

Данные запроса

{
   "msisdns":["+14156226819","+491788735000","+905536939460"],
   "route":null,
   "storage":null
}

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

Ключ Тип Описание По умолчанию Обязательный
msisdns array Массив номеров мобильных телефонов (MSISDN) в международном формате (например, +14156226819 или 0014156226819). Вы можете включить до 1000 номеров в один запрос. null обязательный
route string(3) Необязательный трехсимвольный идентификатор, указывающий маршрут для данного запроса. Установите значение null или пропустите этот параметр, чтобы применить вашу пользовательскую карту маршрутизации или позволить системе автоматически определить оптимальный маршрут для этого запроса. null необязательно
storage string Необязательный идентификатор хранилища, указывающий отчет, в котором будут сохранены результаты для ручной проверки, аналитики и отчетности. Система автоматически добавляет временную метку с текущим месяцем. Если параметр пропущен или установлен в null, система автоматически группирует результаты по месяцам для целей отчетности. null необязательно
{
   "accepted":[
      {
         "id":"0424928f332e",
         "msisdn":"+491788735000"
      }
   ],
   "accepted_count":1,
   "rejected":[
      {
         "id":null,
         "msisdn":"+31"
      }
   ],
   "rejected_count":1,
   "total_count":2,
   "cost":"0.01",
   "storage":"ASYNC-API-2020-08",
   "route":"IP1",
   "webhook_urls":[
      "https://your-server.com/endpoint"
   ]
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
accepted array Список объектов, содержащих уникальные идентификаторы и MSISDN, которые были приняты к обработке. false
accepted_count integer Общее количество MSISDN, успешно принятых к обработке. false
rejected array Список объектов, содержащих уникальные идентификаторы и MSISDN, которые были отклонены от обработки, как правило, из-за недействительных номеров. За отклоненные записи плата не взимается. false
rejected_count integer Общее количество MSISDN, отклоненных из-за ошибок валидации. false
total_count integer Общее количество принятых и отклоненных MSISDN, которые были отправлены на обработку. false
cost string Десятичное значение, представленное в виде строки, указывающее общую стоимость в EUR за принятые проверки. false
storage string Название хранилища, в которое добавляются результаты проверки, используемое для отчетности и загрузки CSV через веб-интерфейс. false
route string(3|4) Трех- или четырехсимвольный идентификатор, указывающий маршрут, используемый для этого запроса проверки. Содержит AUTO, если была запрошена автоматическая маршрутизация на основе номера. false
webhook_urls array URL-адреса вебхуков, настроенные в ваших настройках API. Результаты отправляются сюда. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false

Обработка вебхуков

После отправки наша платформа начинает обработку предоставленных номеров телефонов и отправляет результаты на ранее указанный URL вебхука на вашем сервере. Результаты передаются в виде HTTP POST запроса с JSON-объектом в теле запроса.

Аутентификация

Аутентифицируйте вебхук, проверив HTTP-заголовок X-Signatures.

Заголовок X-Signatures содержит список подписей, разделенных точкой с запятой. Каждая подпись в списке генерируется с использованием одного из API-секретов, настроенных в вашем аккаунте. Чтобы проверить вебхук, сгенерируйте SHA-256 хеш, используя ваш API-ключ, секрет и исходное тело HTTP-запроса, затем сравните его с подписями в списке.

Совпадение подтверждает, что запрос подлинный и подписан секретом, которым вы управляете.

PHP Пример кода

$signaturesHeader = (getallheaders() ?? [])['X-Signatures'] ?? ''; // list of signatures
$key = getenv('AUTH_KEY'); // Your API Key
$secret = getenv('AUTH_SECRET'); // Your API Secret
$payload = file_get_contents('php://input'); // The HTTP body of the incoming POST request

// Generate the expected signature
$expectedSignature = hash('sha256', $key . $secret . $payload);

// Split the header into individual signatures
$providedSignatures = explode(';', $signaturesHeader);

// Check if any signature matches
$valid = false;
foreach ($providedSignatures as $sig) {
    if (hash_equals($expectedSignature, $sig)) {
        $valid = true;
        break;
    }
}

Запрос действителен, если любая из подписей в заголовке совпадает с SHA256 хешем, вычисленным для объединенной строки вашего API-ключа, секрета и тела HTTP-запроса.

Подтверждение получения

Ожидается, что ваш сервер ответит HTTP-кодом состояния 200 OK для подтверждения успешного получения. Если возвращается любой другой код ответа, происходит таймаут (10 секунд) или возникает любая другая проблема с доставкой, система автоматически повторит попытку отправки вебхука через одну минуту. Если запрос продолжает завершаться неудачей, повторные попытки будут следовать стратегии экспоненциальной задержки с последующими попытками через 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 минут.

Этот механизм повторных попыток обеспечивает максимальную надежность доставки результатов запросов в вашу инфраструктуру. Он минимизирует риск потери данных из-за временных проблем с сетью или простоя сервера.

Полезная нагрузка вебхука

{
   "type":"HLR",
   "results":[
      {
         "id":"3b4ac4b6ed1b",
         "msisdn":"+905536939460",
         "connectivity_status":"CONNECTED",
         "mccmnc":"28603",
         "mcc":"286",
         "mnc":"03",
         "imsi":"28603XXXXXXXXXX",
         "msin":"XXXXXXXXXX",
         "msc":"XXXXXXXXXX",
         "original_network_name":"Turk Telekom (AVEA)",
         "original_country_name":"Turkey",
         "original_country_code":"TR",
         "original_country_prefix":"+90",
         "is_ported":false,
         "ported_network_name":null,
         "ported_country_name":null,
         "ported_country_code":null,
         "ported_country_prefix":null,
         "is_roaming":false,
         "roaming_network_name":null,
         "roaming_country_name":null,
         "roaming_country_code":null,
         "roaming_country_prefix":null,
         "cost":"0.0100",
         "timestamp":"2020-08-13 00:04:38.261+0300",
         "storage":"ASYNC-API-2020-08",
         "route":"IP1",
         "processing_status":"COMPLETED",
         "error_code":null,
         "error_description":null,
         "data_source":"LIVE_HLR",
         "routing_instruction":"STATIC:IP1"
      }
   ]
}

Атрибуты полезной нагрузки вебхука

Объект JSON содержит атрибут type => HLR наряду с атрибутом results, который включает список объектов проверки, как описано ниже.

Имя Тип Описание Допускает null
id string(12) Уникальный идентификатор, присвоенный данному запросу на проверку. false
msisdn string Запрашиваемый номер мобильного телефона в международном формате (например, +14156226819 или 0014156226819). false
connectivity_status string Указывает, был ли успешно получен статус подключения номера. Возможные значения: CONNECTED , ABSENT , INVALID_MSISDN или UNDETERMINED . false
mccmnc string(5|6) Пяти- или шестизначный код страны мобильной связи (MCC) и код мобильной сети (MNC), идентифицирующие сеть, с которой в настоящее время связан номер телефона. true
mcc string(3) Трехзначный код страны мобильной связи (MCC), идентифицирующий страну, в которой зарегистрирован номер телефона. true
mnc string(2|3) Двух- или трехзначный код мобильной сети (MNC), идентифицирующий конкретную сеть, к которой принадлежит номер телефона. true
imsi string Международный идентификатор мобильного абонента (IMSI) - уникальный идентификатор SIM-карты, связанной с данным номером. Доступность зависит от конфигурации сети. true
msin string(10) Идентификационный номер мобильной подписки (MSIN) в базе данных оператора мобильной связи. Доступность зависит от конфигурации сети. true
msc string(12) Центр коммутации мобильной связи (MSC), в настоящее время обрабатывающий коммуникации данного абонента. Доступность зависит от конфигурации сети. true
original_network_name string Название исходного (родного) оператора сети, связанного с данным номером. true
original_country_name string Полное название страны, в которой был первоначально зарегистрирован номер мобильного телефона, на английском языке. true
original_country_code string(2) Двухбуквенный код страны по ISO, представляющий страну, в которой был впервые присвоен номер телефона. true
original_country_prefix string Международный телефонный код (код страны), соответствующий исходной стране номера мобильного телефона. true
is_ported boolean Указывает, был ли мобильный номер перенесен из исходной сети к другому оператору. true
ported_network_name string Название оператора сети, к которому был перенесен мобильный номер, если применимо. true
ported_country_name string Название страны, в которую был перенесен мобильный номер, если применимо. true
ported_country_code string(2) Двухбуквенный код страны по ISO, представляющий страну, в которую был перенесен мобильный номер, если применимо. true
ported_country_prefix string Международный телефонный код (код страны) для страны, в которую был перенесен мобильный номер, если применимо. true
is_roaming boolean Указывает, находится ли мобильный номер в настоящее время в роуминге в иностранной сети. Доступность информации о роуминге зависит от оператора мобильной связи. true
roaming_network_name string Название сети, в которой мобильный номер находится в роуминге в настоящее время, если применимо. true
roaming_country_name string Название страны, в которой мобильный номер находится в роуминге в настоящее время, если применимо. true
roaming_country_code string(2) Двухбуквенный код страны по ISO для страны, в которой мобильный номер находится в роуминге в настоящее время, если применимо. true
roaming_country_prefix string Международный телефонный код (код страны) для страны, в которой мобильный номер находится в роуминге в настоящее время, если применимо. true
cost string Десятичное значение, представленное в виде строки, указывающее стоимость проверки в EUR. true
timestamp string Временная метка в формате W3C с указанием часового пояса, определяющая время завершения проверки. true
storage string Название хранилища, в котором были сохранены результаты проверки. Соответствует названиям отчетов и CSV-загрузкам, доступным через веб-интерфейс. true
route string(3) Трехбуквенный идентификатор, указывающий метод маршрутизации, использованный для данного запроса на проверку. true
processing_status string Результат обработки проверки. Возможные значения: COMPLETED (успешно), REJECTED (сеть недоступна, оплата не взимается) или FAILED (произошла ошибка при обработке). false
error_code integer Необязательный внутренний код ошибки, предоставляющий дополнительную диагностическую информацию для службы поддержки клиентов. true
error_description string Краткое объяснение данного кода ошибки (если имеется) на английском языке в виде простого текста. true
data_source string Источник данных, использованный для данного запроса. Возможные значения: LIVE_HLR (запрос HLR в реальном времени) или MNP_DB (статическая база данных переносимости мобильных номеров). Подробности см. в разделе параметры маршрутизации. false
routing_instruction string Строка с разделителями-двоеточиями, описывающая инструкцию маршрутизации, использованную в запросе. Первый компонент - STATIC, если вы указали маршрут, или AUTO для автоматической маршрутизации; второй компонент - идентификатор маршрута, а для запросов с автоматической маршрутизацией третий компонент показывает источник, на основе которого принято решение о маршрутизации (т.е. SCORE, CUSTOM_GLOBAL_COUNTRY, CUSTOM_GLOBAL_MCCMNC, CUSTOM_GLOBAL_PREFIX, CUSTOM_USER_COUNTRY, CUSTOM_USER_MCCMNC, CUSTOM_USER_PREFIX, MNP_FALLBACK, PLATFORM_DEFAULT, USER_DEFAULT). false
Статус Описание
CONNECTED Номер действителен, и целевое устройство в настоящее время подключено к мобильной сети. Звонки, SMS и другие услуги должны успешно доставляться получателю.
ABSENT Номер действителен, но целевое устройство либо выключено, либо временно находится вне зоны покрытия сети. Сообщения или звонки могут не доставляться до тех пор, пока устройство не подключится к сети.
INVALID_MSISDN Номер недействителен или в настоящее время не присвоен ни одному абоненту в мобильной сети. Звонки и сообщения на этот номер будут неуспешными.
UNDETERMINED Статус подключения номера не удалось определить. Это может быть связано с недействительным номером, ошибкой SS7 или отсутствием связи с целевым оператором сети. Проверьте код ошибки и поле описания для получения дополнительной диагностической информации.
Прокрутить вверх

POST/mnp-lookupзащищенный

Выполняет синхронный MNP-запрос и предоставляет информацию о переносимости мобильных номеров и сети. Этот endpoint подходит, если ваша основная цель - получить текущий MCCMNC заданного номера мобильного телефона и определить исходную и текущую сети в режиме реального времени.

Для массовой обработки больших объемов данных, не требующих мгновенных результатов, рассмотрите использование асинхронного POST /mnp-lookups, который оптимизирован для высокоскоростной пакетной обработки.

MNP-запросы надежно определяют информацию о переносимости и сети, но не указывают, подключен ли целевой мобильный телефон к сети в данный момент и доступен ли он. Чтобы получить информацию о текущей доступности, используйте endpoint POST /hlr-lookup.

Запрос Успешный ответ Ответ с ошибкой
curl -X POST 'https://www.hlr-lookups.com/api/v2/mnp-lookup' \
          -d "@payload.json"

Данные запроса

{
   "msisdn":"+14156226819",
   "route":null,
   "storage":null
}

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

Ключ Тип Описание По умолчанию Обязательный
msisdn string Номер мобильного телефона (MSISDN) для запроса в международном формате (например, +14156226819 или 0014156226819). Код страны обязателен. null обязательный
route string(3) Необязательный трехсимвольный идентификатор, указывающий маршрут для данного запроса. Установите значение null или пропустите этот параметр, чтобы применить вашу пользовательскую карту маршрутизации или позволить системе автоматически определить оптимальный маршрут для этого запроса. null необязательно
storage string Необязательный идентификатор хранилища, указывающий отчет, в котором будут сохранены результаты для ручной проверки, аналитики и отчетности. Система автоматически добавляет временную метку с текущим месяцем. Если параметр пропущен или установлен в null, система автоматически группирует результаты по месяцам для целей отчетности. null необязательно
{
   "id":"e428acb1c0ae",
   "msisdn":"+14156226819",
   "query_status":"OK",
   "mccmnc":"310260",
   "mcc":"310",
   "mnc":"260",
   "is_ported":true,
   "original_network_name":"Verizon Wireless:6006 - SVR/2",
   "original_country_name":"United States",
   "original_country_code":"US",
   "original_country_prefix":"+1415",
   "ported_network_name":"T-Mobile US:6529 - SVR/2",
   "ported_country_name":"United States",
   "ported_country_code":"US",
   "ported_country_prefix":"+1",
   "extra":"LRN:4154250000",
   "cost":"0.0050",
   "timestamp":"2020-08-05 21:21:33.490+0300",
   "storage":"WEB-CLIENT-SOLO-MNP-2020-08",
   "route":"PTX",
   "error_code":null
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
id string(12) Уникальный 12-символьный идентификатор данного запроса. false
msisdn string Номер мобильного телефона, проверенный в рамках данного запроса. false
query_status string Указывает, успешно ли получена информация о переносимости и сети. Возможные значения: OK или FAILED. false
mccmnc string(5|6) Пяти- или шестисимвольный MCCMNC (комбинация кода страны мобильной связи и кода мобильной сети), определяющий сеть, к которой в настоящее время принадлежит номер мобильного телефона. true
mcc string(3) Трехсимвольный MCC (код страны мобильной связи), представляющий страну, связанную с текущей сетью номера мобильного телефона. true
mnc string(2|3) Двух- или трехсимвольный MNC (код мобильной сети), определяющий текущего сетевого оператора для номера мобильного телефона. true
is_ported boolean Указывает, был ли номер телефона перенесен из исходной сети к новому оператору. true
original_network_name string Произвольная строка (на английском языке), указывающая название исходного сетевого оператора проверяемого номера мобильного телефона. true
original_country_name string Произвольная строка (на английском языке), указывающая исходную страну проверяемого номера мобильного телефона. true
original_country_code string(2) Двухсимвольный код страны по ISO, представляющий исходную страну проверяемого номера мобильного телефона. true
original_country_prefix string Телефонный код исходной страны, связанной с проверяемым номером мобильного телефона. true
ported_network_name string Указывает сетевого оператора, к которому был перенесен проверяемый номер мобильного телефона, если применимо. true
ported_country_name string Указывает страну, в которую был перенесен проверяемый номер мобильного телефона, если применимо. true
ported_country_code string(2) Двухсимвольный код страны по ISO, представляющий страну, в которую был перенесен проверяемый номер мобильного телефона, если применимо. true
ported_country_prefix string Телефонный код страны, в которую был перенесен проверяемый номер мобильного телефона, если применимо. true
extra string Произвольная строка с дополнительными сведениями о номере телефона (необязательно). true
cost string Десятичное значение в виде строки, указывающее стоимость данного запроса в EUR. true
timestamp string Временная метка в формате W3C с указанием часового пояса, определяющая момент завершения запроса. true
storage string Название хранилища (или отчета), к которому были добавлены результаты запроса. Используется для загрузки CSV и формирования отчетов через веб-интерфейс. true
route string(3) Трехсимвольный идентификатор, указывающий маршрут, использованный для данного запроса. true
error_code integer Необязательный внутренний код ошибки для диагностики службой поддержки клиентов. true
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

POST/mnp-lookupsзащищенный

Инициирует пакетную асинхронную проверку MNP (переносимости мобильных номеров), получая актуальный MCCMNC и определяя исходную и текущую сети в режиме реального времени. Результаты доставляются на ваш сервер через вебхуки. Этот метод оптимизирован для обработки больших объемов номеров, не требующих немедленного ответа, таких как очистка и верификация баз данных. Для приложений реального времени, таких как маршрутизация вызовов или доставка SMS, рекомендуется использовать эндпоинт POST /mnp-lookup.

MNP-запросы надежно определяют информацию о переносимости и сети, но не указывают, подключен ли целевой мобильный телефон к сети в данный момент и доступен ли он. Чтобы получить информацию о текущей доступности, используйте endpoint POST /hlr-lookups.

Перед использованием этого эндпоинта убедитесь, что настроен URL вебхука для асинхронного получения результатов проверки. Вы можете настроить это в настройках API.

Запрос Успешный ответ Ответ с ошибкой Вебхуки
curl -X POST 'https://www.hlr-lookups.com/api/v2/mnp-lookups' \
          -d "@payload.json"

Данные запроса

{
   "msisdns":["+14156226819","+491788735000","+905536939460"],
   "route":null,
   "storage":null
}

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

Ключ Тип Описание По умолчанию Обязательный
msisdns array Массив номеров мобильных телефонов (MSISDN) в международном формате (например, +14156226819 или 0014156226819). Вы можете включить до 1000 номеров в один запрос. null обязательный
route string(3) Необязательный трехсимвольный идентификатор, указывающий маршрут для данного запроса. Установите значение null или не указывайте этот параметр, чтобы применить вашу пользовательскую карту маршрутизации или позволить системе автоматически определить оптимальные маршруты для этого запроса. null необязательно
storage string Необязательный идентификатор хранилища, указывающий отчет, в котором будут сохранены результаты для ручной проверки, аналитики и отчетности. Система автоматически добавляет временную метку с текущим месяцем. Если параметр пропущен или установлен в null, система автоматически группирует результаты по месяцам для целей отчетности. null необязательно
{
   "accepted":[
      {
         "id":"0424928f332e",
         "msisdn":"+491788735000"
      }
   ],
   "accepted_count":1,
   "rejected":[
      {
         "id":null,
         "msisdn":"+31"
      }
   ],
   "rejected_count":1,
   "total_count":2,
   "cost":"0.01",
   "storage":"ASYNC-API-2020-08",
   "route":"IP1",
   "webhook_urls":[
      "https://your-server.com/endpoint"
   ]
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
accepted array Список объектов, содержащих уникальные идентификаторы и MSISDN, которые были приняты к обработке. false
accepted_count integer Общее количество MSISDN, успешно принятых к обработке. false
rejected array Список объектов, содержащих уникальные идентификаторы и MSISDN, которые были отклонены от обработки, как правило, из-за недействительных номеров. За отклоненные записи плата не взимается. false
rejected_count integer Общее количество MSISDN, отклоненных из-за ошибок валидации. false
total_count integer Общее количество принятых и отклоненных MSISDN, которые были отправлены на обработку. false
cost string Десятичное значение, представленное в виде строки, указывающее общую стоимость в EUR за принятые проверки. false
storage string Название хранилища, в которое добавляются результаты проверки, используемое для отчетности и загрузки CSV через веб-интерфейс. false
route string(3) Трехсимвольный идентификатор, указывающий маршрут, использованный для данного запроса. false
webhook_urls array URL-адреса вебхуков, настроенные в ваших настройках API. Результаты отправляются сюда. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false

Обработка вебхуков

После отправки наша платформа начинает обработку предоставленных номеров телефонов и отправляет результаты на ранее указанный URL вебхука на вашем сервере. Результаты передаются в виде HTTP POST запроса с JSON-объектом в теле запроса.

Аутентификация

Аутентифицируйте вебхук, проверив HTTP-заголовок X-Signatures.

Заголовок X-Signatures содержит список подписей, разделенных точкой с запятой. Каждая подпись в списке генерируется с использованием одного из API-секретов, настроенных в вашем аккаунте. Чтобы проверить вебхук, сгенерируйте SHA-256 хеш, используя ваш API-ключ, секрет и исходное тело HTTP-запроса, затем сравните его с подписями в списке.

Совпадение подтверждает, что запрос подлинный и подписан секретом, которым вы управляете.

PHP Пример кода

$signaturesHeader = (getallheaders() ?? [])['X-Signatures'] ?? ''; // list of signatures
$key = getenv('AUTH_KEY'); // Your API Key
$secret = getenv('AUTH_SECRET'); // Your API Secret
$payload = file_get_contents('php://input'); // The HTTP body of the incoming POST request

// Generate the expected signature
$expectedSignature = hash('sha256', $key . $secret . $payload);

// Split the header into individual signatures
$providedSignatures = explode(';', $signaturesHeader);

// Check if any signature matches
$valid = false;
foreach ($providedSignatures as $sig) {
    if (hash_equals($expectedSignature, $sig)) {
        $valid = true;
        break;
    }
}

Запрос действителен, если любая из подписей в заголовке совпадает с SHA256 хешем, вычисленным для объединенной строки вашего API-ключа, секрета и тела HTTP-запроса.

Подтверждение получения

Ожидается, что ваш сервер ответит HTTP-кодом состояния 200 OK для подтверждения успешного получения. Если возвращается любой другой код ответа, происходит таймаут (10 секунд) или возникает любая другая проблема с доставкой, система автоматически повторит попытку отправки вебхука через одну минуту. Если запрос продолжает завершаться неудачей, повторные попытки будут следовать стратегии экспоненциальной задержки с последующими попытками через 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 минут.

Этот механизм повторных попыток обеспечивает максимальную надежность доставки результатов запросов в вашу инфраструктуру. Он минимизирует риск потери данных из-за временных проблем с сетью или простоя сервера.

Полезная нагрузка вебхука

{
    "type":"MNP",
    "results":[
        {
           "id":"e428acb1c0ae",
           "msisdn":"+14156226819",
           "query_status":"OK",
           "mccmnc":"310260",
           "mcc":"310",
           "mnc":"260",
           "is_ported":true,
           "original_network_name":"Verizon Wireless:6006 - SVR/2",
           "original_country_name":"United States",
           "original_country_code":"US",
           "original_country_prefix":"+1415",
           "ported_network_name":"T-Mobile US:6529 - SVR/2",
           "ported_country_name":"United States",
           "ported_country_code":"US",
           "ported_country_prefix":"+1",
           "extra":"LRN:4154250000",
           "cost":"0.0050",
           "timestamp":"2020-08-05 21:21:33.490+0300",
           "storage":"WEB-CLIENT-SOLO-MNP-2020-08",
           "route":"PTX",
           "error_code":null
        }
    ]
}

Атрибуты полезной нагрузки вебхука

Объект JSON содержит атрибут type => MNP наряду с атрибутом results, который включает список объектов проверки, как описано ниже.

Имя Тип Описание Допускает null
id string(12) Уникальный 12-символьный идентификатор данного запроса. false
msisdn string Номер мобильного телефона, проверенный в рамках данного запроса. false
query_status string Указывает, успешно ли получена информация о переносимости и сети. Возможные значения: OK или FAILED. false
mccmnc string(5|6) Пяти- или шестисимвольный MCCMNC (комбинация кода страны мобильной связи и кода мобильной сети), определяющий сеть, к которой в настоящее время принадлежит номер мобильного телефона. true
mcc string(3) Трехсимвольный MCC (код страны мобильной связи), представляющий страну, связанную с текущей сетью номера мобильного телефона. true
mnc string(2|3) Двух- или трехсимвольный MNC (код мобильной сети), определяющий текущего сетевого оператора для номера мобильного телефона. true
is_ported boolean Указывает, был ли номер телефона перенесен из исходной сети к новому оператору. true
original_network_name string Произвольная строка (на английском языке), указывающая название исходного сетевого оператора проверяемого номера мобильного телефона. true
original_country_name string Произвольная строка (на английском языке), указывающая исходную страну проверяемого номера мобильного телефона. true
original_country_code string(2) Двухсимвольный код страны по ISO, представляющий исходную страну проверяемого номера мобильного телефона. true
original_country_prefix string Телефонный код исходной страны, связанной с проверяемым номером мобильного телефона. true
ported_network_name string Указывает сетевого оператора, к которому был перенесен проверяемый номер мобильного телефона, если применимо. true
ported_country_name string Указывает страну, в которую был перенесен проверяемый номер мобильного телефона, если применимо. true
ported_country_code string(2) Двухсимвольный код страны по ISO, представляющий страну, в которую был перенесен проверяемый номер мобильного телефона, если применимо. true
ported_country_prefix string Телефонный код страны, в которую был перенесен проверяемый номер мобильного телефона, если применимо. true
extra string Произвольная строка с дополнительными сведениями о номере телефона (необязательно). true
cost string Десятичное значение в виде строки, указывающее стоимость данного запроса в EUR. true
timestamp string Временная метка в формате W3C с указанием часового пояса, определяющая момент завершения запроса. true
storage string Название хранилища (или отчета), к которому были добавлены результаты запроса. Используется для загрузки CSV и формирования отчетов через веб-интерфейс. true
route string(3) Трехсимвольный идентификатор, указывающий маршрут, использованный для данного запроса. true
error_code integer Необязательный внутренний код ошибки для диагностики службой поддержки клиентов. true
Прокрутить вверх

POST/nt-lookupзащищенный

Выполняет синхронный запрос типа номера (NT). Этот эндпоинт идеально подходит, если ваша основная цель - определить в режиме реального времени, принадлежат ли указанные телефонные номера к диапазонам стационарных, мобильных, премиум, VoIP, пейджеров или других категорий плана нумерации.

NT-запросы надежно определяют тип телефонного номера, однако они не показывают, подключен ли целевой номер к сети в данный момент и доступен ли для связи. Для получения информации о текущей доступности используйте эндпоинт POST /hlr-lookup.

Если вашему сценарию требуется точная информация о сети и переносимости (MCCMNC), но не статус текущей доступности, используйте эндпоинт POST /mnp-lookup для запросов переносимости мобильных номеров.

Запрос Успешный ответ Ответ с ошибкой Справочник типов
curl -X POST 'https://www.hlr-lookups.com/api/v2/nt-lookup' \
          -d "@payload.json"

Данные запроса

{
   "number":"+14156226819",
   "route":null,
   "storage":null
}

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

Ключ Тип Описание По умолчанию Обязательный
number string Телефонный номер в международном формате (например, +4989702626 или 004989702626). null mandatory
route string(3) Необязательный трехсимвольный идентификатор, указывающий маршрут для данного запроса. Установите значение null или не указывайте этот параметр, чтобы применить вашу пользовательскую карту маршрутизации или позволить системе автоматически определить оптимальные маршруты для данного запроса. null необязательно
storage string Необязательный идентификатор хранилища, указывающий отчет, в котором будут сохранены результаты для ручной проверки, аналитики и отчетности. Система автоматически добавляет временную метку с текущим месяцем. Если параметр пропущен или установлен в null, система автоматически группирует результаты по месяцам для целей отчетности. null необязательно
{
     "id":"2ed0788379c6",
     "number":"+4989702626",
     "number_type":"LANDLINE",
     "query_status":"OK",
     "is_valid":true,
     "invalid_reason":null,
     "is_possibly_ported":false,
     "is_vanity_number":false,
     "qualifies_for_hlr_lookup":false,
     "mccmnc":null,
     "mcc":null,
     "mnc":null,
     "original_network_name":null,
     "original_country_name":"Germany",
     "original_country_code":"DE",
     "regions":[
        "Munich"
     ],
     "timezones":[
        "Europe/Berlin"
     ],
     "info_text":"This is a landline number.",
     "cost":"0.0050",
     "timestamp":"2015-12-04 10:36:41.866283+00",
     "storage":"SYNC-API-NT-2015-12",
     "route":"LC1"
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
id string(12) Уникальный идентификатор, присвоенный данному запросу на проверку. false
number string Номер телефона, который был проверен в рамках данного запроса. false
number_type string Определенный тип номера. Возможные значения: LANDLINE , MOBILE , MOBILE_OR_LANDLINE , TOLL_FREE , PREMIUM_RATE , SHARED_COST , VOIP , PAGER , UAN , VOICEMAIL , UNKNOWN . false
query_status string Указывает, была ли успешно получена информация о типе номера. Возвращает OK в случае успеха или FAILED в случае неудачи. false
is_valid boolean Указывает, является ли номер телефона синтаксически корректным. true
invalid_reason string Текстовое сообщение на английском языке, объясняющее, почему номер телефона считается некорректным (например, "too short" или "invalid prefix"), или null, если номер корректен. true
is_possibly_ported boolean Указывает, мог ли номер телефона быть перенесен от первоначального оператора к другому оператору связи. Для получения точной информации о переносимости используйте MNP-запросы. true
is_vanity_number boolean Указывает, является ли номер телефона буквенно-цифровым, то есть содержит буквенные символы. true
qualifies_for_hlr_lookup boolean Указывает, подходит ли номер телефона для дополнительных запросов через HLR-проверки. true
mccmnc string(5|6) Строка из пяти или шести символов, представляющая кортеж MCCMNC (код страны мобильной связи и код мобильной сети), который идентифицирует исходную сеть мобильного номера телефона. true
mcc string(3) Строка из трех символов, представляющая MCC (код страны мобильной связи), который идентифицирует страну, связанную с исходной мобильной сетью номера телефона. true
mnc string(2|3) Строка из двух или трех символов, представляющая MNC (код мобильной сети), который идентифицирует исходного оператора мобильной сети номера телефона. true
original_network_name string Произвольная текстовая строка на английском языке, указывающая название исходного оператора сети проверяемого мобильного номера телефона. true
original_country_name string Произвольная текстовая строка на английском языке, указывающая исходную страну, связанную с проверяемым мобильным номером телефона. true
original_country_code string(2) Двухсимвольный код страны по ISO, указывающий исходную страну проверяемого мобильного номера телефона. true
regions array Список читаемых строк на английском языке, указывающих географический регион (регионы), связанный с данным номером телефона. true
timezones array Список часовых поясов (в формате Olson), связанных с данным номером телефона. true
info_text string Произвольная строка, которая может содержать дополнительную информацию о номере телефона. true
cost string Десятичное значение, представленное в виде строки, указывающее стоимость (в EUR) данного запроса. true
timestamp string Временная метка в формате W3C (включая часовой пояс), указывающая, когда был завершен запрос. true
storage string Указывает название хранилища, в которое были добавлены результаты запроса. Это соответствует названию отчета, используемому для загрузки CSV и аналитики через веб-интерфейс. true
route string(3) Трехсимвольный идентификатор, указывающий маршрут, использованный для данного запроса. true
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Тип Описание
LANDLINE Стационарный телефонный номер.
MOBILE Мобильный телефонный номер. Подходит для HLR-запросов для получения дополнительной информации о статусе подключения, сети, переносимости и роуминге.
MOBILE_OR_LANDLINE Стационарный или мобильный телефонный номер. Может подходить для HLR-запроса.
TOLL_FREE Бесплатный телефонный номер.
PREMIUM_RATE Телефонный номер с повышенной тарификацией.
SHARED_COST Телефонный номер с распределением стоимости. Обычно дешевле, чем номера с повышенной тарификацией.
VOIP IP-телефонный номер. Включает TSoIP-номера (телефония через IP).
PAGER Номер пейджера. Обычно без функции голосовой связи.
UAN Универсальный номер доступа (корпоративный номер). Может перенаправляться в конкретные офисы, но позволяет использовать один номер для всей компании.
VOICEMAIL Номер голосовой почты.
UNKNOWN Не удалось определить тип номера.
Прокрутить вверх

POST/nt-lookups защищенный

Этот эндпоинт запускает серию асинхронных проверок типа номера с отправкой результатов на ваш сервер через webhook. Подходит, если ваша основная цель - определить, относятся ли указанные телефонные номера к стационарным, мобильным, премиум-тарифам, VoIP, пейджерам или другим диапазонам нумерации. Оптимизирован для быстрой обработки больших объемов номеров, этот эндпоинт идеален для массовых операций (например, очистки базы данных). Для обработки реального трафика и критичных по времени сценариев используйте эндпоинт POST /nt-lookup.

Для использования этого эндпоинта необходимо указать URL webhook в настройках API.

Запрос Успешный ответ Ответ с ошибкой Вебхуки Справочник типов
curl -X POST 'https://www.hlr-lookups.com/api/v2/nt-lookups' \
          -d "@payload.json"

Данные запроса

{
   "numbers":["+14156226819","+4989702626"],
   "route":null,
   "storage":null
}

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

Ключ Тип Описание По умолчанию Обязательный
numbers array Массив телефонных номеров в международном формате (например, +14156226819 или 004989702626). В одном запросе можно указать максимум 1000 номеров. null обязательный
route string(3) Необязательный трехсимвольный идентификатор, указывающий маршрут для этой проверки. Установите значение null или не указывайте этот параметр, чтобы применить вашу пользовательскую карту маршрутизации или позволить системе автоматически определить оптимальный маршрут для запроса. null необязательно
storage string Необязательный идентификатор хранилища, указывающий отчет, в котором будут сохранены результаты для ручной проверки, аналитики и отчетности. Система автоматически добавляет временную метку с текущим месяцем. Если параметр пропущен или установлен в null, система автоматически группирует результаты по месяцам для целей отчетности. null необязательно
{
   "accepted":[
      {
         "id":"9f8a52cfa7d2",
         "number":"+905536939460"
      }
   ],
   "accepted_count":1,
   "rejected":[
      {
         "id":null,
         "number":"+31"
      }
   ],
   "rejected_count":2,
   "total_count":3,
   "cost":0.005,
   "storage":"ASYNC-API-NT-2020-08",
   "route":"LC1",
   "webhook_urls":[
      "https://your-server.com/endpoint"
   ]
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
accepted array Массив объектов, каждый из которых содержит уникальный идентификатор и телефонный номер, принятый к обработке. false
accepted_count integer Общее количество телефонных номеров, принятых к обработке. false
rejected array Массив объектов, каждый из которых содержит уникальный идентификатор и телефонный номер, отклоненный от обработки. Обычно это недействительные номера, за которые плата не взимается. false
rejected_count integer Общее количество телефонных номеров, отклоненных от обработки. false
total_count integer Общее количество принятых и отклоненных телефонных номеров, отправленных на обработку. false
cost string Строка с десятичным значением, указывающим стоимость этих проверок в EUR. false
storage string Название хранилища (отчета), в которое добавлены результаты проверки. Это название используется для загрузки CSV и аналитики через веб-интерфейс. false
route string(3) Трехсимвольный идентификатор, указывающий маршрут, использованный для этого запроса проверки. false
webhook_urls array URL-адреса вебхуков, настроенные в ваших настройках API. Результаты отправляются сюда. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false

Обработка вебхуков

После отправки наша платформа начинает обработку предоставленных номеров телефонов и отправляет результаты на ранее указанный URL вебхука на вашем сервере. Результаты передаются в виде HTTP POST запроса с JSON-объектом в теле запроса.

Аутентификация

Аутентифицируйте вебхук, проверив HTTP-заголовок X-Signatures.

Заголовок X-Signatures содержит список подписей, разделенных точкой с запятой. Каждая подпись в списке генерируется с использованием одного из API-секретов, настроенных в вашем аккаунте. Чтобы проверить вебхук, сгенерируйте SHA-256 хеш, используя ваш API-ключ, секрет и исходное тело HTTP-запроса, затем сравните его с подписями в списке.

Совпадение подтверждает, что запрос подлинный и подписан секретом, которым вы управляете.

PHP Пример кода

$signaturesHeader = (getallheaders() ?? [])['X-Signatures'] ?? ''; // list of signatures
$key = getenv('AUTH_KEY'); // Your API Key
$secret = getenv('AUTH_SECRET'); // Your API Secret
$payload = file_get_contents('php://input'); // The HTTP body of the incoming POST request

// Generate the expected signature
$expectedSignature = hash('sha256', $key . $secret . $payload);

// Split the header into individual signatures
$providedSignatures = explode(';', $signaturesHeader);

// Check if any signature matches
$valid = false;
foreach ($providedSignatures as $sig) {
    if (hash_equals($expectedSignature, $sig)) {
        $valid = true;
        break;
    }
}

Запрос действителен, если любая из подписей в заголовке совпадает с SHA256 хешем, вычисленным для объединенной строки вашего API-ключа, секрета и тела HTTP-запроса.

Подтверждение получения

Ожидается, что ваш сервер ответит HTTP-кодом состояния 200 OK для подтверждения успешного получения. Если возвращается любой другой код ответа, происходит таймаут (10 секунд) или возникает любая другая проблема с доставкой, система автоматически повторит попытку отправки вебхука через одну минуту. Если запрос продолжает завершаться неудачей, повторные попытки будут следовать стратегии экспоненциальной задержки с последующими попытками через 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024 минут.

Этот механизм повторных попыток обеспечивает максимальную надежность доставки результатов запросов в вашу инфраструктуру. Он минимизирует риск потери данных из-за временных проблем с сетью или простоя сервера.

Полезная нагрузка вебхука

{
   "type":"NT",
   "results":[
      {
         "id":"9f8a52cfa7d2",
         "number":"+905536939460",
         "numbertype":"MOBILE",
         "state":"COMPLETED",
         "isvalid":"Yes",
         "invalidreason":null,
         "ispossiblyported":"Yes",
         "isvanitynumber":"No",
         "qualifiesforhlrlookup":"Yes",
         "originalcarrier":"Turk Telekom (AVEA)",
         "mccmnc":"28603",
         "mcc":"286",
         "mnc":"03",
         "countrycode":"TR",
         "regions":[
            "Turkey"
         ],
         "timezones":[
            "Europe\/Istanbul"
         ],
         "infotext":"This number qualifies for HLR lookups. Determine if this subscriber number is connected, absent or invalid by running an HLR lookup. This is a mobile number and might be in roaming state. Run an HLR lookup to obtain roaming information (if available). This number is possibly ported and the carrier information might be inaccurate. To obtain portability information run an HLR lookup.",
         "usercharge":"0.0050",
         "inserttime":"2020-08-13 01:57:15.897+0300",
         "storage":"ASYNC-API-NT-2020-08",
         "route":"LC1",
         "interface":"Async API"
      }
   ]
}

Атрибуты полезной нагрузки вебхука

Объект JSON содержит атрибут type => NT наряду с атрибутом results, который включает список объектов проверки, как описано ниже.

Имя Тип Описание Допускает null
id string(12) Уникальный идентификатор, присвоенный данному запросу на проверку. false
number string Номер телефона, который был проверен в рамках данного запроса. false
number_type string Определенный тип номера. Возможные значения: LANDLINE , MOBILE , MOBILE_OR_LANDLINE , TOLL_FREE , PREMIUM_RATE , SHARED_COST , VOIP , PAGER , UAN , VOICEMAIL , UNKNOWN . false
query_status string Указывает, была ли успешно получена информация о типе номера. Возвращает OK в случае успеха или FAILED в случае неудачи. false
is_valid boolean Указывает, является ли номер телефона синтаксически корректным. true
invalid_reason string Текстовое сообщение на английском языке, объясняющее, почему номер телефона считается некорректным (например, "too short" или "invalid prefix"), или null, если номер корректен. true
is_possibly_ported boolean Указывает, мог ли номер телефона быть перенесен от первоначального оператора к другому оператору связи. Для получения точной информации о переносимости используйте MNP-запросы. true
is_vanity_number boolean Указывает, является ли номер телефона буквенно-цифровым, то есть содержит буквенные символы. true
qualifies_for_hlr_lookup boolean Указывает, подходит ли номер телефона для дополнительных запросов через HLR-проверки. true
mccmnc string(5|6) Строка из пяти или шести символов, представляющая кортеж MCCMNC (код страны мобильной связи и код мобильной сети), который идентифицирует исходную сеть мобильного номера телефона. true
mcc string(3) Строка из трех символов, представляющая MCC (код страны мобильной связи), который идентифицирует страну, связанную с исходной мобильной сетью номера телефона. true
mnc string(2|3) Строка из двух или трех символов, представляющая MNC (код мобильной сети), который идентифицирует исходного оператора мобильной сети номера телефона. true
original_network_name string Произвольная текстовая строка на английском языке, указывающая название исходного оператора сети проверяемого мобильного номера телефона. true
original_country_name string Произвольная текстовая строка на английском языке, указывающая исходную страну, связанную с проверяемым мобильным номером телефона. true
original_country_code string(2) Двухсимвольный код страны по ISO, указывающий исходную страну проверяемого мобильного номера телефона. true
regions array Список читаемых строк на английском языке, указывающих географический регион (регионы), связанный с данным номером телефона. true
timezones array Список часовых поясов (в формате Olson), связанных с данным номером телефона. true
info_text string Произвольная строка, которая может содержать дополнительную информацию о номере телефона. true
cost string Десятичное значение, представленное в виде строки, указывающее стоимость (в EUR) данного запроса. true
timestamp string Временная метка в формате W3C (включая часовой пояс), указывающая, когда был завершен запрос. true
storage string Указывает название хранилища, в которое были добавлены результаты запроса. Это соответствует названию отчета, используемому для загрузки CSV и аналитики через веб-интерфейс. true
route string(3) Трехсимвольный идентификатор, указывающий маршрут, использованный для данного запроса. true
Тип Описание
LANDLINE Стационарный телефонный номер.
MOBILE Мобильный телефонный номер. Подходит для HLR-запросов для получения дополнительной информации о статусе подключения, сети, переносимости и роуминге.
MOBILE_OR_LANDLINE Стационарный или мобильный телефонный номер. Может подходить для HLR-запроса.
TOLL_FREE Бесплатный телефонный номер.
PREMIUM_RATE Телефонный номер с повышенной тарификацией.
SHARED_COST Телефонный номер с распределением стоимости. Обычно дешевле, чем номера с повышенной тарификацией.
VOIP IP-телефонный номер. Включает TSoIP-номера (телефония через IP).
PAGER Номер пейджера. Обычно без функции голосовой связи.
UAN Универсальный номер доступа (корпоративный номер). Может перенаправляться в конкретные офисы, но позволяет использовать один номер для всей компании.
VOICEMAIL Номер голосовой почты.
UNKNOWN Не удалось определить тип номера.
Прокрутить вверх

GET/routeзащищенный

Получает маршрут, который будет автоматически выбран при выполнении HLR-запроса без указания параметра route.

Автоматический выбор маршрута основан на карте маршрутизации, получаемой через эндпоинт GET /hlr-coverage, которая в первую очередь формируется на основе GET /routing-map. Вы можете настроить карту маршрутизации и определить пользовательские правила в настройках аккаунта.

Запрос Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/route?msisdn=+491788735000'

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

Ключ Тип Описание По умолчанию Обязательный
msisdn string MSISDN, для которого необходимо получить информацию об автоматически выбранной маршрутизации. null обязательный
{
   "route":"V11",
   "confidence_level":"HIGH",
   "mccmnc":"26203",
   "origin":"SCORE"
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
route string Рекомендуемый маршрут. false
confidence_level string Уровень достоверности, с которым был выбран этот маршрут: LOW, NORMAL, HIGH, MNP_FALLBACK. false
mccmnc string MCCMNC на основе плана нумерации для данного номера. false
origin string Источник, на основе которого принято решение о маршрутизации, т.е. SCORE, CUSTOM_GLOBAL_COUNTRY, CUSTOM_GLOBAL_MCCMNC, CUSTOM_GLOBAL_PREFIX, CUSTOM_USER_COUNTRY, CUSTOM_USER_MCCMNC, CUSTOM_USER_PREFIX, MNP_FALLBACK, PLATFORM_DEFAULT, USER_DEFAULT false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

GET/routesзащищенный

Этот эндпоинт возвращает список доступных маршрутов HLR, MNP и NT. Каждый маршрут, его функции и ограничения описаны на странице детали маршрутизации.

Запрос Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/routes'
{
   "routes":{
      "HLR":[
         "V11",
         "E10",
         "MS9",
         "DV8",
         "SV3",
         "IP1"
      ],
      "MNP":[
         "PTX",
         "IP4"
      ],
      "NT":[
         "LC1"
      ]
   }
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
routes object Объект с маршрутами, сгруппированными по типу маршрута. false
HLR|MNP|NT string[] Содержит список идентификаторов маршрутов. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

GET/routing-mapзащищенный

Получает конфигурацию автоматической маршрутизации, применяемую в данный момент к HLR-запросам для вашей учетной записи. Эта конфигурация по умолчанию используется при отправке HLR-запросов без указания параметра route. Вы можете настроить карту маршрутизации и создать пользовательские правила в настройках учетной записи.

Иерархия конфигурации каскадируется от правил на уровне страны к правилам на уровне MCCMNC и, наконец, к индивидуальным сопоставлениям префиксов телефонных номеров. На практике это означает, что индивидуальные сопоставления префиксов телефонных номеров имеют приоритет над конфликтующими назначениями MCCMNC, которые в свою очередь переопределяют правила на уровне страны. Обратите внимание, что резервный MNP переопределяет любые конфликтующие пользовательские правила, пока он включен.

Запрос Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/routing-map'
{
   "routing":{
      "map":{
         "defaultRoute":"V11",
         "mnpFallback":true,
         "mccmncs":[
            {
               "mccmnc":20201,
               "countrycode":"GR",
               "route":"E10",
               "mno":"Cosmote",
               "confidence":"HIGH",
               "origin":"SCORE"
            }
         ],
         "prefixes":[
            {
               "countrycode":"DE",
               "cns":"+4917821",
               "route":"DV8",
               "mccmnc":"26203",
               "mno":"O2"
            }
         ],
         "countries":[
            {
               "countrycode":"US",
               "route":"DV8"
            }
         ]
      }
   }
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
default_route string Маршрут по умолчанию, используемый, когда для MSISDN не может быть определен предпочтительный вариант маршрутизации и не применяются пользовательские правила маршрутизации. false
mnp_fallback boolean Указывает, включен ли резервный MNP. Если включен и HLR-запросы не поддерживаются сетью (статус подключения недоступен), система выполнит MNP-запрос вместо этого. false
mccmncs array Сопоставление кодов MCCMNC с автоматически выбранными маршрутами. При выполнении HLR-запроса для номера в данном MCCMNC используется соответствующий маршрут. false
mccmnc string(5|6) Пяти- или шестизначный MCCMNC (комбинация кода страны мобильной связи и кода мобильной сети), идентифицирующий оператора мобильной связи. false
countrycode string(2) Двухсимвольный код страны ISO, идентифицирующий страну сети. false
route string(3) Выбранный маршрут для сети. false
mno string Потребительский бренд, под которым работает данная сеть. false
confidence string Уровень достоверности, с которым был сделан выбор. Возможные значения: HIGH, NORMAL, LOW, MNP_REDIRECT. В последнем случае система перенаправляет трафик в эту сеть на MNP, если такое поведение включено в вашей учетной записи. В противном случае используется маршрут по умолчанию. false
origin string Источник, на основе которого сделан выбор. Возможные значения: SCORE, CUSTOM_GLOBAL_COUNTRY, CUSTOM_GLOBAL_MCCMNC, CUSTOM_GLOBAL_PREFIX, CUSTOM_USER_COUNTRY, CUSTOM_USER_MCCMNC, CUSTOM_USER_PREFIX, MNP_FALLBACK, PLATFORM_DEFAULT, USER_DEFAULT false
prefixes array Список пользовательских правил маршрутизации на основе префиксов, настроенных в вашей учетной записи, если таковые имеются. false
countrycode string(2) Двухсимвольный код страны ISO, идентифицирующий страну префикса. false
cns string Префикс, к которому применяется правило маршрутизации. false
route string(3) Выбранный маршрут для префикса. false
mccmnc string(5|6) Пяти- или шестизначный MCCMNC (комбинация кода страны мобильной связи и кода мобильной сети), идентифицирующий оператора мобильной связи. true
mno string Потребительский бренд, под которым работает данная сеть. true
countries array Список пользовательских правил на основе стран, настроенных в вашей учетной записи, если таковые имеются. false
countrycode string(2) Двухсимвольный код страны ISO, идентифицирующий страну. false
route string(3) Выбранный маршрут для страны. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

GET/hlr-coverage защищенный

Возвращает аналитику покрытия HLR для принятия решений на основе данных. Этот эндпоинт помогает анализировать варианты маршрутизации HLR в реальном времени через мобильные сети, определять наиболее эффективные пути для целевых регионов и настраивать автоматическую маршрутизацию.

Рекомендуемые маршруты из GET /route основаны на данных покрытия, полученных здесь. Данные покрытия также доступны на странице покрытие сетей. Вы можете дополнительно настроить карту маршрутизации и определить правила в настройках аккаунта.

Рекомендуем ознакомиться с этим руководством для интерпретации результатов.

Запрос Успешный ответ Ответ с ошибкой Справочник статусов
curl 'https://www.hlr-lookups.com/api/v2/hlr-coverage?countrycode=XX'

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

Ключ Тип Описание По умолчанию Обязательный
countrycode string(2) Обязательный двухбуквенный код страны ISO для фильтрации результатов, возвращающий только записи, связанные с указанной страной. null обязательный
sample_size string Необязательный параметр, определяющий размер выборки. Возможные значения: LARGE, MEDIUM, SMALL. Большие выборки охватывают более длительный период, малые выборки охватывают самый последний период. LARGE необязательно
{
   "name":"Germany",
   "countrycode":"DE",
   "prefix":"+49",
   "mccs":[
      "262"
   ],
   "carriers":[
      {
         "mno":"Telekom",
         "mccmnc":"26201",
         "mcc":"262",
         "mnc":"01 ",
         "routes":[
            {
               "route":"V11",
               "selected":true,
               "selection_confidence":"HIGH",
               "n":361579,
               "CONNECTED":275273,
               "CONNECTED_PCT":76.13,
               "ABSENT":21529,
               "ABSENT_PCT":5.95,
               "INVALID_MSISDN":62582,
               "INVALID_MSISDN_PCT":17.3,
               "UNDETERMINED":2195,
               "UNDETERMINED_PCT":0.6
            },
            {
               "route":"E10",
               "selected":false,
               "selection_confidence":null,
               "n":122600,
               "CONNECTED":13721,
               "CONNECTED_PCT":11.19,
               "ABSENT":133,
               "ABSENT_PCT":0.1,
               "INVALID_MSISDN":55,
               "INVALID_MSISDN_PCT":0.04,
               "UNDETERMINED":108691,
               "UNDETERMINED_PCT":88.65
            }
         ]
      }
   ]
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
name string Название выбранной страны на английском языке. false
countrycode string(2) Двухбуквенный код ISO выбранной страны. false
prefix string Международный телефонный префикс выбранной страны. false
mccs string[] Список MCC (мобильных кодов стран), связанных с выбранной страной. false
carriers object[] Список объектов операторов с метриками подключения для конкретных маршрутов. false
mno string Название оператора мобильной связи на английском языке. false
mccmnc string MCCMNC оператора мобильной связи. false
mcc string MCC (мобильный код страны) оператора мобильной связи. false
mnc string MNC (мобильный код сети) оператора мобильной связи. false
routes object[] Список результатов подключения для конкретных маршрутов. false
route string Маршрут, к которому относится информация о подключении. false
selected bool Указывает, является ли это выбранным маршрутом для автоматической маршрутизации. false
selection_confidence string Уровень достоверности, с которым был выбран этот маршрут: LOW, NORMAL, HIGH, MNP_FALLBACK. Содержит null, если это не выбранный маршрут. true
n int Общее количество запросов в этой выборке. false
CONNECTED int Количество HLR-запросов, вернувших статус CONNECTED. false
CONNECTED_PCT float Процент HLR-запросов, вернувших статус CONNECTED. false
ABSENT int Количество HLR-запросов, вернувших статус ABSENT. false
ABSENT_PCT float Процент HLR-запросов, вернувших статус ABSENT. false
INVALID_MSISDN int Количество HLR-запросов, вернувших статус INVALID_MSISDN. false
INVALID_MSISDN_PCT float Процент HLR-запросов, вернувших статус INVALID_MSISDN. false
UNDETERMINED int Количество HLR-запросов, вернувших статус UNDETERMINED. false
UNDETERMINED_PCT float Процент HLR-запросов, вернувших статус UNDETERMINED. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Статус Описание
CONNECTED Номер действителен, и целевое устройство в настоящее время подключено к мобильной сети. Звонки, SMS и другие услуги должны успешно доставляться получателю.
ABSENT Номер действителен, но целевое устройство либо выключено, либо временно находится вне зоны покрытия сети. Сообщения или звонки могут не доставляться до тех пор, пока устройство не подключится к сети.
INVALID_MSISDN Номер недействителен или в настоящее время не присвоен ни одному абоненту в мобильной сети. Звонки и сообщения на этот номер будут неуспешными.
UNDETERMINED Статус подключения номера не удалось определить. Это может быть связано с недействительным номером, ошибкой SS7 или отсутствием связи с целевым оператором сети. Проверьте код ошибки и поле описания для получения дополнительной диагностической информации.
Прокрутить вверх

GET/mnp-coverageзащищенный

Этот эндпоинт возвращает список операторов мобильной связи с соответствующими идентификаторами MCCMNC, которые в настоящее время поддерживаются для запросов о переносе номеров.

Запрос Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/mnp-coverage?countrycode=XX'

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

Ключ Тип Описание По умолчанию Обязательный
countrycode string(2) Необязательный двухбуквенный код страны ISO, используемый для фильтрации результатов MCCMNC, возвращая только данные, относящиеся к указанной стране. null необязательно
{
   "items":[
      {
         "country_name":"Germany",
         "country_code":"DE",
         "mccmnc":"26201",
         "mcc":"262",
         "mnc":"01 ",
         "brand":"Telekom",
         "operator":"Telekom Deutschland GmbH"
      },
      {
         "country_name":"Germany",
         "country_code":"DE",
         "mccmnc":"26202",
         "mcc":"262",
         "mnc":"02 ",
         "brand":"Vodafone",
         "operator":"Vodafone D2 GmbH"
      }
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
items[] array Список операторов мобильной связи. false
country_name string Название страны на английском языке. false
country_code string(2) Двухбуквенный код страны ISO. false
mccmnc string(5|6) Пяти- или шестизначный MCCMNC (комбинация кода страны мобильной связи и кода мобильной сети), идентифицирующий оператора мобильной связи. false
mcc string(3) Трехзначный MCC (код страны мобильной связи), представляющий страну сети. false
mnc string(2|3) Двух- или трехзначный MNC (код мобильной сети), представляющий конкретного оператора мобильной связи. false
brand string Потребительский бренд, под которым работает данная сеть. true
operator string Юридическое название оператора мобильной связи. true
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

GET/price-listзащищенный

Этот эндпоинт возвращает список стран, где поддерживаются только MNP-запросы, а HLR-запросы для этих направлений недоступны.

Запрос Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/mnp-countries'
{
   "countries":[
      "AG",
      "AI",
      "AR",
      "AS",
      "AW",
      "BB",
      "BM",
      ...
      "US",
      "UY",
      "VC",
      "VE",
      "VG",
      "VN"
   ]
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
countries string[] Список двухсимвольных кодов стран по ISO. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

GET/mccmncsзащищенный

Эта конечная точка возвращает полный список операторов мобильной связи с соответствующими идентификаторами MCCMNC и дополнительной контекстной информацией.

Запрос Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/mccmncs?countrycode=XX'

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

Ключ Тип Описание По умолчанию Обязательный
countrycode string(2) Необязательный двухбуквенный код страны ISO, используемый для фильтрации результатов MCCMNC, возвращающий только записи, связанные с указанной страной. null необязательно
{
   "items":[
      {
         "country_name":"Germany",
         "country_code":"DE",
         "mccmnc":"26201",
         "mcc":"262",
         "mnc":"01 ",
         "brand":"Telekom",
         "operator":"Telekom Deutschland GmbH"
      },
      {
         "country_name":"Germany",
         "country_code":"DE",
         "mccmnc":"26202",
         "mcc":"262",
         "mnc":"02 ",
         "brand":"Vodafone",
         "operator":"Vodafone D2 GmbH"
      }
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
items object[] Список операторов мобильной связи. false
country_name string Полное название страны на английском языке. false
country_code string(2) Двухбуквенный код страны ISO, представляющий страну оператора мобильной связи. false
mccmnc string(5|6) Пяти- или шестизначная строка, представляющая MCCMNC, которая однозначно идентифицирует оператора мобильной сети. false
mcc string(3) Трехзначный код страны мобильной связи (MCC), который идентифицирует страну, где работает мобильная сеть. false
mnc string(2|3) Двух- или трехзначный код мобильной сети (MNC), который определяет мобильную сеть в пределах указанного MCC. false
brand string Коммерческое название бренда, под которым сеть работает и узнается потребителями. true
operator string Официальное название оператора мобильной связи, обычно юридическое лицо, управляющее сетью. true
parent_mccmnc string(5|6) Пяти- или шестизначная строка, представляющая MCCMNC родительского оператора мобильной связи, если таковой имеется. true
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

GET/priceзащищенный

Этот эндпоинт возвращает стоимость HLR, MNP или NT запроса.

Запрос Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/price?msisdn=+491788735000&route_type=HLR'

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

Ключ Тип Описание По умолчанию Обязательный
msisdn string Номер телефона, для которого требуется получить стоимость. В международном формате. null обязательный
route_type string Тип маршрута: HLR, MNP, NT. null обязательный
route string(3) Маршрут, для которого должна быть рассчитана стоимость. По умолчанию используется маршрут, определенный автоматической маршрутизацией. null необязательно
{
   "price":{
      "amount":"0.01000",
      "msisdn":"+491788735000",
      "route_type":"HLR",
      "route":"DV8"
   }
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
price object Объект с информацией о стоимости. false
amount string Сумма в EUR. false
msisdn string MSISDN, к которому применяется данная стоимость. false
route_type string(2|3) Тип маршрута, к которому применяется данная стоимость. false
route string(3) Маршрут, к которому применяется данная стоимость. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

GET/price-listзащищенный

Этот эндпоинт возвращает тарифы вашего аккаунта.

Запрос Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/price-list'
{
   "pricing":[
      {
         "route":"V11",
         "countrycode":null,
         "countryname":null,
         "mccmnc":null,
         "cns":null,
         "route_type":"HLR",
         "price":"0.0090"
      },
      {
         "route":"V11",
         "countrycode":"DE",
         "countryname":"Germany",
         "mccmnc":"26201",
         "cns":null,
         "route_type":"HLR",
         "price":"0.0070"
      },
      {
         "route":"V11",
         "countrycode":"DE",
         "countryname":"Germany",
         "mccmnc":"26203",
         "cns":"4917821",
         "route_type":"HLR",
         "price":"0.0070"
      },
      {
         "route":"V11",
         "countrycode":"DE",
         "countryname":"Germany",
         "mccmnc":null,
         "cns":null,
         "route_type":"HLR",
         "price":"0.0070"
      },
      {
         "route":"PTX",
         "countrycode":null,
         "countryname":null,
         "mccmnc":null,
         "cns":null,
         "route_type":"MNP",
         "price":"0.00500"
      },
      ...
      {
         "route":"IP1",
         "countrycode":null,
         "countryname":null,
         "mccmnc":null,
         "cns":null,
         "route_type":"MIX",
         "price":"0.01000"
      },
      {
         "route":"LC1",
         "countrycode":null,
         "countryname":null,
         "mccmnc":null,
         "cns":null,
         "route_type":"NT",
         "price":"0.00500"
      }
   ]
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
pricing object[] Список объектов с информацией о тарифах. false
route string Маршрут, к которому применяется данный тариф. false
countrycode string Двухбуквенный код страны ISO, к которому применяется данный тариф для соответствующего маршрута, если применимо. true
countryname string Название страны на английском языке, соответствующее коду страны, если применимо. true
mccmnc string MCCMNC, к которому применяется данный тариф для соответствующего маршрута, если применимо. Переопределяет тарификацию на уровне страны. true
cns string Телефонный префикс, к которому применяется данный тариф для соответствующего маршрута, если применимо. Переопределяет тарификацию на уровне страны и на уровне MCCMNC. true
route_type string Соответствующий тип маршрута, т.е. HLR, MNP, NT. false
route_type string Соответствующая цена в EUR. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

GET/balanceзащищенный

Этот эндпоинт возвращает текущий баланс вашего счета, позволяя автоматизировать процессы на основе статуса кредита. Он работает совместно с уведомлениями о низком балансе, которые можно настроить на странице платежей.

Запрос Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/balance'
{
    "balance":"1002.90"
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
balance string Текущий баланс вашего счета в EUR. Десятичное значение типа string. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

GET/pingпубличный

Этот эндпоинт отправляет ping-запрос к API, предоставляя простой способ проверить ваше подключение к HLR Lookups API.

Запрос Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/ping'
{
    "success":true
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
success boolean Указывает, что запрос был успешно обработан. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

GET/timeпубличный

Этот эндпоинт возвращает временную метку Unix, представляющую текущее время на сервере HLR Lookups. Используйте его для синхронизации часов вашего сервера при генерации подписи Digest-Auth для аутентификации, устраняя любые расхождения между временем вашего сервера и временем сервера HLR Lookups.

Запрос Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/time'
{
    "time":1525898643
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
time integer Временная метка Unix, представляющая текущее время сервера HLR Lookups. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

GET/auth-testзащищенный

Эта конечная точка служит для первоначальной проверки вашей реализации Basic-Auth или, предпочтительно, Digest-Auth.

Запрос с Basic Auth Запрос Digest Auth Успешный ответ Ответ с ошибкой
curl 'https://www.hlr-lookups.com/api/v2/auth-test' \
  -H "X-Basic: YOUR_API_KEY" 

Заголовки запроса

Ключ Тип Описание
X-Basic string SHA256-хеш YOUR_API_KEY:YOUR_API_SECRET. Включите символ двоеточия (:) в хеш.
curl 'https://www.hlr-lookups.com/api/v2/auth-test' \
  -H "X-Digest-Key: YOUR_API_KEY" \
  -H "X-Digest-Signature: DIGEST_AUTH_SIGNATURE" \
  -H "X-Digest-Timestamp: UNIX_TIMESTAMP" 

Заголовки запроса

Ключ Тип Описание
X-Digest-Key string Ваш API-ключ HLR Lookups
X-Digest-Signature string Уникальная подпись Digest-Auth (см. аутентификация)
X-Digest-Timestamp integer Текущая временная метка Unix (см. также GET /time)
{
    "success":true
}

Атрибуты успешного ответа

Имя Тип Описание Допускает null
success boolean Указывает, что запрос был успешно обработан. false
{
    "errors":[
        "Service unavailable."
    ]
}

Параметры ответа об ошибке

Имя Тип Описание Допускает null
errors[] string[] Список строк с описанием ошибки. false
Прокрутить вверх

Документация устаревшего API

Обратите внимание, что устаревший API больше не поддерживается и будет отключен в будущем. Мы настоятельно рекомендуем перейти на последнюю версию при первой возможности.

Если вы внедрили наш HLR Lookups API в период с 2013 по начало 2020 года, вы используете устаревший API. В этом случае обратитесь к нашей документации устаревшего API.

Документация устаревшего API
Анимация загрузки Прозрачное изображение