HLR Verification Service

HLR verification service performs a direct lookup on the Home Location Register against any GSM mobile number. Get information such as the original network the mobile number was assigned, information about portability and current mobile network of the number. Additionally see if the the mobile has been turned on and connected to its network recently and the country where the mobile was last used (if available).

Free Trial - No Credit Card Required

MNP Lookup Service

Receive real time validity information about a mobile number like the current Mobile Network, number type (mobile, landline, virtual), portability information, Mobile Network Code for any phone number.

Number Lookup Verification API

Use our HLR and MNP service through our reliable HTTP API


GET API KEY →
curl --location 'https://hlr.sms.to/api/v2/lookup' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <api_key>' \
--data '{
    "number": "+447704571048",
    "default_prefix": "GB"
}'
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://hlr.sms.to/api/v2/lookup',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "number": "+447704571048",
    "default_prefix": "GB"
}',
  CURLOPT_HTTPHEADER => array(
    'Accept: application/json',
    'Content-Type: application/json',
    'Authorization: Bearer <api_key>'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'hlr.sms.to',
  'path': '/api/v2/lookup',
  'headers': {
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Authorization': 'Bearer <api_key>'
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData = JSON.stringify({
  "number": "+447704571048",
  "default_prefix": "GB"
});

req.write(postData);

req.end();
require "uri"
require "json"
require "net/http"

url = URI("https://hlr.sms.to/api/v2/lookup")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Accept"] = "application/json"
request["Content-Type"] = "application/json"
request["Authorization"] = "Bearer <api_key>"
request.body = JSON.dump({
  "number": "+447704571048",
  "default_prefix": "GB"
})

response = https.request(request)
puts response.read_body
import http.client
import json

conn = http.client.HTTPSConnection("hlr.sms.to")
payload = json.dumps({
  "number": "+447704571048",
  "default_prefix": "GB"
})
headers = {
  'Accept': 'application/json',
  'Content-Type': 'application/json',
  'Authorization': 'Bearer <api_key>'
}
conn.request("POST", "/api/v2/lookup", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n    \"number\": \"+447704571048\",\n    \"default_prefix\": \"GB\"\n}");
Request request = new Request.Builder()
  .url("https://hlr.sms.to/api/v2/lookup")
  .method("POST", body)
  .addHeader("Accept", "application/json")
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "Bearer <api_key>")
  .build();
Response response = client.newCall(request).execute();
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://hlr.sms.to/api/v2/lookup"
  method := "POST"

  payload := strings.NewReader(`{
    "number": "+447704571048",
    "default_prefix": "GB"
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Accept", "application/json")
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("Authorization", "Bearer <api_key>")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
Secure Payments