---
title: "Threads Webhook"
method: POST
path: "/api/channels/threads/webhook"
tags: ["channels", "channels", "threads"]
---

# Threads Webhook

`POST /api/channels/threads/webhook`

## Request

- Base URL: `https://api.dialogbrain.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.dialogbrain.com/api/channels/threads/webhook`
- Auth: none declared

Receive Threads webhook events (replies, mentions).

Fail-closed: the signature must verify before anything is read from the
payload. See the module docstring for why the signature is required even
though Meta's Threads docs do not document it.

Ingestion itself is NOT done here. The verified payload is forwarded to
channel-sync-service, whose ThreadsSyncPlugin writes the rows and publishes
through MessageEventService after the commit. Channel logic stays in the
plugin; this endpoint is the authenticated edge.

## Response `200`

Successful Response

- unknown

---

[API](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway.md) · [All operations](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/revisions/77bef09a9209?raw)
