curl --request GET \
--url https://inboxapp.com/api/v1/threads/{threadId}/messages \
--header 'Authorization: Bearer <token>'import requests
url = "https://inboxapp.com/api/v1/threads/{threadId}/messages"
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/v1/threads/{threadId}/messages', 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/v1/threads/{threadId}/messages",
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/v1/threads/{threadId}/messages"
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/v1/threads/{threadId}/messages")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://inboxapp.com/api/v1/threads/{threadId}/messages")
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{
"teamId": "<string>",
"threadId": "<string>",
"messages": [
{
"platform": "twitter",
"teamId": "df6jbw4h36...",
"threadId": "df6jbw4h36...",
"id": "df6jbw4h36...",
"userId": "df6jbw4h36...",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"platformId": "1234567890",
"content": "Hey, I'm reaching out from Acme Agency...",
"campaignId": "df6jbw4h36...",
"authorId": "df6jbw4h36...",
"origin": "internal",
"replyData": "<unknown>",
"forwardData": "<unknown>",
"entities": "<unknown>",
"attachment": "<unknown>",
"reactions": [
"<unknown>"
],
"isEncrypted": true,
"isEdited": true,
"failed": true,
"deletedAt": "2023-11-07T05:31:56Z",
"platformDeletedAt": "2023-11-07T05:31:56Z"
}
],
"nextCursor": {
"timestamp": "2023-11-07T05:31:56Z",
"id": "<string>"
},
"isSyncing": true
}List messages
List messages in a thread with pagination support
curl --request GET \
--url https://inboxapp.com/api/v1/threads/{threadId}/messages \
--header 'Authorization: Bearer <token>'import requests
url = "https://inboxapp.com/api/v1/threads/{threadId}/messages"
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/v1/threads/{threadId}/messages', 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/v1/threads/{threadId}/messages",
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/v1/threads/{threadId}/messages"
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/v1/threads/{threadId}/messages")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://inboxapp.com/api/v1/threads/{threadId}/messages")
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{
"teamId": "<string>",
"threadId": "<string>",
"messages": [
{
"platform": "twitter",
"teamId": "df6jbw4h36...",
"threadId": "df6jbw4h36...",
"id": "df6jbw4h36...",
"userId": "df6jbw4h36...",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"platformId": "1234567890",
"content": "Hey, I'm reaching out from Acme Agency...",
"campaignId": "df6jbw4h36...",
"authorId": "df6jbw4h36...",
"origin": "internal",
"replyData": "<unknown>",
"forwardData": "<unknown>",
"entities": "<unknown>",
"attachment": "<unknown>",
"reactions": [
"<unknown>"
],
"isEncrypted": true,
"isEdited": true,
"failed": true,
"deletedAt": "2023-11-07T05:31:56Z",
"platformDeletedAt": "2023-11-07T05:31:56Z"
}
],
"nextCursor": {
"timestamp": "2023-11-07T05:31:56Z",
"id": "<string>"
},
"isSyncing": true
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
The ID of the thread to list messages from.
^[0-9a-z]+$Query Parameters
The ID of the message to start pagination from. Must be used together with cursorTimestamp. Cannot be combined with the cursor object parameter.
^[0-9a-z]+$The timestamp of the message to start pagination from. Must be used together with cursorId. Cannot be combined with the cursor object parameter.
"2025-11-10T18:03:16.000Z"
Pagination cursor using bracket notation. Omit to start from the beginning. Prefer using cursorId and cursorTimestamp instead for simpler query string encoding.
Show child attributes
Show child attributes
Maximum number of messages to return per page. Defaults to 50, maximum 100.
1 <= x <= 10050
Response
OK
^[0-9a-z]+$^[0-9a-z]+$Show child attributes
Show child attributes
Show child attributes
Show child attributes
Whether the thread is currently syncing older messages from the platform. If true, additional messages may become available shortly. Poll the endpoint to retrieve newly synced messages.
Was this page helpful?