curl --request GET \
--url https://api.contiguity.com/intelligence/{number} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.contiguity.com/intelligence/{number}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.contiguity.com/intelligence/{number}', 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.contiguity.com/intelligence/{number}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.contiguity.com/intelligence/{number}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.contiguity.com/intelligence/{number}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.contiguity.com/intelligence/{number}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "req_xxxxxxxxxxxxxxxx",
"timestamp": 1790546990555,
"api_version": "v2026.9.27",
"object": "response",
"data": {
"number": "+13129457420",
"formatted": "(312) 945-7420",
"country": "US",
"caller_name": "JANE DOE",
"line_type": "voip",
"city": "CHICAGO",
"region": "Illinois",
"carrier": {
"name": "AT&T Wireless",
"type": "mobile",
"mcc": "310",
"mnc": "410"
},
"ported": {
"ported": true,
"date": "2017-10-20",
"original_carrier": "Verizon Wireless",
"current_carrier": "AT&T Wireless"
},
"imessage": null,
"facetime": null,
"contiguity_risk_scoring_beta": null
}
}{
"id": "err_xxxxxxxxxxxxxxxx",
"timestamp": 1790546990555,
"api_version": "v2026.9.27",
"object": "error",
"data": {
"error": "Bad Request",
"status": 400
}
}{
"id": "err_xxxxxxxxxxxxxxxx",
"timestamp": 1790546990555,
"api_version": "v2026.9.27",
"object": "error",
"data": {
"error": "Unauthorized",
"status": 401
}
}{
"id": "err_xxxxxxxxxxxxxxxx",
"timestamp": 1790546990555,
"api_version": "v2026.9.27",
"object": "error",
"data": {
"error": "Forbidden",
"status": 403
}
}{
"id": "err_xxxxxxxxxxxxxxxx",
"timestamp": 1790546990555,
"api_version": "v2026.9.27",
"object": "error",
"data": {
"error": "Internal Server Error",
"status": 500
}
}Look up a phone number
Carrier, CNAM, porting, and optional iMessage / FaceTime / risk data for an E.164 number
curl --request GET \
--url https://api.contiguity.com/intelligence/{number} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.contiguity.com/intelligence/{number}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.contiguity.com/intelligence/{number}', 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.contiguity.com/intelligence/{number}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.contiguity.com/intelligence/{number}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.contiguity.com/intelligence/{number}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.contiguity.com/intelligence/{number}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "req_xxxxxxxxxxxxxxxx",
"timestamp": 1790546990555,
"api_version": "v2026.9.27",
"object": "response",
"data": {
"number": "+13129457420",
"formatted": "(312) 945-7420",
"country": "US",
"caller_name": "JANE DOE",
"line_type": "voip",
"city": "CHICAGO",
"region": "Illinois",
"carrier": {
"name": "AT&T Wireless",
"type": "mobile",
"mcc": "310",
"mnc": "410"
},
"ported": {
"ported": true,
"date": "2017-10-20",
"original_carrier": "Verizon Wireless",
"current_carrier": "AT&T Wireless"
},
"imessage": null,
"facetime": null,
"contiguity_risk_scoring_beta": null
}
}{
"id": "err_xxxxxxxxxxxxxxxx",
"timestamp": 1790546990555,
"api_version": "v2026.9.27",
"object": "error",
"data": {
"error": "Bad Request",
"status": 400
}
}{
"id": "err_xxxxxxxxxxxxxxxx",
"timestamp": 1790546990555,
"api_version": "v2026.9.27",
"object": "error",
"data": {
"error": "Unauthorized",
"status": 401
}
}{
"id": "err_xxxxxxxxxxxxxxxx",
"timestamp": 1790546990555,
"api_version": "v2026.9.27",
"object": "error",
"data": {
"error": "Forbidden",
"status": 403
}
}{
"id": "err_xxxxxxxxxxxxxxxx",
"timestamp": 1790546990555,
"api_version": "v2026.9.27",
"object": "error",
"data": {
"error": "Internal Server Error",
"status": 500
}
}number_intelligence entitlement.imessage and facetime are null unless you set those query flags to true. The two flags are independent.
contiguity_risk_scoring_beta=true requires both imessage=true and facetime=true. Otherwise the request fails with 400. When risk scoring is returned, imessage and facetime are booleans (never null).
contiguity_risk_scoring_beta.level | score |
|---|---|
low | < 0.2 |
medium | < 0.45 |
high | < 0.7 |
very_high | otherwise |
0.00 to 0.99.
Useful in conjunction with other fraud signals to determine if a user is risky.

Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Phone number in E.164 format.
"+13129457420"
Query Parameters
Set to true to include iMessage availability. Independent of facetime. Required (with facetime=true) for contiguity_risk_scoring_beta.
true, false "false"
Set to true to include FaceTime availability. Independent of imessage. Required (with imessage=true) for contiguity_risk_scoring_beta.
true, false "false"
Set to true to include Contiguity risk scoring. Requires imessage=true and facetime=true; otherwise the request fails with 400. When this is returned, imessage and facetime are never null.
true, false "false"
Response
Returns carrier, CNAM, and porting data for an E.164 number. Optional query flags add iMessage availability, FaceTime availability, and Contiguity risk scoring. Risk scoring requires both availability flags; when it is returned, imessage and facetime are booleans (never null). Requires the number_intelligence entitlement. Rate limited to 6 requests per minute.
"req_xxxxxxxxxxxxxxxx"
1790546990555
"v2026.9.27"
"response"
Carrier lookup. imessage and facetime are booleans only when those query flags are true; otherwise null. contiguity_risk_scoring_beta is always null.
- Without risk scoring
- With risk scoring
Show child attributes
Show child attributes
{
"number": "+13129457420",
"formatted": "(312) 945-7420",
"country": "US",
"caller_name": "JANE DOE",
"line_type": "voip",
"city": "CHICAGO",
"region": "Illinois",
"carrier": {
"name": "AT&T Wireless",
"type": "mobile",
"mcc": "310",
"mnc": "410"
},
"ported": {
"ported": true,
"date": "2017-10-20",
"original_carrier": "Verizon Wireless",
"current_carrier": "AT&T Wireless"
},
"imessage": null,
"facetime": null,
"contiguity_risk_scoring_beta": null
}
Was this page helpful?