Inbox: messages, comments and reviews
Lists take the profile; actions take the account each conversation, comment or review belongs to. Ids are opaque: keep them and send them back as they are.
Direct messages
Instagram, Facebook, X, Bluesky, Reddit and Telegram. On X only unencrypted messages are available.
curl "https://api.usecrier.com/v1/inbox/conversations?profileId=prf_8f2k4d&status=active" \
-H "Authorization: Bearer $CRIER_API_KEY"const res = await fetch('https://api.usecrier.com/v1/inbox/conversations?profileId=prf_8f2k4d&status=active', {
headers: {
Authorization: `Bearer ${process.env.CRIER_API_KEY}`,
},
});
const { data } = await res.json();import os, requests
res = requests.get(
"https://api.usecrier.com/v1/inbox/conversations?profileId=prf_8f2k4d&status=active",
headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},
)
data = res.json()["data"]curl "https://api.usecrier.com/v1/inbox/conversations/cnv_aGVsbG8/messages?accountId=acc_3k9x2m" \
-H "Authorization: Bearer $CRIER_API_KEY"const res = await fetch('https://api.usecrier.com/v1/inbox/conversations/cnv_aGVsbG8/messages?accountId=acc_3k9x2m', {
headers: {
Authorization: `Bearer ${process.env.CRIER_API_KEY}`,
},
});
const { data } = await res.json();import os, requests
res = requests.get(
"https://api.usecrier.com/v1/inbox/conversations/cnv_aGVsbG8/messages?accountId=acc_3k9x2m",
headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},
)
data = res.json()["data"]curl -X POST "https://api.usecrier.com/v1/inbox/conversations/cnv_aGVsbG8/messages" \
-H "Authorization: Bearer $CRIER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_3k9x2m",
"text": "Hi! Yes, we still have it in M."
}'const res = await fetch('https://api.usecrier.com/v1/inbox/conversations/cnv_aGVsbG8/messages', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CRIER_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"accountId": "acc_3k9x2m",
"text": "Hi! Yes, we still have it in M."
}),
});
const { data } = await res.json();import os, requests
res = requests.post(
"https://api.usecrier.com/v1/inbox/conversations/cnv_aGVsbG8/messages",
headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},
json={
"accountId": "acc_3k9x2m",
"text": "Hi! Yes, we still have it in M."
},
)
data = res.json()["data"]Mark a conversation as read with POST …/read and archive or reopen it with PATCH and status.
Comments
GET /v1/inbox/posts lists posts with comments, including those published outside Crier. Use their id to read and answer their comments.
curl "https://api.usecrier.com/v1/inbox/posts/thr_aWdfMQ/comments?accountId=acc_3k9x2m" \
-H "Authorization: Bearer $CRIER_API_KEY"const res = await fetch('https://api.usecrier.com/v1/inbox/posts/thr_aWdfMQ/comments?accountId=acc_3k9x2m', {
headers: {
Authorization: `Bearer ${process.env.CRIER_API_KEY}`,
},
});
const { data } = await res.json();import os, requests
res = requests.get(
"https://api.usecrier.com/v1/inbox/posts/thr_aWdfMQ/comments?accountId=acc_3k9x2m",
headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},
)
data = res.json()["data"]curl -X POST "https://api.usecrier.com/v1/inbox/posts/thr_aWdfMQ/comments" \
-H "Authorization: Bearer $CRIER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_3k9x2m",
"text": "Thank you!",
"commentId": "cmt_eyJpZCI6ImMxIn0"
}'const res = await fetch('https://api.usecrier.com/v1/inbox/posts/thr_aWdfMQ/comments', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CRIER_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"accountId": "acc_3k9x2m",
"text": "Thank you!",
"commentId": "cmt_eyJpZCI6ImMxIn0"
}),
});
const { data } = await res.json();import os, requests
res = requests.post(
"https://api.usecrier.com/v1/inbox/posts/thr_aWdfMQ/comments",
headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},
json={
"accountId": "acc_3k9x2m",
"text": "Thank you!",
"commentId": "cmt_eyJpZCI6ImMxIn0"
},
)
data = res.json()["data"]Each comment says in can whether its network lets you reply, delete, hide or like it. Hiding and liking go through PATCH …/comments/{commentId} (hidden, liked); deleting, through DELETE.
Reviews
Google Business (1 to 5 stars) and Facebook (recommends or not). hasReply=false keeps only those still waiting for an answer.
curl "https://api.usecrier.com/v1/inbox/reviews?profileId=prf_8f2k4d&hasReply=false" \
-H "Authorization: Bearer $CRIER_API_KEY"const res = await fetch('https://api.usecrier.com/v1/inbox/reviews?profileId=prf_8f2k4d&hasReply=false', {
headers: {
Authorization: `Bearer ${process.env.CRIER_API_KEY}`,
},
});
const { data } = await res.json();import os, requests
res = requests.get(
"https://api.usecrier.com/v1/inbox/reviews?profileId=prf_8f2k4d&hasReply=false",
headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},
)
data = res.json()["data"]curl -X POST "https://api.usecrier.com/v1/inbox/reviews/rev_YWNjb3VudHM/reply" \
-H "Authorization: Bearer $CRIER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "acc_3k9x2m",
"text": "Thanks for coming, Marta!"
}'const res = await fetch('https://api.usecrier.com/v1/inbox/reviews/rev_YWNjb3VudHM/reply', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.CRIER_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"accountId": "acc_3k9x2m",
"text": "Thanks for coming, Marta!"
}),
});
const { data } = await res.json();import os, requests
res = requests.post(
"https://api.usecrier.com/v1/inbox/reviews/rev_YWNjb3VudHM/reply",
headers={"Authorization": f"Bearer {os.environ['CRIER_API_KEY']}"},
json={
"accountId": "acc_3k9x2m",
"text": "Thanks for coming, Marta!"
},
)
data = res.json()["data"]