Skip to content

Adds one explicit, optionally expiring grant generation.

POST
/v1/m/sessions/channels/{id}/grants
curl --request POST \
--url https://example.com/v1/m/sessions/channels/example/grants \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'If-Match: example' \
--data '{ "can_admin": true, "can_read": true, "can_write": true, "expires_at": "2026-04-15T12:00:00Z", "subject": { "kind": "user", "ref": "example" } }'

Adds one explicit, optionally expiring grant generation.

id
required
string

Path parameter id.

X-Olivares-Tenant
string format: uuid

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

If-Match
required
string
/^\"v[0-9]+\"$/

Current strong Channel ETag.

Media type application/json
object
can_admin
required
boolean
can_read
required
boolean
can_write
required
boolean
expires_at
Any of:
string format: date-time
subject
required
object
kind
required
string
Allowed values: user user_group agent agent_group session
ref
required
string
>= 1 characters <= 1024 characters

Channel mutation committed

Media type application/json
object
audit_seq
required
integer format: int64
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
string
grant
Any of:
object
can_admin
required
boolean
can_read
required
boolean
can_write
required
boolean
channel_id
required
string format: uuid
created_at
required
string format: date-time
expires_at
Any of:
string format: date-time
generation
required
integer format: int64
granted_by
required
object
kind
required
string
Allowed values: user agent session system
ref
required
string
>= 1 characters <= 1024 characters
id
required
string format: uuid
revoked_by
Any of:
object
kind
required
string
Allowed values: user agent session system
ref
required
string
>= 1 characters <= 1024 characters
state
required
string
subject
required
object
kind
required
string
Allowed values: user user_group agent agent_group session
ref
required
string
>= 1 characters <= 1024 characters
supersedes_id
string format: uuid
tenant_id
required
string format: uuid
updated_at
required
string format: date-time
version
required
integer format: int64
workspace_id
required
string format: uuid
grants
Array<object>
object
can_admin
required
boolean
can_read
required
boolean
can_write
required
boolean
channel_id
required
string format: uuid
created_at
required
string format: date-time
expires_at
Any of:
string format: date-time
generation
required
integer format: int64
granted_by
required
object
kind
required
string
Allowed values: user agent session system
ref
required
string
>= 1 characters <= 1024 characters
id
required
string format: uuid
revoked_by
Any of:
object
kind
required
string
Allowed values: user agent session system
ref
required
string
>= 1 characters <= 1024 characters
state
required
string
subject
required
object
kind
required
string
Allowed values: user user_group agent agent_group session
ref
required
string
>= 1 characters <= 1024 characters
supersedes_id
string format: uuid
tenant_id
required
string format: uuid
updated_at
required
string format: date-time
version
required
integer format: int64
workspace_id
required
string format: uuid
Example
{
"grant": {
"granted_by": {
"kind": "user"
},
"revoked_by": {
"kind": "user"
},
"subject": {
"kind": "user"
}
},
"grants": [
{
"granted_by": {
"kind": "user"
},
"revoked_by": {
"kind": "user"
},
"subject": {
"kind": "user"
}
}
]
}

Bad request

Media type application/json
object
Example generated
{}

Unauthenticated

Media type application/json
object
Example generated
{}

Forbidden

Media type application/json
object
Example generated
{}

Not found

Media type application/json
object
Example generated
{}

Conflict

Media type application/json
object
Example generated
{}

Precondition failed

Media type application/json
object
Example generated
{}

Required precondition missing

Media type application/json
object
Example generated
{}

Rate limited

Media type application/json
object
Example generated
{}

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
{}