Returns one administrable Channel, its precondition ETag and a bounded page of the stored grant generations the requested filters select, without opening content or changing any state.
const url = 'https://example.com/v1/m/sessions/channels/example/grants?workspace_id=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0&state=active&subject_kind=user&limit=50';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/v1/m/sessions/channels/example/grants?workspace_id=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0&state=active&subject_kind=user&limit=50' \ --header 'Authorization: Bearer <token>'Returns one administrable Channel, its precondition ETag and a bounded page of the stored grant generations the requested filters select, without opening content or changing any state.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”Path parameter id.
Header Parameters
Section titled “ Header Parameters ”Target tenant id; required when the principal can act in more than one tenant.
Query Parameters
Section titled “ Query Parameters ”Canonical stored workspace UUID selected for this personal collection; it is revalidated and never grants authority.
PERSISTED grant state selection: active (default), revoked, expired or all. It is not a temporal predicate — an active row whose expiry has passed is still selected by active, because it is the row the next mutation must reckon with.
Exact grant subject kind; required together with subject_ref. Groups are not expanded and names are not resolved.
Exact grant subject reference; required together with subject_kind.
Authenticated c3g1 continuation returned by the preceding page, anchored to the last grant it returned and bound to the Channel revision that page observed; a revision change between pages is 409 channel_snapshot_changed, never a mixed listing.
Grant page size from 1 through 200; default 50.
Responses
Section titled “ Responses ”Administrable Channel, its precondition ETag and one page of stored grant generations
object
object
Authenticated c3g1 token anchored to the last returned grant and bound to the Channel revision observed; present only when has_more is true.
Strong Channel validator and the If-Match precondition of the existing mutations; the page carries no HTTP ETag and no 304 because filters, pagination and observed_at change the body without changing Channel.version.
object
object
object
object
Whether this row is in force at observed_at. A persisted active row whose expiry has passed reads expired without its stored state being changed.
Example
{ "items": [ { "grant": { "granted_by": { "kind": "user" }, "revoked_by": { "kind": "user" }, "subject": { "kind": "user" } }, "temporal_state": "active" } ]}Headers
Section titled “ Headers ”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
object
Example generated
{}Headers
Section titled “ Headers ”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
object
Example generated
{}Headers
Section titled “ Headers ”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
object
Example generated
{}Headers
Section titled “ Headers ”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
object
Example generated
{}Headers
Section titled “ Headers ”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.
Conflict
object
Example generated
{}Headers
Section titled “ Headers ”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
object
Example generated
{}Headers
Section titled “ Headers ”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
object
Example generated
{}Headers
Section titled “ Headers ”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.