Първи стъпки

Глобалната мобилна мрежова инфраструктура работи на базата на система, известна като сигнална мрежа SS7. Тази мрежа улеснява обмена на абонатни данни, маршрутизация на обаждания, предаване на SMS и актуализации на статуса на мобилната свързаност в реално време между операторите. Всяка мобилна мрежа поддържа Home Location Register (HLR) - основна база данни, която съхранява съществени данни за нейните абонати.

Технологията HLR Lookup позволява на бизнеса да заявява тези регистри и да извлича данни за свързаност и мрежа в реално време за всеки мобилен телефонен номер. Това включва дали телефонът е включен, към коя мрежа е понастоящем присвоен, дали е портиран, дали номерът е валиден или деактивиран и дали е в роуминг.

HLR Lookups API предоставя безпроблемен достъп в реално време до тези данни, позволявайки на бизнеса да верифицира мобилни номера, да оптимизира маршрутизацията и да подобри комуникацията с клиенти. Тази документация ще ви напътства при интегрирането на HLR Lookups във вашия софтуер, позволявайки автоматизирано извличане на мобилна информация в реално време.

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

Изпълнението на 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)

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

Инструменти

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

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

HLR заявките и заявките за преносимост на номера могат да се изпълняват без програмиране. Научете повече за нашия корпоративен уеб клиент и базираните на браузър функции за отчитане.

Удостоверяване

За осигуряване на сигурност и правилен контрол на достъпа, повечето заявки към 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 Разрешения

Стандартното Basic удостоверяване е лесно за внедряване и широко поддържано. Можете да се удостоверите, като подадете вашия 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"

Basic Authentication хедъри

Ключ Тип Описание
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 Вашият уникален HLR Lookups API ключ. задължително
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 отчети, както и за разширена аналитика чрез уеб интерфейса.

Синхронен HLR Lookup API

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

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

Асинхронен HLR Lookup API

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

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

SDK (комплекти за разработка на софтуер)

Нашите комплекти за разработка на софтуер (SDK) за PHP, NodeJS и Ruby опростяват процеса на интеграция, позволявайки ви да се свържете с HLR Lookups API ефективно и с минимални усилия.

Тези SDK предоставят готови функции, управление на автентикацията и структурирани шаблони за API заявки, съкращавайки времето за разработка и гарантирайки най-добри практики.

Разгледайте пълния ни списък с налични SDK в GitHub и започнете интеграцията днес.

PHP PHP NodeJS NodeJS Ruby Ruby
Лого на PHP

PHP SDK

Моментална 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

NodeJS SDK

Моментална 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

Ruby SDK

Моментална 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 заявка, доставяйки данни в реално време за свързаност и преносимост на мобилни телефонни номера директно от мрежовите оператори. Този endpoint е идеален за сценарии с активен трафик, при които приложенията, чувствителни към времето, изискват незабавна проверка дали телефонен номер е достъпен в момента (свързан) или недостъпен (изключен). Освен това помага да се разграничат активните номера от невалидни, неизвестни или фалшиви.

