The share-link twin of Fetch a tool call's full result. Returns the complete, untruncated result of one stored tool call to a recipient reading the thread through a share link.
Rendered tool_call blocks inline a result only up to a byte budget (32 KiB by default) and mark the cut with result_truncated: true plus a result_bytes giving the full size. This endpoint serves the rest, once, when the recipient expands the block.
User authentication only (Bearer token). A share link is resolved against a recipient, and an API key has no recipient — an x-api-key request is rejected with 403, exactly as on every other /shared-threads route.
Authorization is otherwise identical to Get shared thread messages: the link must exist, be unrevoked and unexpired, and resolve for the calling user (active member of the owning organization, with an explicit grant). Anything else is a 404 — an unknown slug and a revoked one are indistinguishable.
As on the owner surface, a message the shared message list would not show, and a tool call it would not draw a block for, are 404 here too — as is a record holding no result field at all (a failed call, or a card still awaiting approval). A call that succeeded and returned nothing is not in that set: a stored "" or null comes back as a 200 carrying that value with result_bytes: 0, matching the block, which shows the same empty value with result_truncated: false.
slug string required
The share-link slug, taken from the share URL. The slug alone identifies the thread; a thread id is neither needed nor accepted.
message_id string required
The message the tool call belongs to (msg_ prefix). Must be on the thread the slug resolves to.
tool_call_id string required
The tool call's identifier, taken from the block's id (equivalently tool_call_id).
Note the path segment is tool-calls, hyphenated.
Returns 200 OK with the same body as the owner surface:
message_idstring— The message the tool call belongs to (echoed).tool_call_idstring— The tool call's identifier (echoed).tool_namestring— The tool that produced the result.resultany— The stored result in full.result_bytesinteger— Size of the STORED result in UTF-8 bytes, matching theresult_byteson the block you expanded. Measured before the vendor-term substitution every message read applies, so it answers "is this the whole value" rather than serving as a checksum of the bytes you received.
curl https://api.aitronos.com/v1/shared-threads/sh_7d21c/messages/msg_1a2b/tool-calls/call_119041/result \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Accept-Encoding: gzip"from aitronos import Aitronos # pip install aitronos-sdk
client = Aitronos(access_token="your-user-token")
full = client.shared_threads.get_tool_call_result(
slug="sh_7d21c",
message_id="msg_1a2b",
tool_call_id="call_119041",
)
print(full.tool_name, full.result_bytes)import requests
resp = requests.get(
"https://api.aitronos.com/v1/shared-threads/sh_7d21c/messages/msg_1a2b"
"/tool-calls/call_119041/result",
headers={"Authorization": "Bearer YOUR_TOKEN"},
)
body = resp.json()
# result_bytes is measured on the STORED value, before the vendor-term
# substitution every message read applies — so treat it as "is this the whole
# value" rather than as a checksum. On the rare row where a term is rewritten,
# the delivered string can differ from result_bytes by a few bytes.
assert len(body["result"].encode()) >= body["result_bytes"] - 64const resp = await fetch(
"https://api.aitronos.com/v1/shared-threads/sh_7d21c/messages/msg_1a2b" +
"/tool-calls/call_119041/result",
{ headers: { Authorization: "Bearer YOUR_TOKEN" } },
);
const body = await resp.json();
console.log(body.tool_name, body.result_bytes);{
"message_id": "msg_1a2b3c4d5e6f7081920a1b2c3d4e5f60",
"tool_call_id": "call_119041",
"tool_name": "search_knowledge",
"result": "…the whole stored value…",
"result_bytes": 481570
}An API key, or any other non-user credential:
{
"success": false,
"error": {
"code": "INSUFFICIENT_PERMISSIONS",
"message": "Share links can only be opened with user authentication",
"type": "client_error",
"status": 403,
"details": {"auth_method": "api_key"},
"trace_id": "trc_example",
"timestamp": "2026-09-02T12:00:00Z"
}
}An unknown, revoked or expired link, or one not granted to this user:
{
"success": false,
"error": {
"code": "RESOURCE_NOT_FOUND",
"message": "Shared thread not found",
"type": "client_error",
"status": 404,
"details": {"slug": "sh_7d21c"},
"trace_id": "trc_example",
"timestamp": "2026-09-02T12:00:00Z"
}
}