Channels
The Channels operations of the Hub REST API (8 operations).
bearerAuthAuthorizationBearer <API key>Pod API key (Bearer) issued via /api/hub/setup/agent or pod admin tooling. Browser/web clients may use the X-Session-Token header instead. See GET /api/hub/auth/status to introspect the calling key.
userId?stringworkspaceId?stringchannelType?stringcontextObjectId?stringq?stringFree-text search over channel title / branch purpose.
limit?stringoffset?stringZero-based offset for cursor-free pagination (default 0).
Channel list
application/json- response
channels*array<>curl -X GET 'https://pod.example.com/api/hub/channels'{ "channels": [ { "id": "string", "title": "string", "type": "string", "family": "string", "userId": "string", "workspaceId": "string", "contextObjectId": "string", "contextObjectType": "string", "agentId": "string", "createdAt": "string", "updatedAt": "string", "property1": null, "property2": null } ]}bearerAuthAuthorizationBearer <API key>Pod API key (Bearer) issued via /api/hub/setup/agent or pod admin tooling. Browser/web clients may use the X-Session-Token header instead. See GET /api/hub/auth/status to introspect the calling key.
application/json- body
workspaceId?stringexternalSource*string1 <= lengthexternalChannelId*string1 <= lengthcontextObjectId?stringcontextObjectType?string"entity""document""view""proposal"title?stringparentChannelId?stringbranchPurpose?stringrelink?booleanmetadata?Created-or-linked channel
application/json- response
channelId*stringcreated*booleanlinked*booleanchannel*curl -X POST 'https://pod.example.com/api/hub/channels' \ -H 'Content-Type: application/json' \ -d '{ "externalSource": "string", "externalChannelId": "string"}'{ "channelId": "string", "created": true, "linked": true, "channel": { "id": "string", "title": "string", "type": "string", "family": "string", "userId": "string", "workspaceId": "string", "contextObjectId": "string", "contextObjectType": "string", "agentId": "string", "createdAt": "string", "updatedAt": "string", "property1": null, "property2": null }}bearerAuthAuthorizationBearer <API key>Pod API key (Bearer) issued via /api/hub/setup/agent or pod admin tooling. Browser/web clients may use the X-Session-Token header instead. See GET /api/hub/auth/status to introspect the calling key.
application/json- body
userId*stringworkspaceId?stringcontextObjectId*stringcontextObjectType*string"entity""document""view"Resolved channel
application/json- response
channelId*stringtitle?string|nullcreated*booleanchannel*curl -X POST 'https://pod.example.com/api/hub/channels/by-context' \ -H 'Content-Type: application/json' \ -d '{ "userId": "string", "contextObjectId": "string", "contextObjectType": "entity"}'{ "channelId": "string", "title": "string", "created": true, "channel": { "id": "string", "title": "string", "type": "string", "family": "string", "userId": "string", "workspaceId": "string", "contextObjectId": "string", "contextObjectType": "string", "agentId": "string", "createdAt": "string", "updatedAt": "string", "property1": null, "property2": null }}bearerAuthAuthorizationBearer <API key>Pod API key (Bearer) issued via /api/hub/setup/agent or pod admin tooling. Browser/web clients may use the X-Session-Token header instead. See GET /api/hub/auth/status to introspect the calling key.
userId*stringworkspaceId*stringChannel
application/json- response
id*stringtitle?string|nulltype?stringfamily?stringuserId?string|nullworkspaceId?string|nullcontextObjectId?string|nullcontextObjectType?string|nullagentId?string|nullcreatedAt?string|updatedAt?string|[key: string]?unknowncurl -X GET 'https://pod.example.com/api/hub/channels/personal?userId=string&workspaceId=string'{ "id": "string", "title": "string", "type": "string", "family": "string", "userId": "string", "workspaceId": "string", "contextObjectId": "string", "contextObjectType": "string", "agentId": "string", "createdAt": "string", "updatedAt": "string", "property1": null, "property2": null}bearerAuthAuthorizationBearer <API key>Pod API key (Bearer) issued via /api/hub/setup/agent or pod admin tooling. Browser/web clients may use the X-Session-Token header instead. See GET /api/hub/auth/status to introspect the calling key.
application/json- body
channelId*stringuserId*stringworkspaceId*stringsystemPromptOverride*stringskillId?stringentityId?stringEntity to inject as context for the AI response.
Trigger result (varies by skill/agent)
application/json- response
[key: string]?unknowncurl -X POST 'https://pod.example.com/api/hub/channels/trigger-ai' \ -H 'Content-Type: application/json' \ -d '{ "channelId": "string", "userId": "string", "workspaceId": "string", "systemPromptOverride": "string"}'{ "property1": null, "property2": null}bearerAuthAuthorizationBearer <API key>Pod API key (Bearer) issued via /api/hub/setup/agent or pod admin tooling. Browser/web clients may use the X-Session-Token header instead. See GET /api/hub/auth/status to introspect the calling key.
Queued
application/json- response
ok*truetruequeued*truetruecurl -X POST 'https://pod.example.com/api/hub/channels/:externalChannelId/pins/:messageId'{ "ok": true, "queued": true}bearerAuthAuthorizationBearer <API key>Pod API key (Bearer) issued via /api/hub/setup/agent or pod admin tooling. Browser/web clients may use the X-Session-Token header instead. See GET /api/hub/auth/status to introspect the calling key.
application/json- body
name*string1 <= length <= 100provider?stringQueued
application/json- response
ok*truetruequeued*truetruecurl -X POST 'https://pod.example.com/api/hub/channels/:externalChannelId/rename' \ -H 'Content-Type: application/json' \ -d '{ "name": "string"}'{ "ok": true, "queued": true}bearerAuthAuthorizationBearer <API key>Pod API key (Bearer) issued via /api/hub/setup/agent or pod admin tooling. Browser/web clients may use the X-Session-Token header instead. See GET /api/hub/auth/status to introspect the calling key.
application/json- body
userId*stringworkspaceId?stringuuidcontextObjectId*stringuuidcontextObjectType?string"entity""document""view"branchPurpose?stringlength <= 500externalChannelId?stringreasoning?stringProposed / approved / denied
application/json- response
status*string[key: string]?unknowncurl -X POST 'https://pod.example.com/api/hub/channels/:channelId/bind' \ -H 'Content-Type: application/json' \ -d '{ "userId": "string", "contextObjectId": "5e68e661-1d3e-4197-ae71-923240fce5b9"}'{ "status": "string", "property1": null, "property2": null}