---
title: "Thread updated"
method: POST
path: "thread.updated"
---

# Thread updated

`POST thread.updated` (webhook)

Fires when a thread's partner-visible metadata changes — for example its title, mode, module, activity time, expiry, termination, or custom metadata. `updated_fields` names which fields changed, so you can skip the changes you do not track. The payload carries names only: fetch current values via GET /v1/user/{userId}/threads/{threadId}.

## Payload

- object
  - `type` 'thread.updated', required
  - `data` object, required
    - `thread` object, required
      - `id` string, uuid, required: The thread ID
      - `user_id` string, uuid, required: The user ID that the thread belongs to. Not necessarily the same as the sender ID.
    - `updated_fields` string[], required: The thread fields that changed. Fetch the thread for current values.
  - `id` string, uuid, required
  - `timestamp` string, date-time, required: datetime in ISO 8601 format

## Acknowledgement `200`

Return 200 if the webhook is accepted

## Other responses

- `429`: Return 429 to rate limit the webhook with a retry-after header. Max retry-after is 900 seconds (15 minutes) in the future.

---

[API](https://skmtc.dev/counselhealth/apis/counsel-api.md) - [All operations](https://skmtc.dev/counselhealth/apis/counsel-api/llms.txt) - [OpenAPI document](https://skmtc.dev/counselhealth/apis/counsel-api/revisions/4110a89127e8?raw)
