Skip to main content
POST
/
phone-service
/
phoneid
Phone ID
curl --request POST \
  --url https://api-umbrella.io/api/services/phone-service/phoneid \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "phoneNumber": "11234567890",
  "accountLifecycleEvent": "create",
  "externalId": "CustomExternalID7349",
  "originatingIp": "203.0.113.45",
  "addons": {
    "ageVerify": {
      "ageThreshold": 21
    },
    "contact": {
      "email": "test@example.com"
    },
    "contactMatch": {
      "firstName": "string",
      "lastName": "string",
      "address": "string",
      "city": "string",
      "postalCode": "string",
      "state": "string",
      "country": "string",
      "inputUsed": "email"
    },
    "contactPlus": {
      "billingPostalCode": "95110"
    },
    "numberDeactivation": {
      "carrierName": "Verizon",
      "lastDeactivated": "2016-04-05T00:00:00Z",
      "trackingSince": "2014-10-06T00:00:00Z",
      "status": {
        "code": 2800,
        "description": "Request successfully completed"
      },
      "recycledSinceLastVerification": "notRecycled"
    },
    "portingHistory": {
      "pastXDays": 10
    },
    "breachedData": {},
    "callForwardDetection": {},
    "subscriberStatus": {},
    "portingStatus": {},
    "simSwap": {}
  },
  "consent": {
    "method": 1,
    "timestamp": "2018-05-05T00:00:00Z"
  }
}
'
import requests

url = "https://api-umbrella.io/api/services/phone-service/phoneid"

payload = {
"phoneNumber": "11234567890",
"accountLifecycleEvent": "create",
"externalId": "CustomExternalID7349",
"originatingIp": "203.0.113.45",
"addons": {
"ageVerify": { "ageThreshold": 21 },
"contact": { "email": "test@example.com" },
"contactMatch": {
"firstName": "string",
"lastName": "string",
"address": "string",
"city": "string",
"postalCode": "string",
"state": "string",
"country": "string",
"inputUsed": "email"
},
"contactPlus": { "billingPostalCode": "95110" },
"numberDeactivation": {
"carrierName": "Verizon",
"lastDeactivated": "2016-04-05T00:00:00Z",
"trackingSince": "2014-10-06T00:00:00Z",
"status": {
"code": 2800,
"description": "Request successfully completed"
},
"recycledSinceLastVerification": "notRecycled"
},
"portingHistory": { "pastXDays": 10 },
"breachedData": {},
"callForwardDetection": {},
"subscriberStatus": {},
"portingStatus": {},
"simSwap": {}
},
"consent": {
"method": 1,
"timestamp": "2018-05-05T00:00:00Z"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
phoneNumber: '11234567890',
accountLifecycleEvent: 'create',
externalId: 'CustomExternalID7349',
originatingIp: '203.0.113.45',
addons: {
ageVerify: {ageThreshold: 21},
contact: {email: 'test@example.com'},
contactMatch: {
firstName: 'string',
lastName: 'string',
address: 'string',
city: 'string',
postalCode: 'string',
state: 'string',
country: 'string',
inputUsed: 'email'
},
contactPlus: {billingPostalCode: '95110'},
numberDeactivation: {
carrierName: 'Verizon',
lastDeactivated: '2016-04-05T00:00:00Z',
trackingSince: '2014-10-06T00:00:00Z',
status: {code: 2800, description: 'Request successfully completed'},
recycledSinceLastVerification: 'notRecycled'
},
portingHistory: {pastXDays: 10},
breachedData: {},
callForwardDetection: {},
subscriberStatus: {},
portingStatus: {},
simSwap: {}
},
consent: {method: 1, timestamp: '2018-05-05T00:00:00Z'}
})
};