За масова обработка на големи масиви от данни, които не изискват незабавни резултати, разгледайте асинхронния 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) Пет- или шестцифрен Mobile Country Code (MCC) и Mobile Network Code (MNC), идентифициращи мрежата, към която в момента е свързан телефонният номер. true
mcc string(3) Трицифрен Mobile Country Code (MCC), идентифициращ държавата, в която телефонният номер е регистриран. true
mnc string(2|3) Дву- или трицифрен Mobile Network Code (MNC), идентифициращ конкретната мрежа, към която принадлежи телефонният номер. true
imsi string International Mobile Subscriber Identity (IMSI) - уникален идентификатор на SIM картата, свързана с този номер. Наличността зависи от конфигурацията на мрежата. true
msin string(10) Mobile Subscription Identification Number (MSIN) в базата данни на мобилния оператор. Наличността зависи от конфигурацията на мрежата. true
msc string(12) Mobile Switching Center (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 заявки, извличайки актуални данни за свързаност и преносимост на мобилни телефони от мрежовите оператори. Резултатите се доставят чрез webhooks към вашия сървър. Този метод е оптимизиран за обработка на големи обеми номера, които не изискват незабавни отговори, като почистване и валидация на бази данни. За приложения в реално време като маршрутизация на обаждания или доставка на SMS, използвайте крайната точка POST /hlr-lookup.

Тази крайна точка е идеална за масова обработка, когато целта е да се идентифицират телефонни номера, които са достъпни в момента (свързани) или недостъпни (изключен телефон), като същевременно се филтрират невалидни, неразпределени или фалшиви номера. Освен това предоставя актуален статус на преносимост (MCCMNC) заедно с детайли за свързаността.

Преди да използвате тази крайна точка, уверете се, че е конфигуриран webhook URL за асинхронно получаване на резултатите от заявките. Можете да настроите това в API настройките.

Заявка Успешен отговор Грешка в отговора Webhooks Справка за статусите
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 Webhook 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"
      }
   ]
}

Атрибути на Webhook данните

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) Пет- или шестцифрен Mobile Country Code (MCC) и Mobile Network Code (MNC), идентифициращи мрежата, към която в момента е свързан телефонният номер. true
mcc string(3) Трицифрен Mobile Country Code (MCC), идентифициращ държавата, в която телефонният номер е регистриран. true
mnc string(2|3) Дву- или трицифрен Mobile Network Code (MNC), идентифициращ конкретната мрежа, към която принадлежи телефонният номер. true
imsi string International Mobile Subscriber Identity (IMSI) - уникален идентификатор на SIM картата, свързана с този номер. Наличността зависи от конфигурацията на мрежата. true
msin string(10) Mobile Subscription Identification Number (MSIN) в базата данни на мобилния оператор. Наличността зависи от конфигурацията на мрежата. true
msc string(12) Mobile Switching Center (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 заявките надеждно определят преносимостта и мрежовата информация, но не показват дали целевият мобилен телефон в момента е свързан към мрежа и достъпен. За да извлечете информация за свързаност в реално време, моля използвайте POST /hlr-lookup endpoint вместо това.

Заявка Успешен отговор Грешка в отговора
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 Десетична стойност, представена като низ, показваща цената в евро за тази заявка. 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 и определяйки оригиналната и текущата мрежа в реално време. Резултатите се доставят чрез webhooks към вашия сървър. Този метод е оптимизиран за обработка на големи обеми номера, които не изискват незабавни отговори, като почистване и валидация на бази данни. За приложения в реално време като маршрутизация на обаждания или доставка на SMS, използвайте крайната точка POST /mnp-lookup.

MNP заявките надеждно определят преносимостта и мрежовата информация, но не показват дали целевият мобилен телефон в момента е свързан към мрежа и достъпен. За да извлечете информация за свързаност в реално време, моля използвайте POST /hlr-lookups endpoint вместо това.

Преди да използвате тази крайна точка, уверете се, че е конфигуриран webhook URL за асинхронно получаване на резултатите от заявките. Можете да настроите това в API настройките.

Заявка Успешен отговор Грешка в отговора Webhooks
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 Webhook 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
        }
    ]
}

Атрибути на Webhook данните

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 Десетична стойност, представена като низ, показваща цената в евро за тази заявка. true
timestamp string Времева отметка във W3C формат, включваща информация за часовата зона, показваща кога е завършена заявката. true
storage string Името на хранилището (или името на отчета), към което са добавени резултатите от заявката. Използва се за CSV изтегляния и отчети чрез уеб интерфейса. true
route string(3) Трисимволен идентификатор, указващ маршрута, използван за тази заявка. true
error_code integer Незадължителен вътрешен код на грешка, предоставящ допълнителен контекст за диагностика от клиентска поддръжка. true
Превъртете нагоре

POST/nt-lookupзащитен

