Phone Number Insights
curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"country_code": "<string>",
"phone_number": "<string>",
"trustFlowId": 0,
"trustValidationId": "{your_trust_validation_id}"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights"
payload = {
"country_code": "<string>",
"phone_number": "<string>",
"trustFlowId": 0,
"trustValidationId": "{your_trust_validation_id}"
}
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({
country_code: '<string>',
phone_number: '<string>',
trustFlowId: 0,
trustValidationId: '{your_trust_validation_id}'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights', 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://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights",
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([
'country_code' => '<string>',
'phone_number' => '<string>',
'trustFlowId' => 0,
'trustValidationId' => '{your_trust_validation_id}'
]),
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://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights"
payload := strings.NewReader("{\n \"country_code\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_trust_validation_id}\"\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://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"country_code\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_trust_validation_id}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights")
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 \"country_code\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_trust_validation_id}\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Phone number insights processed successfully",
"data": {
"basic": {
"phoneNumber": "60173413545",
"country": "MY",
"phoneType": "MOBILE",
"isActive": "YES",
"simType": "POSTPAID",
"originalCarrier": "MAXIS BROADBAND SDN BHD",
"currentCarrier": {
"carrierType": "MNO_MAJOR",
"prepaidMarketDominance": "HIGH",
"simRegistrationRegime": "STRICT_ID",
"networkName": "MAXIS BROADBAND SDN BHD",
"serviceProfileId": "60503",
"mcc": "502",
"mnc": "12"
},
"lifecycle": {
"activation": {
"tenure": {
"min": 24,
"max": 48
},
"tenureBracket": "morethan24months",
"activationDate": "2021-07-18T10:45:30Z",
"activeSinceXDays": 900
},
"porting": {
"portedDate": "2023-11-02T14:20:00Z",
"numberOfPorts": 1,
"portedSinceXDays": 120,
"portedEvents": [
{
"carrierCircle": "MAXIS BROADBAND SDN BHD",
"portedDate": "2023-11-02T14:20:00Z"
}
],
"avgDaysBetweenPorts": 0,
"portAgeBucket": "Moderate (91–180 days)",
"portFrequency": 0.08,
"portingVelocityCategory": "Low",
"portingPattern": "Unknown",
"portingYearBucket": "Last Year",
"recentPortFlag": false
}
},
"risk": {
"isPorted": true,
"isDisposable": false,
"phoneTypeRisk": "Low",
"phoneTrustIndex": 0,
"networkStabilityIndex": 5,
"currentNetworkIsPremium": "True"
}
}
},
"verificationStatus": "VERIFIED",
"verificationStatusCode": 3,
"trustFlowId": 0,
"trustValidationId": "{your_trust_validation_id}",
"verificationType": "phone_number_insights",
"metadata": null,
"createdAt": "<string>"
}Alternative Verifications
Phone Number Insights
Retrieve foundational phone number intelligence including carrier data, lifecycle history, and risk indicators.
POST
/
api
/
v3
/
verifications
/
phone-number-insights
Phone Number Insights
curl --request POST \
--url https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"country_code": "<string>",
"phone_number": "<string>",
"trustFlowId": 0,
"trustValidationId": "{your_trust_validation_id}"
}
'import requests
url = "https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights"
payload = {
"country_code": "<string>",
"phone_number": "<string>",
"trustFlowId": 0,
"trustValidationId": "{your_trust_validation_id}"
}
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({
country_code: '<string>',
phone_number: '<string>',
trustFlowId: 0,
trustValidationId: '{your_trust_validation_id}'
})
};
fetch('https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights', 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://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights",
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([
'country_code' => '<string>',
'phone_number' => '<string>',
'trustFlowId' => 0,
'trustValidationId' => '{your_trust_validation_id}'
]),
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://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights"
payload := strings.NewReader("{\n \"country_code\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_trust_validation_id}\"\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://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"country_code\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_trust_validation_id}\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{environment-subdomain}.idmetagroup.com/api/v3/verifications/phone-number-insights")
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 \"country_code\": \"<string>\",\n \"phone_number\": \"<string>\",\n \"trustFlowId\": 0,\n \"trustValidationId\": \"{your_trust_validation_id}\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Phone number insights processed successfully",
"data": {
"basic": {
"phoneNumber": "60173413545",
"country": "MY",
"phoneType": "MOBILE",
"isActive": "YES",
"simType": "POSTPAID",
"originalCarrier": "MAXIS BROADBAND SDN BHD",
"currentCarrier": {
"carrierType": "MNO_MAJOR",
"prepaidMarketDominance": "HIGH",
"simRegistrationRegime": "STRICT_ID",
"networkName": "MAXIS BROADBAND SDN BHD",
"serviceProfileId": "60503",
"mcc": "502",
"mnc": "12"
},
"lifecycle": {
"activation": {
"tenure": {
"min": 24,
"max": 48
},
"tenureBracket": "morethan24months",
"activationDate": "2021-07-18T10:45:30Z",
"activeSinceXDays": 900
},
"porting": {
"portedDate": "2023-11-02T14:20:00Z",
"numberOfPorts": 1,
"portedSinceXDays": 120,
"portedEvents": [
{
"carrierCircle": "MAXIS BROADBAND SDN BHD",
"portedDate": "2023-11-02T14:20:00Z"
}
],
"avgDaysBetweenPorts": 0,
"portAgeBucket": "Moderate (91–180 days)",
"portFrequency": 0.08,
"portingVelocityCategory": "Low",
"portingPattern": "Unknown",
"portingYearBucket": "Last Year",
"recentPortFlag": false
}
},
"risk": {
"isPorted": true,
"isDisposable": false,
"phoneTypeRisk": "Low",
"phoneTrustIndex": 0,
"networkStabilityIndex": 5,
"currentNetworkIsPremium": "True"
}
}
},
"verificationStatus": "VERIFIED",
"verificationStatusCode": 3,
"trustFlowId": 0,
"trustValidationId": "{your_trust_validation_id}",
"verificationType": "phone_number_insights",
"metadata": null,
"createdAt": "<string>"
}Authorizations
Use Bearer {your_api_token} in the Authorization header.
Body
application/json
Country calling code for the phone number. Example: +60.
Phone number without the country code prefix.
Trust flow ID used when you created the trust validation.
Trust validation ID returned from create trust validation.
Response
200 - application/json
Phone number insights processed successfully
Phone basic intelligence returned for the submitted number. Fields are dynamic—omitted when no data is available.
Show child attributes
Show child attributes
Timestamp when the verification was created.

