Skip to content

Lists the Channels of the selected workspace that the current caller may administer, each with the strong Channel ETag the existing mutations take as their precondition, without changing any state.

GET
/v1/m/sessions/channels/administration
curl --request GET \
--url 'https://example.com/v1/m/sessions/channels/administration?workspace_id=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0&state=all&limit=50' \
--header 'Authorization: Bearer <token>'

Lists the Channels of the selected workspace that the current caller may administer, each with the strong Channel ETag the existing mutations take as their precondition, without changing any state.

X-Olivares-Tenant
string format: uuid

Target tenant id; required when the principal can act in more than one tenant.

workspace_id
required
string format: uuid
/^[0-9a-f]{8}-[0-9a-f]{4}-7[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/

Canonical stored workspace UUID selected for this personal collection; it is revalidated and never grants authority.

state
string
default: all
Allowed values: all active archived

Persisted Channel state selection: all (default), active or archived. Archived Channels are inspectable because administration must not depend on the operational read catalog; nothing here un-archives one.

continuation
string
>= 1 characters <= 2048 characters

Authenticated c3a1 continuation returned by the preceding page, anchored to the last Channel it returned; its claims are base64-readable and MAC-authenticated, not encrypted, and it conveys no authority. It is a distinct family from the read catalog’s c3n1 and from c3g1.

limit
integer
default: 50 >= 1 <= 200

Administrable page size from 1 through 200; default 50.

Administrable Channels of the selected workspace with each Channel’s current precondition ETag

Media type application/json
object
continuation

Authenticated c3a1 token anchored to the last returned Channel; present only when has_more is true.

string
has_more
required

True exactly when an administrable limit+1th Channel was authorized in the same bound transaction; never a hidden-row fact.

boolean
items
required
Array<object>
object
channel
required
object
acl_revision
required
integer format: int64
content_protection
required
string
created_at
required
string format: date-time
default_ack_policy
required
string
default_ack_timeout_ms
required
integer format: int64
default_wake
required
string
description
string
id
required
string format: uuid
kind
required
string
max_automation_depth
required
integer format: int64
max_fanout
required
integer format: int64
name
required
string
protection_generation
required
integer format: int64
retention_policy_ref
string
route_revision
required
integer format: int64
sensitivity
required
string
slug
required
string
state
required
string
subscription_revision
required
integer format: int64
tenant_id
required
string format: uuid
updated_at
required
string format: date-time
version
required
integer format: int64
workspace_id
required
string format: uuid
etag
required

Strong Channel validator (“v”) to copy into If-Match after confirming a mutation; not an HTTP representation validator for this page.

string
Example generated
{
"continuation": "example",
"has_more": true,
"items": [
{
"channel": {
"acl_revision": 1,
"content_protection": "example",
"created_at": "2026-04-15T12:00:00Z",
"default_ack_policy": "example",
"default_ack_timeout_ms": 1,
"default_wake": "example",
"description": "example",
"id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"kind": "example",
"max_automation_depth": 1,
"max_fanout": 1,
"name": "example",
"protection_generation": 1,
"retention_policy_ref": "example",
"route_revision": 1,
"sensitivity": "example",
"slug": "example",
"state": "example",
"subscription_revision": 1,
"tenant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0",
"updated_at": "2026-04-15T12:00:00Z",
"version": 1,
"workspace_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"
},
"etag": "example"
}
]
}
Cache-Control
required
string
Allowed values: no-store

Always no-store. These pages are authorization-dependent and observation-dependent: the same request from the same client can legitimately produce a different answer a moment later, and a refusal must never be replayed from a cache after the authority behind it changed. There is no HTTP ETag and no 304 on these routes; the etag in the body is the Channel precondition for the existing mutations, not a representation validator.

Bad request

Media type application/json
object
Example generated
{}
Cache-Control
required
string
Allowed values: no-store

Always no-store. These pages are authorization-dependent and observation-dependent: the same request from the same client can legitimately produce a different answer a moment later, and a refusal must never be replayed from a cache after the authority behind it changed. There is no HTTP ETag and no 304 on these routes; the etag in the body is the Channel precondition for the existing mutations, not a representation validator.

Unauthenticated

Media type application/json
object
Example generated
{}
Cache-Control
required
string
Allowed values: no-store

Always no-store. These pages are authorization-dependent and observation-dependent: the same request from the same client can legitimately produce a different answer a moment later, and a refusal must never be replayed from a cache after the authority behind it changed. There is no HTTP ETag and no 304 on these routes; the etag in the body is the Channel precondition for the existing mutations, not a representation validator.

Forbidden

Media type application/json
object
Example generated
{}
Cache-Control
required
string
Allowed values: no-store

Always no-store. These pages are authorization-dependent and observation-dependent: the same request from the same client can legitimately produce a different answer a moment later, and a refusal must never be replayed from a cache after the authority behind it changed. There is no HTTP ETag and no 304 on these routes; the etag in the body is the Channel precondition for the existing mutations, not a representation validator.

Not found

Media type application/json
object
Example generated
{}
Cache-Control
required
string
Allowed values: no-store

Always no-store. These pages are authorization-dependent and observation-dependent: the same request from the same client can legitimately produce a different answer a moment later, and a refusal must never be replayed from a cache after the authority behind it changed. There is no HTTP ETag and no 304 on these routes; the etag in the body is the Channel precondition for the existing mutations, not a representation validator.

Rate limited

Media type application/json
object
Example generated
{}
Cache-Control
required
string
Allowed values: no-store

Always no-store. These pages are authorization-dependent and observation-dependent: the same request from the same client can legitimately produce a different answer a moment later, and a refusal must never be replayed from a cache after the authority behind it changed. There is no HTTP ETag and no 304 on these routes; the etag in the body is the Channel precondition for the existing mutations, not a representation validator.

Current authority, custody or store evidence is unavailable; or, with code commit_outcome_unknown, the write was issued and its outcome was never learned, so it may be durable and must not be retried automatically

Media type application/json
object
Example generated
{}
Cache-Control
required
string
Allowed values: no-store

Always no-store. These pages are authorization-dependent and observation-dependent: the same request from the same client can legitimately produce a different answer a moment later, and a refusal must never be replayed from a cache after the authority behind it changed. There is no HTTP ETag and no 304 on these routes; the etag in the body is the Channel precondition for the existing mutations, not a representation validator.