The slug-scoped twin of Check source of a highlighted span for a recipient who reaches the thread through a share link.
Traces the highlighted span against the thread's own sources only — never organization knowledge stores attached to the chat (those are counted in redacted_count) and never Space stores. Preview only: save: true is rejected with 422.
The origin contract is the same as the owner route: sources is never empty (type is knowledge, document, conversation, or generated). redacted_count reports hidden stores independently.
Requires user authentication (Bearer token). The slug must resolve for the caller. An unknown or unauthorized link returns 404, never 403.
slug string required
The share-link slug.
message_id string required
The assistant message (msg_ prefix) the span was highlighted in.
Same as Check source of a highlighted span. save must be false or omitted.
Same CheckSourceResponse shape as the owner route. saved is always false.
curl -X POST https://api.aitronos.com/v1/shared-threads/sl_8f3c/messages/msg_1a2b/check-source \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"text": "onboarding starts on day one"}'from aitronos import Aitronos # pip install aitronos-sdk
client = Aitronos(api_key="your-api-key")
result = client.shared_threads.check_source(
slug="sl_8f3c",
message_id="msg_1a2b",
text="onboarding starts on day one",
)
print(result.sources[0].type)import requests
resp = requests.post(
"https://api.aitronos.com/v1/shared-threads/sl_8f3c/messages/msg_1a2b/check-source",
headers={"Authorization": "Bearer YOUR_TOKEN"},
json={"text": "onboarding starts on day one"},
)
print(resp.json())const resp = await fetch(
"https://api.aitronos.com/v1/shared-threads/sl_8f3c/messages/msg_1a2b/check-source",
{
method: "POST",
headers: {
Authorization: "Bearer YOUR_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({ text: "onboarding starts on day one" }),
},
);
console.log(await resp.json());{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Saving an attribution is not available on a shared view — re-run without save, or open the thread as its owner.",
"type": "client_error",
"status": 422,
"details": {"slug_scoped": true},
"trace_id": "trc_example",
"timestamp": "2026-08-14T12:00:00Z"
}
}