Извършва синхронна заявка за тип номер (NT). Този endpoint е идеален, ако основната ви цел е да определите дали предоставените телефонни номера принадлежат към фиксирани, мобилни, премиум, VoIP, пейджър или други диапазони от номерационния план в реално време.

NT заявките надеждно разпознават типа на телефонния номер, но не показват дали целевият номер е активно свързан към мрежа и достъпен. За да получите информация за активна свързаност, моля използвайте POST /hlr-lookup endpoint.

Ако вашият случай изисква точна информация за мрежа и преносимост (MCCMNC), но не и статус на активна свързаност, моля използвайте POST /mnp-lookup endpoint за заявки за преносимост на мобилни номера.

Заявка Успешен отговор Грешка в отговора Справка за типове
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 Показва дали телефонният номер е vanity номер, т.е. съдържа букви. 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 Voice over IP телефонен номер. Включва TSoIP телефонни номера (Telephony Service over IP).
PAGER Пейджър телефонен номер. Обикновено без гласова функционалност.
UAN Универсален номер за достъп (корпоративен номер). Може да бъде пренасочван към конкретни офиси, но позволява използването на един номер за цялата компания.
VOICEMAIL Телефонен номер за гласова поща.
UNKNOWN Типът на номера не може да бъде определен.
Превъртете нагоре

POST/nt-lookups защитен

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

Трябва да зададете webhook URL адрес в API настройките си като предварително условие за извикване на тази крайна точка.

Заявка Успешен отговор Грешка в отговора Webhooks Справка за типове
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 Webhook 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"
      }
   ]
}

Атрибути на Webhook данните

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 Показва дали телефонният номер е vanity номер, т.е. съдържа букви. 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 Voice over IP телефонен номер. Включва TSoIP телефонни номера (Telephony Service over 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защитен

Този endpoint връща списък с наличните 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 покритието за подпомагане на вземането на решения, базирани на данни. Този endpoint ви помага да анализирате опциите за 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защитен

Този endpoint връща списък с мобилни мрежови оператори, заедно със съответните им 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защитен

Този endpoint връща списък със страни, където се поддържат само 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защитен

Този endpoint връща изчерпателен списък с мобилни мрежови оператори заедно със съответните им 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) Тризначен Mobile Country Code (MCC), който идентифицира държавата, в която работи мобилната мрежа. false
mnc string(2|3) Дву- или тризначен Mobile Network Code (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защитен

Този endpoint връща цената за 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защитен

Този endpoint връща ценообразуването във вашия акаунт.

Заявка Успешен отговор Грешка в отговора
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защитен

Този endpoint извлича текущия баланс на вашия акаунт, позволявайки ви да автоматизирате процеси въз основа на вашия кредитен статус. Работи безпроблемно с имейл известията за нисък кредит, които можете да конфигурирате на вашата страница за плащания.

Заявка Успешен отговор Грешка в отговора
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публичен

Този endpoint изпраща 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публичен

Този endpoint връща Unix timestamp, представящ текущото време на HLR Lookups сървъра. Използвайте го за синхронизиране на часовника на вашия сървър при генериране на Digest-Auth подписа за автентикация, като по този начин коригирате евентуални разминавания между времето на вашия сървър и времето на HLR Lookups сървъра.

Заявка Успешен отговор Грешка в отговора
curl 'https://www.hlr-lookups.com/api/v2/time'
{
    "time":1525898643
}

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

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

Параметри на отговора при грешка

Име Тип Описание ДопускаNull
errors[] string[] Списък от низове, обясняващи грешката. false
Превъртете нагоре

GET/auth-testзащитен

Този endpoint служи като първоначален тест за вашата 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 Вашият HLR Lookups API ключ
X-Digest-Signature string Уникален Digest-Auth подпис (вижте автентикация)
X-Digest-Timestamp integer Текущ Unix timestamp (вижте също 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
Въртящ се индикатор Прозрачен Gif