Webhook Resource
A webhook allows external services or integrations to send messages into a room without a user account.
Webhook Object
| Field | Type | Description |
|---|---|---|
id | string | The webhook's UUID (v7, time-ordered) |
room_id | string | Room this webhook posts to |
username | string | Display name for webhook messages |
avatar | string? | Avatar attachment ID |
created_at | ISO 8601 | When the webhook was created |
updated_at | ISO 8601 | When the webhook was last updated |
Field
token_hashis never included in API responses.
Example
{
"id": "019cf96a-3d5b-72c5-830f-75e85355d078",
"room_id": "019cf96a-4a1c-72c5-830f-8b2e44a19c03",
"username": "GitHub Notifications",
"avatar": "9bd6da82-c850-424b-89a0-9e4733263a45",
"created_at": "2025-10-30T00:22:21.000Z",
"updated_at": "2026-04-06T12:00:00.000Z"
} WebhookAuthor Object
When a webhook sends a message, the webhook’s username and avatar at the time of sending are stored in the message’s webhook_author JSONB field. This preserves the author information even if the webhook is later updated or deleted.
| Field | Type | Description |
|---|---|---|
username | string | Webhook username at time of message |
avatar | string? | Webhook avatar at time of message |
Example
{
"username": "GitHub Notifications",
"avatar": "9bd6da82-c850-424b-89a0-9e4733263a45"
}