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