Bridges API
13 endpoints (9 room bridges + 4 workspace bridges).
Room bridges (admin)#
| Method | Path | Purpose |
|---|---|---|
GET |
/v1/admin/bridges |
List bridges in this tenant. |
POST |
/v1/admin/bridges |
Create. |
GET |
/v1/admin/bridges/{bridge_id} |
Detail. |
DELETE |
/v1/admin/bridges/{bridge_id} |
Remove. |
POST |
/v1/admin/bridges/{bridge_id}/pause |
Pause without removing. |
POST |
/v1/admin/bridges/{bridge_id}/resume |
Resume. |
POST |
/v1/admin/bridges/{bridge_id}/rotate-secret |
Rotate the HMAC secret. Old still valid 5 min. |
POST /v1/admin/bridges body#
jsonc
{
"transport": "slack", // or discord / teams / scaiwave / custom
"direction": "both", // in / out / both
"room_id": "<scaiwave-room-id>",
"name": "Engineering Slack",
"slack_team_id": "T0123",
"slack_channel_id": "C0123",
"slack_signing_secret": "...",
"slack_bot_token": "xoxb-..."
}
For transport: "custom", supply an outbound_webhook URL. The
response includes a generated shared_secret.
Inbound webhooks#
Called by the foreign system, not by your own clients.
| Method | Path | Purpose |
|---|---|---|
POST |
/v1/bridges/{bridge_id}/inbound |
Generic inbound (HMAC-signed). |
POST |
/v1/bridges/{bridge_id}/slack/events |
Slack-specific Events API webhook. |
Generic inbound shape#
Body:
jsonc
{
"event_id": "<foreign-side-unique>",
"sender": {
"external_id": "U12345",
"display_name": "Alice Anderson",
"avatar_url": "https://..."
},
"content": {
"msgtype": "swp.text",
"body": "Hello from the other side"
},
"reply_to_external_id": null
}
Signature header:
http
1 | |
Where the HMAC is HMAC-SHA256(shared_secret, f"{ts}.{body}").
See Build an integration bridge.
Workspace bridges (admin)#
Different concept: connects a workspace to an external data
source (Notion DB, SharePoint, etc.) so the AI can read/write it
via the scaiwave.workspace_bridge plugin.
| Method | Path | Purpose |
|---|---|---|
GET |
/v1/workspaces/{ws}/bridges |
List. |
POST |
/v1/workspaces/{ws}/bridges |
Create. |
PATCH |
/v1/workspaces/{ws}/bridges/{id} |
Update. |
DELETE |
/v1/workspaces/{ws}/bridges/{id} |
Delete. |
(These don't relay chat — that's room bridges. They're more like "plug an external system into the workspace's tool surface".)