Quick send message
curl --request POST \
--url https://inboxapp.com/api/v1/threads/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"accountLinkId": "df6jbw4h36...",
"content": "Hey, I'm reaching out from Acme Agency...",
"externalPlatformId": "1234567890",
"externalId": "1234567890"
}
EOFimport requests
url = "https://inboxapp.com/api/v1/threads/messages"
payload = {
"accountLinkId": "df6jbw4h36...",
"content": "Hey, I'm reaching out from Acme Agency...",
"externalPlatformId": "1234567890",
"externalId": "1234567890"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accountLinkId: 'df6jbw4h36...',
content: 'Hey, I\'m reaching out from Acme Agency...',
externalPlatformId: '1234567890',
externalId: '1234567890'
})
};
fetch('https://inboxapp.com/api/v1/threads/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/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'accountLinkId' => 'df6jbw4h36...',
'content' => 'Hey, I\'m reaching out from Acme Agency...',
'externalPlatformId' => '1234567890',
'externalId' => '1234567890'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://inboxapp.com/api/v1/threads/messages"
payload := strings.NewReader("{\n \"accountLinkId\": \"df6jbw4h36...\",\n \"content\": \"Hey, I'm reaching out from Acme Agency...\",\n \"externalPlatformId\": \"1234567890\",\n \"externalId\": \"1234567890\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://inboxapp.com/api/v1/threads/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accountLinkId\": \"df6jbw4h36...\",\n \"content\": \"Hey, I'm reaching out from Acme Agency...\",\n \"externalPlatformId\": \"1234567890\",\n \"externalId\": \"1234567890\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://inboxapp.com/api/v1/threads/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountLinkId\": \"df6jbw4h36...\",\n \"content\": \"Hey, I'm reaching out from Acme Agency...\",\n \"externalPlatformId\": \"1234567890\",\n \"externalId\": \"1234567890\"\n}"
response = http.request(request)
puts response.read_body{
"message": {
"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"
},
"thread": {
"id": "<string>",
"platformId": "<string>"
}
}Messages
Quick send message
Send a message without knowing the thread ID ahead of time. Automatically creates a thread if needed.
POST
/
threads
/
messages
Quick send message
curl --request POST \
--url https://inboxapp.com/api/v1/threads/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"accountLinkId": "df6jbw4h36...",
"content": "Hey, I'm reaching out from Acme Agency...",
"externalPlatformId": "1234567890",
"externalId": "1234567890"
}
EOFimport requests
url = "https://inboxapp.com/api/v1/threads/messages"
payload = {
"accountLinkId": "df6jbw4h36...",
"content": "Hey, I'm reaching out from Acme Agency...",
"externalPlatformId": "1234567890",
"externalId": "1234567890"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
accountLinkId: 'df6jbw4h36...',
content: 'Hey, I\'m reaching out from Acme Agency...',
externalPlatformId: '1234567890',
externalId: '1234567890'
})
};
fetch('https://inboxapp.com/api/v1/threads/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/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'accountLinkId' => 'df6jbw4h36...',
'content' => 'Hey, I\'m reaching out from Acme Agency...',
'externalPlatformId' => '1234567890',
'externalId' => '1234567890'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://inboxapp.com/api/v1/threads/messages"
payload := strings.NewReader("{\n \"accountLinkId\": \"df6jbw4h36...\",\n \"content\": \"Hey, I'm reaching out from Acme Agency...\",\n \"externalPlatformId\": \"1234567890\",\n \"externalId\": \"1234567890\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://inboxapp.com/api/v1/threads/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"accountLinkId\": \"df6jbw4h36...\",\n \"content\": \"Hey, I'm reaching out from Acme Agency...\",\n \"externalPlatformId\": \"1234567890\",\n \"externalId\": \"1234567890\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://inboxapp.com/api/v1/threads/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"accountLinkId\": \"df6jbw4h36...\",\n \"content\": \"Hey, I'm reaching out from Acme Agency...\",\n \"externalPlatformId\": \"1234567890\",\n \"externalId\": \"1234567890\"\n}"
response = http.request(request)
puts response.read_body{
"message": {
"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"
},
"thread": {
"id": "<string>",
"platformId": "<string>"
}
}Sending to a prospect who hasn’t messaged you first (outbound) requires the
Outbound Messages addon. Replying to existing conversations works on all
plans. See Working with messages for details.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
The account link ID to send the message from.
Pattern:
^[0-9a-z]+$Example:
"df6jbw4h36..."
Minimum string length:
1Example:
"Hey, I'm reaching out from Acme Agency..."
The platform ID of the prospect. Must be provided if externalId is not provided.
Example:
"1234567890"
The Inboxapp external ID of the prospect. Must be provided if externalPlatformId is not provided.
Example:
"1234567890"
Was this page helpful?