fetch('https://api-umbrella.io/api/services/phone-service/phoneid', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api-umbrella.io/api/services/phone-service/phoneid",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'phoneNumber' => '11234567890',
'accountLifecycleEvent' => 'create',
'externalId' => 'CustomExternalID7349',
'originatingIp' => '203.0.113.45',
'addons' => [
'ageVerify' => [
'ageThreshold' => 21
],
'contact' => [
'email' => 'test@example.com'
],
'contactMatch' => [
'firstName' => 'string',
'lastName' => 'string',
'address' => 'string',
'city' => 'string',
'postalCode' => 'string',
'state' => 'string',
'country' => 'string',
'inputUsed' => 'email'
],
'contactPlus' => [
'billingPostalCode' => '95110'
],
'numberDeactivation' => [
'carrierName' => 'Verizon',
'lastDeactivated' => '2016-04-05T00:00:00Z',
'trackingSince' => '2014-10-06T00:00:00Z',
'status' => [
'code' => 2800,
'description' => 'Request successfully completed'
],
'recycledSinceLastVerification' => 'notRecycled'
],
'portingHistory' => [
'pastXDays' => 10
],
'breachedData' => [

],
'callForwardDetection' => [

],
'subscriberStatus' => [

],
'portingStatus' => [

],
'simSwap' => [

]
],
'consent' => [
'method' => 1,
'timestamp' => '2018-05-05T00:00:00Z'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

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

func main() {

url := "https://api-umbrella.io/api/services/phone-service/phoneid"

payload := strings.NewReader("{\n \"phoneNumber\": \"11234567890\",\n \"accountLifecycleEvent\": \"create\",\n \"externalId\": \"CustomExternalID7349\",\n \"originatingIp\": \"203.0.113.45\",\n \"addons\": {\n \"ageVerify\": {\n \"ageThreshold\": 21\n },\n \"contact\": {\n \"email\": \"test@example.com\"\n },\n \"contactMatch\": {\n \"firstName\": \"string\",\n \"lastName\": \"string\",\n \"address\": \"string\",\n \"city\": \"string\",\n \"postalCode\": \"string\",\n \"state\": \"string\",\n \"country\": \"string\",\n \"inputUsed\": \"email\"\n },\n \"contactPlus\": {\n \"billingPostalCode\": \"95110\"\n },\n \"numberDeactivation\": {\n \"carrierName\": \"Verizon\",\n \"lastDeactivated\": \"2016-04-05T00:00:00Z\",\n \"trackingSince\": \"2014-10-06T00:00:00Z\",\n \"status\": {\n \"code\": 2800,\n \"description\": \"Request successfully completed\"\n },\n \"recycledSinceLastVerification\": \"notRecycled\"\n },\n \"portingHistory\": {\n \"pastXDays\": 10\n },\n \"breachedData\": {},\n \"callForwardDetection\": {},\n \"subscriberStatus\": {},\n \"portingStatus\": {},\n \"simSwap\": {}\n },\n \"consent\": {\n \"method\": 1,\n \"timestamp\": \"2018-05-05T00:00:00Z\"\n }\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://api-umbrella.io/api/services/phone-service/phoneid")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"phoneNumber\": \"11234567890\",\n \"accountLifecycleEvent\": \"create\",\n \"externalId\": \"CustomExternalID7349\",\n \"originatingIp\": \"203.0.113.45\",\n \"addons\": {\n \"ageVerify\": {\n \"ageThreshold\": 21\n },\n \"contact\": {\n \"email\": \"test@example.com\"\n },\n \"contactMatch\": {\n \"firstName\": \"string\",\n \"lastName\": \"string\",\n \"address\": \"string\",\n \"city\": \"string\",\n \"postalCode\": \"string\",\n \"state\": \"string\",\n \"country\": \"string\",\n \"inputUsed\": \"email\"\n },\n \"contactPlus\": {\n \"billingPostalCode\": \"95110\"\n },\n \"numberDeactivation\": {\n \"carrierName\": \"Verizon\",\n \"lastDeactivated\": \"2016-04-05T00:00:00Z\",\n \"trackingSince\": \"2014-10-06T00:00:00Z\",\n \"status\": {\n \"code\": 2800,\n \"description\": \"Request successfully completed\"\n },\n \"recycledSinceLastVerification\": \"notRecycled\"\n },\n \"portingHistory\": {\n \"pastXDays\": 10\n },\n \"breachedData\": {},\n \"callForwardDetection\": {},\n \"subscriberStatus\": {},\n \"portingStatus\": {},\n \"simSwap\": {}\n },\n \"consent\": {\n \"method\": 1,\n \"timestamp\": \"2018-05-05T00:00:00Z\"\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api-umbrella.io/api/services/phone-service/phoneid")

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

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"phoneNumber\": \"11234567890\",\n \"accountLifecycleEvent\": \"create\",\n \"externalId\": \"CustomExternalID7349\",\n \"originatingIp\": \"203.0.113.45\",\n \"addons\": {\n \"ageVerify\": {\n \"ageThreshold\": 21\n },\n \"contact\": {\n \"email\": \"test@example.com\"\n },\n \"contactMatch\": {\n \"firstName\": \"string\",\n \"lastName\": \"string\",\n \"address\": \"string\",\n \"city\": \"string\",\n \"postalCode\": \"string\",\n \"state\": \"string\",\n \"country\": \"string\",\n \"inputUsed\": \"email\"\n },\n \"contactPlus\": {\n \"billingPostalCode\": \"95110\"\n },\n \"numberDeactivation\": {\n \"carrierName\": \"Verizon\",\n \"lastDeactivated\": \"2016-04-05T00:00:00Z\",\n \"trackingSince\": \"2014-10-06T00:00:00Z\",\n \"status\": {\n \"code\": 2800,\n \"description\": \"Request successfully completed\"\n },\n \"recycledSinceLastVerification\": \"notRecycled\"\n },\n \"portingHistory\": {\n \"pastXDays\": 10\n },\n \"breachedData\": {},\n \"callForwardDetection\": {},\n \"subscriberStatus\": {},\n \"portingStatus\": {},\n \"simSwap\": {}\n },\n \"consent\": {\n \"method\": 1,\n \"timestamp\": \"2018-05-05T00:00:00Z\"\n }\n}"

response = http.request(request)
puts response.read_body
{
  "status": true,
  "data": {
    "referenceId": "0123456789ABCDEF0123456789ABCDEF",
    "externalId": null,
    "status": {
      "code": 300,
      "description": "Transaction successfully completed",
      "updatedOn": "2025-01-01T00:00:00Z"
    },
    "location": {
      "city": "Countrywide",
      "state": null,
      "zip": null,
      "metroCode": null,
      "county": null,
      "country": {
        "name": "Exampleland",
        "iso2": "EX",
        "iso3": "EXL"
      },
      "coordinates": {
        "latitude": null,
        "longitude": null
      },
      "timeZone": {
        "name": null,
        "utcOffsetMax": "+0",
        "utcOffsetMin": "+0"
      }
    },
    "blocklisting": {
      "blocked": false,
      "blockCode": 0,
      "blockDescription": "Not blocked"
    },
    "numbering": {
      "cleansing": {
        "call": {
          "countryCode": "99",
          "phoneNumber": "5550123456",
          "cleansedCode": 100,
          "minLength": 7,
          "maxLength": 13
        },
        "sms": {
          "countryCode": "99",
          "phoneNumber": "5550123456",
          "cleansedCode": 100,
          "minLength": 7,
          "maxLength": 13
        }
      },
      "original": {
        "completePhoneNumber": "+995550123456",
        "countryCode": "99",
        "phoneNumber": "5550123456"
      }
    },
    "phoneType": {
      "code": "2",
      "description": "MOBILE"
    },
    "carrier": {
      "name": "Example Mobile Ltd"
    }
  }
}
{
"message": "Invalid request payload"
}
{
"message": "Unauthorized request"
}
{
"message": "Journey not found"
}
{
"error": "Too Many Requests",
"message": "Rate limit exceeded.",
"code": "429"
}
{
"message": "Internal Server Error"
}
{
"error": "Service Unavailable",
"message": "Service is unavailable.",
"code": "503"
}
For a usage description of the Phone ID Service, please refer to the Phone ID page.

Endpoint

POST /phone-service/phoneid

Swagger

Authorizations

Authorization
string
header
required

Bearer token obtained from POST /auth. Valid for 60 minutes.

Body

application/json
phoneNumber
string
required

Phone number to query, including country code (no spaces or symbols).

Example:

"11234567890"

accountLifecycleEvent
enum<string>

Stage of the user journey.

Available options:
create,
sign-in,
transact,
update,
delete
Example:

"create"

externalId
string

Customer-defined ID echoed in the response.

Example:

"CustomExternalID7349"

originatingIp
string

End user's IP address (IPv4 or IPv6).

Example:

"203.0.113.45"

addons
object

Add-on services to enrich the phone lookup.

Consent record for querying the number — required for certain add-ons.

Response

Successfully retrieved phone ID information.

status
boolean
required

Indicates if the API request itself was successful.

data
object
required