HLR Service (Lookup)

With this method you can verify a mobile number in international format (msisdn). It will return the status of the desired number, including its validity, network and succint portability information.

Request

api_key Your API Key.
msisdn A mobile number in msisdn format.
Mandatory
Optional
{
	"api_key":"399d2b438a53ebed3db8a7d52107f846",
	"msisdn":"34666666667"
}
curl -X POST \
 -H 'Content-Type: application/json' \
 -H 'Accept: application/json' \
 -d '{
	"api_key":"399d2b438a53ebed3db8a7d52107f846",
	"msisdn":"34666666667"
}' https://api.gateway360.com/api/hlr/request
$request = '{
	"api_key":"399d2b438a53ebed3db8a7d52107f846",
	"msisdn":"34666666667"
}' ;
        	
$headers = array('Content-Type: application/json');        	

$ch = curl_init('https://api.gateway360.com/api/hlr/request');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $request);

$result = curl_exec($ch);
 
if (curl_errno($ch) != 0 ){
	die("curl error: ".curl_errno($ch));
}        	
/** Imports */
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;
/** End imports */


HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost request = new HttpPost("https://api.gateway360.com/api/hlr/request");

StringEntity params = new StringEntity(
"{" +
"    \"api_key\":\"399d2b438a53ebed3db8a7d52107f846\"," +
"    \"msisdn\":\"34666666667\"" +
"}");

request.addHeader("content-type", "application/json");
request.addHeader("Accept","application/json");
request.setEntity(params);
HttpResponse response = httpClient.execute(request);
require 'uri'
require 'net/http'

url = URI("https://api.gateway360.com/api/hlr/request")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["accept"] = 'application/json'

request.body = '{
	"api_key":"399d2b438a53ebed3db8a7d52107f846",
	"msisdn":"34666666667"
}'

response = http.request(request)
puts response.read_body
conn = http.client.HTTPSConnection("api.gateway360.com")

payload = '{
	"api_key":"399d2b438a53ebed3db8a7d52107f846",
	"msisdn":"34666666667"
}'

headers = {
    'content-type': "application/json",
    'accept': "application/json"
    }

conn.request("POST", "/api/3.0/2fa/verify", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
var client = new RestClient("https://api.gateway360.com/api/hlr/request");

var request = new RestRequest(Method.POST);
request.AddHeader("accept", "application/json");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", '{
	"api_key":"399d2b438a53ebed3db8a7d52107f846",
	"msisdn":"34666666667"
}', ParameterType.RequestBody);

IRestResponse response = client.Execute(request);
Private Sub Command1_Click()
Dim objHTTP As Object
Dim Json As String
Dim result As String


    Json = fJSON
    Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
    URl = "https://api.gateway360.com/api/hlr/request"
    objHTTP.Open "POST", URl, False
    objHTTP.setRequestHeader "Content-type", "application/json"
    objHTTP.send (Json)
    result = objHTTP.responseText
   Set objHTTP = Nothing
End Sub

Private Function fJSON() As String
    fJSON = "{"
    fJSON = fJSON & """api_key"":""399d2b438a53ebed3db8a7d52107f846"","
    fJSON = fJSON & """msisdn"":""34666666667"""
    fJSON = fJSON & "}"
End Function

Response

status Status of request - either "ok" or "error"
msisdn Requested number.
success If the number lookup was successful. True or false.
mccmnc Mobile Country Code (first 3 characters) and Mobile Network Code.
original_network Mobile network the number originally belonged to and still belongs if no portability has taken place.
ported Return true if the searched number has been ported, false otherwise.
ported_network In case of ported being "true" this param has additional information about the ported network.
error_id In case of status being "error", this param will contain the error id.
error_msg In case of status being "error", this param will contain additional information. Should only be used for debugging.
200 OK
{
    "status":"ok",
    "result":
    {
        "msisdn":"34666666666",
        "success":true,
        "mccmnc":"21403",
        "original_network":"MNO - Vodafone Espana",
        "ported":false
    }
}
One number lookup without portability
200 OK
{
    "status":"ok",
    "result":
    {
        "msisdn":"34666666666",
        "success":true,
        "mccmnc":"21403",
        "original_network":"MNO - Movistar (Telefonica Moviles Espana)",
        "ported":true,
        "ported_network":"MNO - Orange Espana"
    }
}
One number lookup with portability
200 OK
{
    "status":"ok",
    "result":
    {
        "msisdn":"34666666665",
        "success":false
    }
}
One number lookup about a number that is incorrect
400 Bad Request
{
    "status":"error",
    "error_id":"JSON_PARSE_ERROR",
    "error_msg":"Your JSON was formatted incorrectly."
}
We couldn't process your request.

Errors

Error ID Explanation
INVALID_CONTENT_TYPE The content type must be: Content-Type: application/json
JSON_PARSE_ERROR Your JSON was formatted incorrectly or was considered otherwise improper or incomplete. Check it here.
MISSING_PARAMS Your request is incomplete and missing some mandatory parameters.
UNAUTHORIZED Your API key may be invalid, double-check that your API key was input correctly or see if the IP is blocked in your account API settings.
NOT_ENOUGH_BALANCE Your account has no funds to process this request, add credits to your account and try again.
SERVICE_UNAVAILABLE Service temporarily unavailable, try again later.