Add, list, and remove emoji reactions on a message of a live-shared thread you joined — the slug-scoped twin of the owner reaction endpoints, for a participant who joined the thread via a share link but does not own it.
Reactions are the most visible co-working feature: a reaction added by a joiner fans out to the owner and every other participant on the live stream in real time, and appears in the owner's own reaction list too.
Every operation is authorized by the joiner's live-share grant on the slug — the same resolution as opening the link, plus the link's access_level must be live. A view or fork slug returns 403; an unknown or unauthorized link returns 404.
Requires user authentication (Bearer token). API-key authentication is rejected — a reaction is a per-user action.
slug string required
The share-link slug, from the share URL. The link must be a live link.
message_id string required
The message to react to (prefixed msg_). Must belong to the shared thread.
emoji string required
The emoji to toggle. Adds the reaction if the caller has not used that emoji on the message, removes it if they have.
Returns the message's full, updated reaction set plus whether this call added or removed:
- message_id
string— the message the reactions are on. - reactions
array— the message's current reactions:{ id, emoji, actor_id, actor_name, created_at }. - toggled
string—"added"or"removed".
Returns all reactions on the message, oldest-first, as an array of { id, emoji, actor_id, actor_name, created_at }.
Removes the caller's reaction for the given emoji query parameter. Idempotent — removing an absent reaction is a no-op. Returns the same shape as the toggle (with toggled: "removed").
# Toggle a 👍
curl -X POST "https://api.aitronos.com/v1/shared-threads/abc123slug/messages/msg_abc/reactions" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"emoji": "👍"}'
# List
curl "https://api.aitronos.com/v1/shared-threads/abc123slug/messages/msg_abc/reactions" \
-H "Authorization: Bearer YOUR_TOKEN"
# Remove a 👍
curl -X DELETE "https://api.aitronos.com/v1/shared-threads/abc123slug/messages/msg_abc/reactions?emoji=%F0%9F%91%8D" \
-H "Authorization: Bearer YOUR_TOKEN"from aitronos import Aitronos
client = Aitronos(api_key="", token="YOUR_TOKEN")
result = client.threads.shared.reactions.toggle(
slug="abc123slug", message_id="msg_abc", emoji="👍"
)
print(result.toggled, result.reactions)import requests
response = requests.post(
"https://api.aitronos.com/v1/shared-threads/abc123slug/messages/msg_abc/reactions",
headers={"Authorization": "Bearer YOUR_TOKEN"},
json={"emoji": "👍"},
)
print(response.json()["toggled"])const response = await fetch(
"https://api.aitronos.com/v1/shared-threads/abc123slug/messages/msg_abc/reactions",
{
method: "POST",
headers: {
Authorization: "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({ emoji: "👍" }),
},
);
const result = await response.json();
console.log(result.toggled, result.reactions);{
"message_id": "msg_abc",
"reactions": [
{
"id": "tmrx_0d27ed63a3f848cea92161d15b67fc69",
"emoji": "👍",
"actor_id": "usr_bc748f25224f4015abb43369d2025487",
"actor_name": "Jordan Rivera",
"created_at": "2026-07-06T11:26:38Z"
}
],
"toggled": "added"
}{
"success": false,
"error": {
"code": "INSUFFICIENT_PERMISSIONS",
"message": "You do not have permission to perform this action.",
"system_message": "This share link does not grant live co-working access",
"type": "authorization_error",
"status": 403,
"details": { "link_id": "tslnk_...", "access_level": "view" },
"trace_id": "...",
"timestamp": "..."
}
}{
"success": false,
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "The requested resource could not be found.",
"system_message": "Share link not found",
"type": "client_error",
"status": 404,
"details": {},
"trace_id": "...",
"timestamp": "..."
}
}- Join Shared Thread — Join the live-shared thread first
- Get Shared Thread Messages — Read the messages you can react to
- Shared Thread Compose State — Edit an email compose card as a joiner
- Shared Thread Tool Approval — Approve a parked tool as a joiner
- Live Shared Thread — The real-time stream reactions fan out on