Skip to content

Fetch a tool call's full result on a shared thread

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.

GEThttps://api.aitronos.com/v1/shared-threads/{slug}/messages/{message_id}/tool-calls/{tool_call_id}/result

Authentication

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.

Path Parameters

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

Returns 200 OK with the same body as the owner surface:

  • message_id string — The message the tool call belongs to (echoed).
  • tool_call_id string — The tool call's identifier (echoed).
  • tool_name string — The tool that produced the result.
  • result any — The stored result in full.
  • result_bytes integer — Size of the STORED result in UTF-8 bytes, matching the result_bytes on 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.

Code Examples

cURL

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"

Python SDK

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)

Python (requests)

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"] - 64

JavaScript

const 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);

Response Example

{
  "message_id": "msg_1a2b3c4d5e6f7081920a1b2c3d4e5f60",
  "tool_call_id": "call_119041",
  "tool_name": "search_knowledge",
  "result": "…the whole stored value…",
  "result_bytes": 481570
}

Error Responses

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"
  }
}