Channels API

Channels are persistent feed containers. All channel operations are under /api/v1/channels.

List Channels

GET /api/v1/channels?workspace_id={workspaceId}

Returns all channels in a workspace with their card counts.

Query Parameters

Parameter Type Required Description
workspace_id string (UUID) Yes The workspace to list channels for

Response

[
  {
    "id": "3f7a1b2c-...",
    "name": "Order Alerts",
    "description": "Real-time order status updates",
    "mode": "view",
    "icon": "📦",
    "workspace_id": "9e4d5f6a-...",
    "created_at": "2025-01-15T10:00:00Z",
    "card_count": 42
  }
]

Create Channel

POST /api/v1/channels

Creates a new channel. Counts toward the 50 channels/day limit.

Request Body

Field Type Required Constraints Default
name string Yes Max 80 characters —
workspace_id string (UUID) Yes Must be an existing workspace you own —
description string No Max 300 characters null
mode string No "view" or "interactive" "view"
icon string No Single emoji character "âš¡"
webhook_url string No Valid HTTP/HTTPS URL null
attributes object No Key/value pairs of metadata {}

Example

curl -X POST /api/v1/channels \
  -H "Authorization: Bearer ofd_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Order Alerts",
    "workspace_id": "9e4d5f6a-...",
    "description": "Real-time order status updates",
    "mode": "interactive",
    "icon": "📦",
    "webhook_url": "https://your-automation.com/webhook",
    "attributes": {
      "environment": "production",
      "team": "fulfillment"
    }
  }'

Response `201 Created`

{
  "id": "3f7a1b2c-...",
  "name": "Order Alerts",
  "url": "/c/3f7a1b2c-...",
  "workspace_id": "9e4d5f6a-..."
}

Get Channel

GET /api/v1/channels/{channelId}

Returns full channel details including header actions.

Response

{
  "id": "3f7a1b2c-...",
  "name": "Order Alerts",
  "description": "Real-time order status updates",
  "mode": "interactive",
  "icon": "📦",
  "webhook_url": "https://your-automation.com/webhook",
  "workspace_id": "9e4d5f6a-...",
  "visibility": "private",
  "created_at": "2025-01-15T10:00:00Z",
  "actions": [
    {
      "id": "a1b2c3d4-...",
      "label": "Refresh",
      "style": "secondary",
      "position": 0
    }
  ]
}

Update Channel

PATCH /api/v1/channels/{channelId}

Updates one or more channel fields. Only include fields you want to change.

Request Body

Field Type Constraints
name string Max 80 characters
description string Max 300 characters
mode string "view" or "interactive"
icon string Single emoji character
webhook_url string Valid HTTP/HTTPS URL

Example

curl -X PATCH /api/v1/channels/3f7a1b2c-... \
  -H "Authorization: Bearer ofd_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Order Alerts (Live)",
    "webhook_url": "https://new-endpoint.com/hook"
  }'

Response `200 OK`

Returns the full updated channel object.


Delete Channel

DELETE /api/v1/channels/{channelId}

Permanently deletes a channel and all its cards, actions, attributes, and interaction logs.

Example

curl -X DELETE /api/v1/channels/3f7a1b2c-... \
  -H "Authorization: Bearer ofd_your_key"

Response `200 OK`

{ "deleted": true }

Channel Actions

Header actions are buttons displayed at the top of the channel UI. When clicked, they fire an header_action interaction to your webhook.

Add Action

POST /api/v1/channels/{channelId}/actions

Request Body

Field Type Required Values Default
label string Yes Any text —
style string No "primary", "secondary", "danger" "primary"
position integer No Display order (ascending) 0

Example

curl -X POST /api/v1/channels/3f7a1b2c-.../actions \
  -H "Authorization: Bearer ofd_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "label": "Mark All Read",
    "style": "secondary",
    "position": 0
  }'

Response `201 Created`

{
  "id": "a1b2c3d4-...",
  "channel_id": "3f7a1b2c-...",
  "label": "Mark All Read",
  "style": "secondary",
  "position": 0
}

List Actions

GET /api/v1/channels/{channelId}/actions

Returns all header actions ordered by position ascending.

Delete Action

Actions can be deleted from the dashboard UI.


Channel Fields Reference

Field Type Description
id UUID Unique channel identifier
name string Display name (max 80 chars)
description string | null Short description (max 300 chars)
mode "view" | "interactive" Whether user interactions are enabled
icon string Emoji icon
webhook_url string | null URL to receive interaction payloads
workspace_id UUID | null Parent workspace
visibility "private" | "protected" | "public" Access control level
created_at ISO 8601 string Creation timestamp
updated_at ISO 8601 string Last update timestamp