{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/api-reference/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["api-container","endpoint"]},"redocly_category":"API Reference","searchWeight":120,"type":"markdown"},"seo":{"title":"Mark Shared Thread Read","description":"Complete API reference and documentation for Freddy AI-powered backend system by Aitronos","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"mark-shared-thread-read","__idx":0},"children":["Mark Shared Thread Read"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Advance your read cursor to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["now"]}," for a ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["live-shared"]}," thread you ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["joined"]}," — the slug-scoped twin of the owner mark-read endpoint, for a participant who joined the thread but does not own it."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The owner mark-read route (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /v1/threads/{id}/read"]},") is ownership-scoped and returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]}," for a joiner. Use this endpoint instead: it advances the joiner's read cursor server-side so the shared-chat unread count clears durably — it stays reset across devices and reloads, rather than clearing only in the local UI. The read cursor is keyed on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["(user, thread)"]}," and is shared with owner reads, so this and the owner endpoint remain consistent."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Authorized by the joiner's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["live"]},"-share grant on the slug. A ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["view"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["fork"]}," slug returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["403"]},"; an unknown, unauthorized, or expired link returns ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["404"]},". The call is idempotent."]},{"$$mdtype":"Tag","name":"ApiContainer","attributes":{},"children":[{"$$mdtype":"Tag","name":"Endpoint","attributes":{"method":"POST","path":"https://api.aitronos.com/v1/shared-threads/{slug}/read"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"authentication","__idx":1},"children":["Authentication"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Requires ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["user"]}," authentication (Bearer token)."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"path-parameters","__idx":2},"children":["Path Parameters"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["slug"]}]}," string ",{"$$mdtype":"Tag","name":"em","attributes":{"style":{"color":"#ef4444 !important","fontWeight":"600 !important","fontStyle":"normal !important"}},"children":["required"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The share-link slug, from the share URL. The link must be a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["live"]}," link."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"returns","__idx":3},"children":["Returns"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["success"]}," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["boolean"]}," — always ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," when the read cursor was advanced."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"code-examples","__idx":4},"children":["Code Examples"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"curl","__idx":5},"children":["cURL"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"curl -X POST \"https://api.aitronos.com/v1/shared-threads/abc123slug/read\" \\\n  -H \"Authorization: Bearer YOUR_TOKEN\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"python-sdk","__idx":6},"children":["Python SDK"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"from aitronos import Aitronos\n\nclient = Aitronos(api_key=\"\", token=\"YOUR_TOKEN\")\nresult = client.threads.shared.mark_read(slug=\"abc123slug\")\nprint(result.success)\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"python-requests","__idx":7},"children":["Python (requests)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"python","header":{"controls":{"copy":{}}},"source":"import requests\n\nresponse = requests.post(\n    \"https://api.aitronos.com/v1/shared-threads/abc123slug/read\",\n    headers={\"Authorization\": \"Bearer YOUR_TOKEN\"},\n)\nprint(response.json()[\"success\"])\n","lang":"python"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"javascript","__idx":8},"children":["JavaScript"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"const response = await fetch(\n  \"https://api.aitronos.com/v1/shared-threads/abc123slug/read\",\n  {\n    method: \"POST\",\n    headers: { Authorization: \"Bearer YOUR_TOKEN\" },\n  },\n);\nconst result = await response.json();\nconsole.log(result.success);\n","lang":"javascript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"response-examples","__idx":9},"children":["Response Examples"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"success-200","__idx":10},"children":["Success (200)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"success\": true\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"error--not-a-live-link-403","__idx":11},"children":["Error — Not a live link (403)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"INSUFFICIENT_PERMISSIONS\",\n    \"message\": \"You do not have permission to perform this action.\",\n    \"system_message\": \"This share link does not grant live co-working access\",\n    \"type\": \"authorization_error\",\n    \"status\": 403,\n    \"details\": { \"link_id\": \"tslnk_...\", \"access_level\": \"view\" },\n    \"trace_id\": \"...\",\n    \"timestamp\": \"...\"\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"error--unknown--expired-link-404","__idx":12},"children":["Error — Unknown / expired link (404)"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"RESOURCE_NOT_FOUND\",\n    \"message\": \"The requested resource could not be found.\",\n    \"system_message\": \"Share link not found\",\n    \"type\": \"client_error\",\n    \"status\": 404,\n    \"details\": {},\n    \"trace_id\": \"...\",\n    \"timestamp\": \"...\"\n  }\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-resources","__idx":13},"children":["Related Resources"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-reference/shared-threads/shared-thread-read-state"},"children":["Shared Thread Read State"]}," — Mark read up to a specific message, and get the unread count + divider anchor"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-reference/shared-threads/join-shared-thread"},"children":["Join Shared Thread"]}," — Join the live-shared thread first"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-reference/shared-threads/shared-thread-reactions"},"children":["Shared Thread Reactions"]}," — React to messages as a joiner"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-reference/shared-threads/shared-thread-presence"},"children":["Shared Thread Presence"]}," — Heartbeat your presence on the thread"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-reference/shared-threads/live-shared-thread"},"children":["Live Shared Thread"]}," — The real-time stream for the shared thread"]}]}]}]},"headings":[{"value":"Mark Shared Thread Read","id":"mark-shared-thread-read","depth":1},{"value":"Authentication","id":"authentication","depth":2},{"value":"Path Parameters","id":"path-parameters","depth":2},{"value":"Returns","id":"returns","depth":2},{"value":"Code Examples","id":"code-examples","depth":2},{"value":"cURL","id":"curl","depth":3},{"value":"Python SDK","id":"python-sdk","depth":3},{"value":"Python (requests)","id":"python-requests","depth":3},{"value":"JavaScript","id":"javascript","depth":3},{"value":"Response Examples","id":"response-examples","depth":2},{"value":"Success (200)","id":"success-200","depth":3},{"value":"Error — Not a live link (403)","id":"error--not-a-live-link-403","depth":3},{"value":"Error — Unknown / expired link (404)","id":"error--unknown--expired-link-404","depth":3},{"value":"Related Resources","id":"related-resources","depth":2}],"frontmatter":{"title":"Mark Shared Thread Read","seo":{"title":"Mark Shared Thread Read"}},"lastModified":"2026-10-26T18:32:31.653Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/api-reference/shared-threads/mark-shared-thread-read","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}