---
title: "Refresh Thread"
method: POST
path: "/{platform}/refresh-thread"
---

# Refresh Thread

`POST /{platform}/refresh-thread`

## Path parameters

- `platform` 'slack' | 'teams' | 'web', required — A supported chat platform. Values align with ``integration_instances.type`` so a chat install's platform and its integration row stay in lockstep.

## Request body

- RefreshChatPlatformThreadRequest
  - `organization_id` string, required
  - `channel_id` string, required
  - `thread_id` string, required

## Response `200`

Successful Response

- ChatPlatformVisualizerMessageResponse[]
  - `id` string, required
  - `platform` 'slack' | 'teams' | 'web', required — A supported chat platform. Values align with ``integration_instances.type`` so a chat install's platform and its integration row stay in lockstep.
  - `channel_id` string, required
  - `message_id` string, required
  - `integration_id` string, nullable, required
  - `thread_id` string, nullable, required
  - `sent_at` string, date-time, required
  - `edited_at` string, date-time, nullable, required
  - `user_id` string, nullable, required
  - `sender_id` string, nullable, required
  - `sender_type` 'user' | 'bot' | 'system', required — Normalized author class for a stored chat message, across platforms. Lets consumers query "who authored this" without inspecting platform-specific fields (Slack ``bot_id`` / ``subtype``, Teams ``from.application``): - ``user``: a human participant. - ``bot``: an application/bot account (Slack ``bot_message`` / ``bot_id``; Teams ``from.application``). - ``system``: a platform-generated event message (channel joins/leaves, topic changes, Teams ``systemEventMessage``).
  - `message` string, nullable, required
  - `rich_content` object, nullable, required
  - `files` object[], required
  - `reactions` object[], required
  - `subtype` string, nullable, required
  - `permalink` string, nullable, required
  - `raw` object, nullable, required
  - `created_at` string, date-time, required
  - `last_updated_at` string, date-time, required
  - `deleted_at` string, date-time, nullable, required
  - `channel_name` string, nullable, required
  - `channel_type` 'public' | 'private' | 'group_chat' | 'personal' | 'dm' | 'external', required — Normalized channel classification across platforms. The distinctions matter for routing and permissions: - ``public``: a channel anyone in the workspace/tenant can join. - ``private``: an invite-only channel with multiple members — not a 1:1. - ``group_chat``: an ad-hoc multi-person chat not backed by a channel (Slack multi-person DM / Teams group chat). - ``dm``: a 1:1 between a user and the bot (Slack IM, Teams ``conversationType: personal``). Human-to-human DMs are not delivered to the bot on either platform. - ``personal``: Traversal-owned private chat (the web private-chat worker) and similar app-owned 1:1 surfaces that are not a chat-platform IM. - ``external``: a channel shared across orgs (Slack Connect / Teams shared channel).
  - `body_markdown` string, nullable, required
  - `cards` object[], required
  - `body_content` string, nullable, required
  - `body_content_type` 'html' | 'text', nullable, required
  - `blocks` object[], required
  - `attachments` object[], required
  - `is_dm` boolean, nullable, required
  - `is_private` boolean, nullable, required
  - `user_id_to_display_name` object, required
  - `user_id_to_profile_photo_url` object, required
  - `channel_id_to_display_name` object, required

## Other responses

- `422` — Validation Error

## Changes

> 57 revisions in range; 9 not diffed.

- **2026-09-23** `3da9c3d0385f` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/traversal/apis/fastapi/changes/:platform/refresh-thread/post.md)

---

[API](https://skmtc.dev/traversal/apis/fastapi.md) · [All operations](https://skmtc.dev/traversal/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc.dev/traversal/apis/fastapi/revisions/c3bd9dec6c16?raw)
