curl --request GET \
--url https://inboxapp.com/api/v2/messages/{messageId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://inboxapp.com/api/v2/messages/{messageId}"
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/messages/{messageId}', 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/messages/{messageId}",
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/messages/{messageId}"
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/messages/{messageId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://inboxapp.com/api/v2/messages/{messageId}")
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": "<string>",
"threadId": "<string>",
"accountLinkId": "<string>",
"platform": "twitter",
"platformId": "<string>",
"direction": "inbound",
"sentBy": {
"type": "member",
"memberId": "<string>",
"member": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"imageUrl": "<string>",
"role": "owner",
"createdAt": "2026-09-14T10:32:00.000Z"
}
},
"content": "<string>",
"entities": {
"urls": [
{
"url": "<string>",
"displayUrl": "<string>",
"indices": {
"start": 123,
"end": 123
}
}
],
"postShares": [
{
"platformId": "<string>",
"url": "<string>",
"indices": {
"start": 123,
"end": 123
}
}
],
"mentions": [
{
"username": "jane",
"displayName": "<string>",
"platformId": "<string>",
"indices": {
"start": 123,
"end": 123
}
}
],
"hashtags": [
{
"tag": "<string>",
"indices": {
"start": 123,
"end": 123
}
}
],
"cashtags": [
{
"symbol": "<string>",
"indices": {
"start": 123,
"end": 123
}
}
],
"format": [
{
"kind": "bold",
"indices": {
"start": 123,
"end": 123
}
}
]
},
"attachments": [
{
"index": 123,
"kind": "image",
"filename": "<string>",
"contentType": "image/jpeg",
"sizeBytes": 123,
"width": 123,
"height": 123,
"aspectRatio": 123,
"durationSeconds": 123,
"status": "ready",
"url": "<string>",
"expiresAt": "2026-09-14T10:32:00.000Z",
"poster": {
"url": "<string>",
"expiresAt": "2026-09-14T10:32:00.000Z",
"width": 123,
"height": 123
}
}
],
"forwarded": {
"content": "<string>"
},
"reactions": [
{
"emoji": "<string>",
"author": {
"type": "accountLink",
"accountLinkId": "<string>",
"accountLink": {
"id": "<string>",
"platform": "twitter",
"platformId": "<string>",
"username": "jane",
"displayName": "<string>",
"avatarUrl": "<string>",
"status": "active",
"pauseReasons": [
"billing"
],
"capabilities": [
"message:send"
],
"syncedAt": "2026-09-14T10:32:00.000Z",
"createdAt": "2026-09-14T10:32:00.000Z"
}
},
"createdAt": "2026-09-14T10:32:00.000Z"
}
],
"editedAt": "2026-09-14T10:32:00.000Z",
"deletedAt": "2026-09-14T10:32:00.000Z",
"createdAt": "2026-09-14T10:32:00.000Z",
"platformData": {
"_tag": "twitter",
"encrypted": true
},
"replyTo": {
"messageId": "<string>",
"platformId": "<string>",
"content": "<string>",
"authorName": "<string>",
"message": "<unknown>"
},
"thread": {
"id": "<string>",
"platform": "twitter",
"platformId": "<string>",
"accountLinkId": "<string>",
"profileId": "<string>",
"contactId": "<string>",
"assigneeId": "<string>",
"isRequest": true,
"acceptanceState": "required",
"archived": true,
"unread": true,
"restrictions": [
"message:send"
],
"syncing": true,
"typingIndicators": "enabled",
"lastMessage": {
"id": "<string>",
"direction": "inbound",
"createdAt": "2026-09-14T10:32:00.000Z"
},
"activity": {
"preview": "<string>",
"direction": "inbound",
"at": "2026-09-14T10:32:00.000Z"
},
"createdAt": "2026-09-14T10:32:00.000Z",
"accountLink": {
"id": "<string>",
"platform": "twitter",
"platformId": "<string>",
"username": "jane",
"displayName": "<string>",
"avatarUrl": "<string>",
"status": "active",
"pauseReasons": [
"billing"
],
"capabilities": [
"message:send"
],
"syncedAt": "2026-09-14T10:32:00.000Z",
"createdAt": "2026-09-14T10:32:00.000Z"
},
"profile": {
"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": {}
}
},
"contact": {
"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"
}
},
"assignee": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"imageUrl": "<string>",
"role": "owner",
"createdAt": "2026-09-14T10:32:00.000Z"
}
},
"accountLink": {
"id": "<string>",
"platform": "twitter",
"platformId": "<string>",
"username": "jane",
"displayName": "<string>",
"avatarUrl": "<string>",
"status": "active",
"pauseReasons": [
"billing"
],
"capabilities": [
"message:send"
],
"syncedAt": "2026-09-14T10:32:00.000Z",
"createdAt": "2026-09-14T10:32:00.000Z"
}
}{
"code": "invalidRequest",
"message": "<string>",
"details": {
"issues": [
{
"path": [
"<string>"
],
"message": "<string>"
}
]
},
"requestId": "<string>"
}{
"code": "unauthorized",
"message": "<string>",
"details": null,
"requestId": "<string>"
}{
"code": "platformNotAvailable",
"message": "<string>",
"details": {
"platform": "twitter"
},
"requestId": "<string>"
}{
"code": "messageNotFound",
"message": "<string>",
"details": null,
"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>"
}Get message
curl --request GET \
--url https://inboxapp.com/api/v2/messages/{messageId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://inboxapp.com/api/v2/messages/{messageId}"
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/messages/{messageId}', 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/messages/{messageId}",
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/messages/{messageId}"
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/messages/{messageId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://inboxapp.com/api/v2/messages/{messageId}")
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": "<string>",
"threadId": "<string>",
"accountLinkId": "<string>",
"platform": "twitter",
"platformId": "<string>",
"direction": "inbound",
"sentBy": {
"type": "member",
"memberId": "<string>",
"member": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"imageUrl": "<string>",
"role": "owner",
"createdAt": "2026-09-14T10:32:00.000Z"
}
},
"content": "<string>",
"entities": {
"urls": [
{
"url": "<string>",
"displayUrl": "<string>",
"indices": {
"start": 123,
"end": 123
}
}
],
"postShares": [
{
"platformId": "<string>",
"url": "<string>",
"indices": {
"start": 123,
"end": 123
}
}
],
"mentions": [
{
"username": "jane",
"displayName": "<string>",
"platformId": "<string>",
"indices": {
"start": 123,
"end": 123
}
}
],
"hashtags": [
{
"tag": "<string>",
"indices": {
"start": 123,
"end": 123
}
}
],
"cashtags": [
{
"symbol": "<string>",
"indices": {
"start": 123,
"end": 123
}
}
],
"format": [
{
"kind": "bold",
"indices": {
"start": 123,
"end": 123
}
}
]
},
"attachments": [
{
"index": 123,
"kind": "image",
"filename": "<string>",
"contentType": "image/jpeg",
"sizeBytes": 123,
"width": 123,
"height": 123,
"aspectRatio": 123,
"durationSeconds": 123,
"status": "ready",
"url": "<string>",
"expiresAt": "2026-09-14T10:32:00.000Z",
"poster": {
"url": "<string>",
"expiresAt": "2026-09-14T10:32:00.000Z",
"width": 123,
"height": 123
}
}
],
"forwarded": {
"content": "<string>"
},
"reactions": [
{
"emoji": "<string>",
"author": {
"type": "accountLink",
"accountLinkId": "<string>",
"accountLink": {
"id": "<string>",
"platform": "twitter",
"platformId": "<string>",
"username": "jane",
"displayName": "<string>",
"avatarUrl": "<string>",
"status": "active",
"pauseReasons": [
"billing"
],
"capabilities": [
"message:send"
],
"syncedAt": "2026-09-14T10:32:00.000Z",
"createdAt": "2026-09-14T10:32:00.000Z"
}
},
"createdAt": "2026-09-14T10:32:00.000Z"
}
],
"editedAt": "2026-09-14T10:32:00.000Z",
"deletedAt": "2026-09-14T10:32:00.000Z",
"createdAt": "2026-09-14T10:32:00.000Z",
"platformData": {
"_tag": "twitter",
"encrypted": true
},
"replyTo": {
"messageId": "<string>",
"platformId": "<string>",
"content": "<string>",
"authorName": "<string>",
"message": "<unknown>"
},
"thread": {
"id": "<string>",
"platform": "twitter",
"platformId": "<string>",
"accountLinkId": "<string>",
"profileId": "<string>",
"contactId": "<string>",
"assigneeId": "<string>",
"isRequest": true,
"acceptanceState": "required",
"archived": true,
"unread": true,
"restrictions": [
"message:send"
],
"syncing": true,
"typingIndicators": "enabled",
"lastMessage": {
"id": "<string>",
"direction": "inbound",
"createdAt": "2026-09-14T10:32:00.000Z"
},
"activity": {
"preview": "<string>",
"direction": "inbound",
"at": "2026-09-14T10:32:00.000Z"
},
"createdAt": "2026-09-14T10:32:00.000Z",
"accountLink": {
"id": "<string>",
"platform": "twitter",
"platformId": "<string>",
"username": "jane",
"displayName": "<string>",
"avatarUrl": "<string>",
"status": "active",
"pauseReasons": [
"billing"
],
"capabilities": [
"message:send"
],
"syncedAt": "2026-09-14T10:32:00.000Z",
"createdAt": "2026-09-14T10:32:00.000Z"
},
"profile": {
"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": {}
}
},
"contact": {
"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"
}
},
"assignee": {
"id": "<string>",
"name": "<string>",
"email": "<string>",
"imageUrl": "<string>",
"role": "owner",
"createdAt": "2026-09-14T10:32:00.000Z"
}
},
"accountLink": {
"id": "<string>",
"platform": "twitter",
"platformId": "<string>",
"username": "jane",
"displayName": "<string>",
"avatarUrl": "<string>",
"status": "active",
"pauseReasons": [
"billing"
],
"capabilities": [
"message:send"
],
"syncedAt": "2026-09-14T10:32:00.000Z",
"createdAt": "2026-09-14T10:32:00.000Z"
}
}{
"code": "invalidRequest",
"message": "<string>",
"details": {
"issues": [
{
"path": [
"<string>"
],
"message": "<string>"
}
]
},
"requestId": "<string>"
}{
"code": "unauthorized",
"message": "<string>",
"details": null,
"requestId": "<string>"
}{
"code": "platformNotAvailable",
"message": "<string>",
"details": {
"platform": "twitter"
},
"requestId": "<string>"
}{
"code": "messageNotFound",
"message": "<string>",
"details": null,
"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>"
}Path Parameters
^[0-9a-z]+$Query Parameters
Related resources to embed next to their ID field, one path per key, at most 4.
4sentBy, reactions.author, thread, accountLink, replyTo.message Response
A message in a thread, sent or received by its account link.
A message in a thread, sent or received by its account link.
A thread: a conversation between one of the team's account links and one profile.
An account link: a platform account the team connected to Inboxapp, the team's side of a conversation.
The platform. Every team can use twitter; a team may have others enabled.
"twitter"
Null when the platform assigned none.
inbound was received from the other side. outbound was sent by the account link.
inbound, outbound Who on the team sent an outbound message. Null for inbound messages and for messages sent outside Inboxapp.
- Option 1
- Option 2
- Option 3
- Option 4
Show child attributes
Show child attributes
The text as Inboxapp last saw it. A deleted message keeps its content.
Parts of content the platform marked up.
Show child attributes
Show child attributes
Media, and at most one link card, told apart by kind.
An image, GIF, video, audio clip or file. Its url expires, so fetch it again when needed.
- Option 1
- Option 2
Show child attributes
Show child attributes
Set when the message forwards another one, with the forwarded text as the sender's app declared it. Null otherwise.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
When the message was last edited. Null when it hasn't been, or when the edit time wasn't recorded. Every version is in GET /messages/{messageId}/history.
"2026-09-14T10:32:00.000Z"
Set once the message was deleted for the account link or unsent for everyone. Deleted messages stay in lists, and GET /messages/{messageId}/history has the scope.
"2026-09-14T10:32:00.000Z"
"2026-09-14T10:32:00.000Z"
Fields only one platform has, tagged by _tag. Ignore tags you don't know.
- Option 1
- Option 2
Show child attributes
Show child attributes
The message this one replies to. Null when it isn't a reply.
Show child attributes
Show child attributes
A conversation between one of the team's account links and one profile.
Show child attributes
Show child attributes
A platform account the team connected to Inboxapp. Every conversation and message goes through one.
Show child attributes
Show child attributes
Was this page helpful?