curl --request GET \
--url "https://api.trestleiq.com/3.2/phone?phone=2069735100" \
--header "x-api-key: YOUR_API_KEY"
const response = await fetch(
"https://api.trestleiq.com/3.2/phone?phone=2069735100",
{
headers: {
"x-api-key": "YOUR_API_KEY",
},
}
);
const data = await response.json();
import axios from "axios";
const { data } = await axios.get(
"https://api.trestleiq.com/3.2/phone?phone=2069735100",
{
headers: {
"x-api-key": "YOUR_API_KEY",
},
}
);
console.log(data);
import requests
headers = {"x-api-key": "YOUR_API_KEY"}
response = requests.get(
"https://api.trestleiq.com/3.2/phone",
params={"phone": "2069735100"},
headers=headers,
timeout=30,
)
data = response.json()
print(data)
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var response = await client.GetAsync("https://api.trestleiq.com/3.2/phone?phone=2069735100");
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.trestleiq.com/3.2/phone?phone=2069735100", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
<?php
$curl = curl_init("https://api.trestleiq.com/3.2/phone?phone=2069735100");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["x-api-key: YOUR_API_KEY"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ReversePhoneExample {
public static void main(String[] args) throws Exception {
HttpRequest request =
HttpRequest.newBuilder()
.uri(URI.create("https://api.trestleiq.com/3.2/phone?phone=2069735100"))
.header("x-api-key", "YOUR_API_KEY")
.GET()
.build();
HttpResponse<String> response =
HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
{
"id": "Phone.3dbb6fef-a2df-4b08-cfe3-bc7128b6f5b4",
"phone_number": "2069735100",
"is_valid": true,
"country_calling_code": "1",
"line_type": "NonFixedVOIP",
"carrier": "Trestle Telco",
"is_prepaid": false,
"is_commercial": true,
"owners": [
{
"id": "Person.fffdcf06-0929-4b5a-9921-ee49b101ca84",
"name": "Waidong L Syrws",
"firstname": "Waidong",
"middlename": "L",
"lastname": "Syrws",
"alternate_names": [
"Sryws W L"
],
"age_range": "25-29",
"gender": null,
"type": "Person",
"link_to_phone_start_date": "2019-03-23",
"industry": null,
"current_addresses": [
{
"id": "Location.d1a40ed5-a70a-46f8-80a9-bb4ac27e3a01",
"location_type": "Address",
"street_line_1": "100 Syrws St",
"street_line_2": "Ste 1",
"city": "Lynden",
"postal_code": "98264",
"zip4": "98264-9999",
"state_code": "WA",
"country_code": "US",
"lat_long": {
"latitude": 0,
"longitude": 0,
"accuracy": "Neighborhood"
},
"delivery_point": "SingleUnit",
"link_to_person_start_date": "2011-10-05"
}
]
}
],
"error": {
"name": "InternalError",
"message": "Could not retrieve entire response"
},
"warnings": [
"Missing Input"
]
}
curl --request GET \
--url "https://api.trestleiq.com/3.2/phone?phone=2069735100" \
--header "x-api-key: YOUR_API_KEY"
const response = await fetch(
"https://api.trestleiq.com/3.2/phone?phone=2069735100",
{
headers: {
"x-api-key": "YOUR_API_KEY",
},
}
);
const data = await response.json();
import axios from "axios";
const { data } = await axios.get(
"https://api.trestleiq.com/3.2/phone?phone=2069735100",
{
headers: {
"x-api-key": "YOUR_API_KEY",
},
}
);
console.log(data);
import requests
headers = {"x-api-key": "YOUR_API_KEY"}
response = requests.get(
"https://api.trestleiq.com/3.2/phone",
params={"phone": "2069735100"},
headers=headers,
timeout=30,
)
data = response.json()
print(data)
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var response = await client.GetAsync("https://api.trestleiq.com/3.2/phone?phone=2069735100");
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.trestleiq.com/3.2/phone?phone=2069735100", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
<?php
$curl = curl_init("https://api.trestleiq.com/3.2/phone?phone=2069735100");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["x-api-key: YOUR_API_KEY"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ReversePhoneExample {
public static void main(String[] args) throws Exception {
HttpRequest request =
HttpRequest.newBuilder()
.uri(URI.create("https://api.trestleiq.com/3.2/phone?phone=2069735100"))
.header("x-api-key", "YOUR_API_KEY")
.GET()
.build();
HttpResponse<String> response =
HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
{
"id": "Phone.3dbb6fef-a2df-4b08-cfe3-bc7128b6f5b4",
"phone_number": "2069735100",
"is_valid": true,
"country_calling_code": "1",
"line_type": "NonFixedVOIP",
"carrier": "Trestle Telco",
"is_prepaid": false,
"is_commercial": true,
"owners": [
{
"id": "Person.fffdcf06-0929-4b5a-9921-ee49b101ca84",
"name": "Waidong L Syrws",
"firstname": "Waidong",
"middlename": "L",
"lastname": "Syrws",
"alternate_names": [
"Sryws W L"
],
"age_range": "25-29",
"gender": null,
"type": "Person",
"link_to_phone_start_date": "2019-03-23",
"industry": null,
"current_addresses": [
{
"id": "Location.d1a40ed5-a70a-46f8-80a9-bb4ac27e3a01",
"location_type": "Address",
"street_line_1": "100 Syrws St",
"street_line_2": "Ste 1",
"city": "Lynden",
"postal_code": "98264",
"zip4": "98264-9999",
"state_code": "WA",
"country_code": "US",
"lat_long": {
"latitude": 0,
"longitude": 0,
"accuracy": "Neighborhood"
},
"delivery_point": "SingleUnit",
"link_to_person_start_date": "2011-10-05"
}
]
}
],
"error": {
"name": "InternalError",
"message": "Could not retrieve entire response"
},
"warnings": [
"Missing Input"
]
}
Reverse Phone API
Reverse Phone API Documentation
Reverse Phone API Documentation: Verify a number and enrich it with names, demographics, addresses, and phone metadata.
curl --request GET \
--url "https://api.trestleiq.com/3.2/phone?phone=2069735100" \
--header "x-api-key: YOUR_API_KEY"
const response = await fetch(
"https://api.trestleiq.com/3.2/phone?phone=2069735100",
{
headers: {
"x-api-key": "YOUR_API_KEY",
},
}
);
const data = await response.json();
import axios from "axios";
const { data } = await axios.get(
"https://api.trestleiq.com/3.2/phone?phone=2069735100",
{
headers: {
"x-api-key": "YOUR_API_KEY",
},
}
);
console.log(data);
import requests
headers = {"x-api-key": "YOUR_API_KEY"}
response = requests.get(
"https://api.trestleiq.com/3.2/phone",
params={"phone": "2069735100"},
headers=headers,
timeout=30,
)
data = response.json()
print(data)
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var response = await client.GetAsync("https://api.trestleiq.com/3.2/phone?phone=2069735100");
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.trestleiq.com/3.2/phone?phone=2069735100", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
<?php
$curl = curl_init("https://api.trestleiq.com/3.2/phone?phone=2069735100");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["x-api-key: YOUR_API_KEY"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ReversePhoneExample {
public static void main(String[] args) throws Exception {
HttpRequest request =
HttpRequest.newBuilder()
.uri(URI.create("https://api.trestleiq.com/3.2/phone?phone=2069735100"))
.header("x-api-key", "YOUR_API_KEY")
.GET()
.build();
HttpResponse<String> response =
HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
{
"id": "Phone.3dbb6fef-a2df-4b08-cfe3-bc7128b6f5b4",
"phone_number": "2069735100",
"is_valid": true,
"country_calling_code": "1",
"line_type": "NonFixedVOIP",
"carrier": "Trestle Telco",
"is_prepaid": false,
"is_commercial": true,
"owners": [
{
"id": "Person.fffdcf06-0929-4b5a-9921-ee49b101ca84",
"name": "Waidong L Syrws",
"firstname": "Waidong",
"middlename": "L",
"lastname": "Syrws",
"alternate_names": [
"Sryws W L"
],
"age_range": "25-29",
"gender": null,
"type": "Person",
"link_to_phone_start_date": "2019-03-23",
"industry": null,
"current_addresses": [
{
"id": "Location.d1a40ed5-a70a-46f8-80a9-bb4ac27e3a01",
"location_type": "Address",
"street_line_1": "100 Syrws St",
"street_line_2": "Ste 1",
"city": "Lynden",
"postal_code": "98264",
"zip4": "98264-9999",
"state_code": "WA",
"country_code": "US",
"lat_long": {
"latitude": 0,
"longitude": 0,
"accuracy": "Neighborhood"
},
"delivery_point": "SingleUnit",
"link_to_person_start_date": "2011-10-05"
}
]
}
],
"error": {
"name": "InternalError",
"message": "Could not retrieve entire response"
},
"warnings": [
"Missing Input"
]
}
curl --request GET \
--url "https://api.trestleiq.com/3.2/phone?phone=2069735100" \
--header "x-api-key: YOUR_API_KEY"
const response = await fetch(
"https://api.trestleiq.com/3.2/phone?phone=2069735100",
{
headers: {
"x-api-key": "YOUR_API_KEY",
},
}
);
const data = await response.json();
import axios from "axios";
const { data } = await axios.get(
"https://api.trestleiq.com/3.2/phone?phone=2069735100",
{
headers: {
"x-api-key": "YOUR_API_KEY",
},
}
);
console.log(data);
import requests
headers = {"x-api-key": "YOUR_API_KEY"}
response = requests.get(
"https://api.trestleiq.com/3.2/phone",
params={"phone": "2069735100"},
headers=headers,
timeout=30,
)
data = response.json()
print(data)
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var response = await client.GetAsync("https://api.trestleiq.com/3.2/phone?phone=2069735100");
var body = await response.Content.ReadAsStringAsync();
Console.WriteLine(body);
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.trestleiq.com/3.2/phone?phone=2069735100", nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}
<?php
$curl = curl_init("https://api.trestleiq.com/3.2/phone?phone=2069735100");
curl_setopt($curl, CURLOPT_HTTPHEADER, ["x-api-key: YOUR_API_KEY"]);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ReversePhoneExample {
public static void main(String[] args) throws Exception {
HttpRequest request =
HttpRequest.newBuilder()
.uri(URI.create("https://api.trestleiq.com/3.2/phone?phone=2069735100"))
.header("x-api-key", "YOUR_API_KEY")
.GET()
.build();
HttpResponse<String> response =
HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
{
"id": "Phone.3dbb6fef-a2df-4b08-cfe3-bc7128b6f5b4",
"phone_number": "2069735100",
"is_valid": true,
"country_calling_code": "1",
"line_type": "NonFixedVOIP",
"carrier": "Trestle Telco",
"is_prepaid": false,
"is_commercial": true,
"owners": [
{
"id": "Person.fffdcf06-0929-4b5a-9921-ee49b101ca84",
"name": "Waidong L Syrws",
"firstname": "Waidong",
"middlename": "L",
"lastname": "Syrws",
"alternate_names": [
"Sryws W L"
],
"age_range": "25-29",
"gender": null,
"type": "Person",
"link_to_phone_start_date": "2019-03-23",
"industry": null,
"current_addresses": [
{
"id": "Location.d1a40ed5-a70a-46f8-80a9-bb4ac27e3a01",
"location_type": "Address",
"street_line_1": "100 Syrws St",
"street_line_2": "Ste 1",
"city": "Lynden",
"postal_code": "98264",
"zip4": "98264-9999",
"state_code": "WA",
"country_code": "US",
"lat_long": {
"latitude": 0,
"longitude": 0,
"accuracy": "Neighborhood"
},
"delivery_point": "SingleUnit",
"link_to_person_start_date": "2011-10-05"
}
]
}
],
"error": {
"name": "InternalError",
"message": "Could not retrieve entire response"
},
"warnings": [
"Missing Input"
]
}
Reverse Phone API 3.2
GET https://api.trestleiq.com/3.2/phone?phone=[insert_phone_number]
Query Parameters
string
required
The phone number in E.164 or local format. The default country calling code is +1 (USA). Example:
phone=2069735100string (ISO-3166-2)
The ISO-3166 alpha-2 country code of the phone number. See: ISO-3166. Example:
phone.country_hint=USstring
Person or Business name associated with the phone number. If multiple names are associated with the phone in Trestle’s database, this name will be ranked higher. Example:
phone.name_hint=John Doestring
The postal code of the subscriber address associated with the phone number. If multiple names or addresses are associated with the phone in Trestle’s database, this postal code hint will be used to rank name/address higher. Example:
phone.postal_code_hint=98264Header Parameters
string
required
Your API key for authentication. Example:
{{ apiKey }}Response
string or null <Phone.<uuid>>
The persistent ID of the phone number. Format:
Phone.<uuid>string or null (PhoneNumber)
The phone number in E.164 or local format. The default country calling code is +1 (USA).
boolean or null
True if the phone number is valid.
string or null <E.164>
The country code of the phone number.
string or null
The line type of the phone number. Possible values:
Landline- Traditional wired phone lineMobile- Wireless phone lineFixedVOIP- VOIP number connected to a physical addressNonFixedVOIP- VOIP number unconnected to a fixed physical addressPremium- Caller pays a premium for the callTollFree- Callee pays for callVoicemail- Voicemail-only serviceOther- Line type is unclear
string or null
The company that provides voice and/or data services for the phone number. Carriers are returned at the MVNO level.
boolean or null
True if the phone is associated with a prepaid account.
boolean or null
True if the phone number is registered to a business.
object[]
The owner(s) associated to the phone.
Show owner object
Show owner object
string or null <Person.<uuid>>
The persistent ID of the person.
string or null
The full name of the person.
string or null (Firstname)
The first name of the person.
string or null (Middlename)
The middle name (or middle initial) of the person.
string or null (Lastname)
The last name of the person.
string[]
Alternate names of the person associated with the phone.
string or null (AgeRange)
The age of the person in a 5-year range.
string or null (Gender)
The gender of the person.
string
The type of the legal entity.
- Person: The legal entity is a person.
- Business: The legal entity is a company. Enum: Business Person
string or null
The date when the person was first linked to the phone number.
string[] or null
The industry classification of the business associated to the phone.
object[]
A list of unique current locations associated with the Person or Business in the belongs_to array.
Show address object
Show address object
string or null <Location.<uuid>>
The persistent ID of the address.
string or null
The type of the location. Enum: Address ZipPlus4 PostalCode City State Country
string or null
The first line of the street part in the structured address.
string or null
The second line of the street part in the structured address.
string or null
The name of the city in the structured address.
string or null
The postal code of the structured address.
string or null ^\d+-\d{4}$
The ZIP+4 code of the structured address (USA).
string or null
The state code of the structured address.
object or null
The coordinates of the geographical location of the address.
string or null (DeliveryPoint)
The type of the delivery point of the address. Enum: SingleUnit MultiUnit POBox PartialAddress
string or null (LinkToPersonStartDate)
The date when the address was first linked to the person.
object(PartialError)
string[]
Warnings returned as part of the response, if applicable.Enum: Invalid Input International number. Not authorized Missing Input
Error Responses
400 Bad Request
The server cannot process the request due to client-side errors.Check for: Syntax errors in the request script, malformed JSON, or invalid parameters.403 Forbidden
The request is understood, but the server is refusing to fulfill it. Error responses include anerrorCode field identifying the cause:-
Invalid API Key (
AUTHENTICATION_FAILED): The key is incorrect, deactivated, or missing from the request. Check for: Trailing spaces, syntax errors, incorrect character counts, or a missingx-api-keyheader. -
API Key Disabled (Portal Issue) (
AUTHENTICATION_FAILED): The key is inactive. Check for: Insufficient funds in your self-serve wallet or if a Trestle Admin manually deactivated your API key. -
API Key does not have Product Access (Portal Issue) (
AUTHENTICATION_FAILED): The API key is active, but it is not enabled for this product or API version. Check for: Incorrect endpoint, incorrect API version, or missing product access on the key. -
API Key Expired (
AUTHENTICATION_FAILED): The key has reached its end-of-life (primarily affects Trial users).
429 Too Many Requests
You have sent too many requests in a given amount of time.-
Rate Limit Exceeded (
RATE_LIMIT_EXCEEDED): You have surpassed the queries-per-second (QPS) threshold for your tier. -
Quota Exceeded (Portal Issue) (
QUOTA_EXCEEDED): You have reached the total volume allowed for your current billing cycle. Upgrade your plan in the portal to resume service.
