curl --request GET \
--url https://inboxapp.com/api/v2/contacts \
--header 'Authorization: Bearer <token>'import requests
url = "https://inboxapp.com/api/v2/contacts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://inboxapp.com/api/v2/contacts', 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://inboxapp.com/api/v2/contacts",
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://inboxapp.com/api/v2/contacts"
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://inboxapp.com/api/v2/contacts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://inboxapp.com/api/v2/contacts")
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{
"data": [
{
"id": "<string>",
"profiles": [
{
"id": "<string>",
"platform": "twitter",
"platformId": "<string>",
"username": "jane",
"handle": "@jane",
"displayName": "<string>",
"avatarUrl": "<string>",
"bio": "<string>",
"location": "<string>",
"websiteUrl": "<string>",
"websiteDomain": "<string>",
"verified": true,
"isOrganization": true,
"isProtected": true,
"followerCount": 123,
"followingCount": 123,
"postCount": 123,
"engagementCount": 123,
"listedCount": 123,
"accountStatus": "active",
"platformCreatedAt": "2026-09-14T10:32:00.000Z",
"profileUrl": "<string>",
"updatedAt": "2026-09-14T10:32:00.000Z",
"platformData": {
"_tag": "twitter",
"badge": "blue",
"profileType": "personal",
"professionalCategory": "<string>",
"urlEntities": [
{
"url": "<string>",
"expandedUrl": "<string>",
"displayUrl": "<string>",
"indices": [
123,
123
]
}
],
"bannerUrl": "<string>",
"rawData": {}
}
}
],
"statusId": "<string>",
"tagIds": [
"<string>"
],
"notes": "<string>",
"valuation": 123,
"assigneeId": "<string>",
"createdAt": "2026-09-14T10:32:00.000Z",
"updatedAt": "2026-09-14T10:32:00.000Z",
"status": {
"id": "<string>",
"name": "<string>",
"color": "#3b82f6",
"createdAt": "2026-09-14T10:32:00.000Z"
},
"tags": [
{
"id": "<string>",
"name": "<string>",
"color": "#3b82f6"
}
],
"assignee": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"imageUrl": "<string>",
"role": "owner",
"createdAt": "2026-09-14T10:32:00.000Z"
}
}
],
"nextCursor": "<string>"
}{
"code": "invalidCursor",
"message": "<string>",
"details": null,
"requestId": "<string>"
}{
"code": "unauthorized",
"message": "<string>",
"details": null,
"requestId": "<string>"
}{
"code": "platformNotAvailable",
"message": "<string>",
"details": {
"platform": "twitter"
},
"requestId": "<string>"
}{
"code": "rateLimited",
"message": "<string>",
"details": {
"window": "minute",
"limit": 123,
"resetAt": "2026-09-14T10:32:00.000Z"
},
"requestId": "<string>"
}{
"code": "internal",
"message": "<string>",
"details": null,
"requestId": "<string>"
}Find contacts
Finds contacts by the platform identity of one of their profiles: a platform with platformId or username.
curl --request GET \
--url https://inboxapp.com/api/v2/contacts \
--header 'Authorization: Bearer <token>'import requests
url = "https://inboxapp.com/api/v2/contacts"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://inboxapp.com/api/v2/contacts', 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://inboxapp.com/api/v2/contacts",
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://inboxapp.com/api/v2/contacts"
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://inboxapp.com/api/v2/contacts")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://inboxapp.com/api/v2/contacts")
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{
"data": [
{
"id": "<string>",
"profiles": [
{
"id": "<string>",
"platform": "twitter",
"platformId": "<string>",
"username": "jane",
"handle": "@jane",
"displayName": "<string>",
"avatarUrl": "<string>",
"bio": "<string>",
"location": "<string>",
"websiteUrl": "<string>",
"websiteDomain": "<string>",
"verified": true,
"isOrganization": true,
"isProtected": true,
"followerCount": 123,
"followingCount": 123,
"postCount": 123,
"engagementCount": 123,
"listedCount": 123,
"accountStatus": "active",
"platformCreatedAt": "2026-09-14T10:32:00.000Z",
"profileUrl": "<string>",
"updatedAt": "2026-09-14T10:32:00.000Z",
"platformData": {
"_tag": "twitter",
"badge": "blue",
"profileType": "personal",
"professionalCategory": "<string>",
"urlEntities": [
{
"url": "<string>",
"expandedUrl": "<string>",
"displayUrl": "<string>",
"indices": [
123,
123
]
}
],
"bannerUrl": "<string>",
"rawData": {}
}
}
],
"statusId": "<string>",
"tagIds": [
"<string>"
],
"notes": "<string>",
"valuation": 123,
"assigneeId": "<string>",
"createdAt": "2026-09-14T10:32:00.000Z",
"updatedAt": "2026-09-14T10:32:00.000Z",
"status": {
"id": "<string>",
"name": "<string>",
"color": "#3b82f6",
"createdAt": "2026-09-14T10:32:00.000Z"
},
"tags": [
{
"id": "<string>",
"name": "<string>",
"color": "#3b82f6"
}
],
"assignee": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"imageUrl": "<string>",
"role": "owner",
"createdAt": "2026-09-14T10:32:00.000Z"
}
}
],
"nextCursor": "<string>"
}{
"code": "invalidCursor",
"message": "<string>",
"details": null,
"requestId": "<string>"
}{
"code": "unauthorized",
"message": "<string>",
"details": null,
"requestId": "<string>"
}{
"code": "platformNotAvailable",
"message": "<string>",
"details": {
"platform": "twitter"
},
"requestId": "<string>"
}{
"code": "rateLimited",
"message": "<string>",
"details": {
"window": "minute",
"limit": 123,
"resetAt": "2026-09-14T10:32:00.000Z"
},
"requestId": "<string>"
}{
"code": "internal",
"message": "<string>",
"details": null,
"requestId": "<string>"
}Query Parameters
The platform. Every team can use twitter; a team may have others enabled.
"twitter"
Contacts with a profile of this platform ID. Give this or the other identity filter, repeating the key for up to 100. No match is an empty page.
1001Contacts with a profile of this username, without its display prefix. One username may match several contacts. Give this or the other identity filter, repeating the key for up to 100. No match is an empty page.
1001Related resources to embed next to their ID field, one path per key, at most 4.
4status, tags, assignee Page size, from 1 to 100. Defaults to 50.
1 <= x <= 100The previous page's nextCursor. Opaque, and valid only with the filters it was issued for.
Was this page helpful?