List organization channels

GET/v1/channels

Requires an active organization membership and threads:read scope. Cursor pagination is ordered by channel ID; follow nextCursor until null. unreadOnly applies before pagination and uses the authenticated member’s read position. Defaults to active organization channels and omits project conversations unless projectId is supplied. Project conversations inherit project access, checked before pagination.

How to call this endpoint

Every ACP API request uses bearer authentication. The examples here show the actual request path, auth header, and body shape that the platform expects.

Path, query, and header parameters

These parameters control which ACP object the endpoint acts on and how the request is processed.

Path parameters
None.
Query parameters
NameLocationTypeRequiredDescription
projectIdquerystringNoRestrict to the accessible conversation for this project.
cursorquerystringNo
limitqueryintegerNo
queryquerystringNo
statusqueryactive | archived | allNo
unreadOnlyquerybooleanNo

Body schema

This endpoint does not require a request body.

None.

What the API returns

Each response code below includes the documented payload shape for the ACP API.

200Channel operation resultapplication/json
FieldTypeRequiredDescription
dataobject[]Yes
data[].projectIdstringNoProject whose live access policy governs this conversation. Null for organization channels.
data[].idstringYesUnique identifier.
data[].threadIdstringYesCanonical thread ID. Use /threads/{threadId}/timeline and /threads/{threadId}/events for history and realtime.
data[].organizationIdstringYes
data[].ownerIdstringYes
data[].creatorIdstringNo
data[].creatorobjectNo
data[].creator.idstringYesUnique identifier.
data[].creator.userIdstringYesUser ID.
data[].creator.namestringYesHuman-readable name.
data[].creator.emailstringYes
data[].creator.avatarUrlstringYes
data[].ownerobjectNo
data[].owner.idstringYesUnique identifier.
data[].owner.userIdstringYesUser ID.
data[].owner.namestringYesHuman-readable name.
data[].owner.emailstringYes
data[].owner.avatarUrlstringYes
data[].canTransferOwnershipbooleanNo
data[].namestringYesHuman-readable name.
data[].descriptionstringYesHuman-readable description.
data[].archivedbooleanYes
data[].defaultEnvironmentIdstringNoDefault environment for new agent mentions. Null uses the organization default; omission on update preserves the selection.
data[].metadataobjectYesFree-form metadata object.
data[].revisionintegerYes
data[].createdAtstringYesISO 8601 timestamp.
data[].updatedAtstringYesISO 8601 timestamp.
data[].lastActivityAtstringYes
data[].lastMessagestringYes
data[].lastSequenceintegerYes
data[].readSequenceintegerYes
data[].unreadbooleanYes
data[].canManagebooleanNo
nextCursorstringYes
400Invalid input (400), unauthenticated (401), denied (403), unavailable resource (404), stale revision/idempotency conflict/archived channel (409), unavailable PostgreSQL backend (503), or failed operation (500).application/json
FieldTypeRequiredDescription
errorstringYes
codestringNo
messagestringYesMessage text.
401Invalid input (400), unauthenticated (401), denied (403), unavailable resource (404), stale revision/idempotency conflict/archived channel (409), unavailable PostgreSQL backend (503), or failed operation (500).application/json
FieldTypeRequiredDescription
errorstringYes
codestringNo
messagestringYesMessage text.
403Invalid input (400), unauthenticated (401), denied (403), unavailable resource (404), stale revision/idempotency conflict/archived channel (409), unavailable PostgreSQL backend (503), or failed operation (500).application/json
FieldTypeRequiredDescription
errorstringYes
codestringNo
messagestringYesMessage text.
404Invalid input (400), unauthenticated (401), denied (403), unavailable resource (404), stale revision/idempotency conflict/archived channel (409), unavailable PostgreSQL backend (503), or failed operation (500).application/json
FieldTypeRequiredDescription
errorstringYes
codestringNo
messagestringYesMessage text.
409Invalid input (400), unauthenticated (401), denied (403), unavailable resource (404), stale revision/idempotency conflict/archived channel (409), unavailable PostgreSQL backend (503), or failed operation (500).application/json
FieldTypeRequiredDescription
errorstringYes
codestringNo
messagestringYesMessage text.
500Invalid input (400), unauthenticated (401), denied (403), unavailable resource (404), stale revision/idempotency conflict/archived channel (409), unavailable PostgreSQL backend (503), or failed operation (500).application/json
FieldTypeRequiredDescription
errorstringYes
codestringNo
messagestringYesMessage text.
503Invalid input (400), unauthenticated (401), denied (403), unavailable resource (404), stale revision/idempotency conflict/archived channel (409), unavailable PostgreSQL backend (503), or failed operation (500).application/json
FieldTypeRequiredDescription
errorstringYes
codestringNo
messagestringYesMessage text.
List organization channels
Loading...
Response 200
Loading...
See the ACP quickstart and SDK flow