POST JSON to a signed URL — message lands in the target channel.
POST /webhooks/:appId/:token
Four app kinds: webhooks, integrations, widgets, and OAuth.
POST JSON to a signed URL — message lands in the target channel.
POST /webhooks/:appId/:token
Manages server roles and members via an issued token.
Authorization: Bearer <token>
Pre-defined rows (counter, status, progress); one tile pins to the sidebar.
POST /widgets/:appId/:token
Identity only — returns user ID, nickname, name, and avatar URL.
GET /oauth/authorize POST /oauth/token
Create a webhook, pick a channel, and get a URL. POST a message to it and it appears in the channel. One URL, one channel.
POST /webhooks/:appId/:token
{"content":"Hello!"}Webhook docs →Connect an external system that can manage member roles, nicknames, and status on your server. Tokens are server-scoped and shown once at creation.
Authorization: Bearer <token>Integration docs →
POST pre-defined rows — counters, statuses, progress — and pin one tile below the server header. Each POST fully replaces the previous snapshot.
POST /widgets/:appId/:token
{"rows":[{"kind":"counter","label":"Online","value":42}]}Widget docs →Redirect users to a Chattr sign-in page and receive their ID, name, and avatar. OAuth apps get identity only — no management access.
GET /oauth/authorize POST /oauth/tokenOAuth docs →