Team
Methods, permissions, request fields and response schemas for team.
Read and search
Retrieve current records, history and status.
List organization team membersSearch and paginate team records accessible to your organization.GET/auth/team
/auth/teamPagination: Default 50, maximum 100. Follow nextCursor with the same search, tenant and resource until null. Creation cutoff excludes later inserts; mutable fields may change between pages. Unsupported search returns 400.
Query parameters
| Field | Type | Description and constraints |
|---|---|---|
limitOptional | integer | Minimum 1 · Maximum 100 · Default: 50 |
cursorOptional | string | At least 1 characters · At most 768 characters |
searchOptional | string | At least 0 characters · At most 200 characters |
Edit example fields and validate the request against its schema.
What you receive
{data: bounded team summaries[], nextCursor: string | null}. Fetch detail endpoints for full records.
Request example · cURL
Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.
curl -X GET "$BASE/auth/team?limit=50" \
-H "Authorization: Bearer $ALLPROFILES_API_TOKEN"Success response schema · HTTP 200
{
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"name": {
"type": [
"string",
"null"
]
},
"email": {
"type": "string"
},
"isManual": {
"type": "boolean"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"orgRole": {
"type": "string",
"enum": [
"owner",
"admin",
"member"
]
},
"accountType": {
"type": "string",
"enum": [
"individual",
"organization"
]
},
"orgChatAccess": {
"type": "boolean"
},
"canWithdraw": {
"type": "boolean"
},
"canPayAgents": {
"type": "boolean"
},
"avatarUrl": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"name",
"email",
"isManual",
"createdAt",
"orgRole",
"accountType",
"orgChatAccess",
"canWithdraw",
"canPayAgents",
"avatarUrl"
],
"additionalProperties": false
},
"maxItems": 100,
"minItems": 0
},
"nextCursor": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 768
}
},
"required": [
"data",
"nextCursor"
],
"additionalProperties": false
}
}
}Errors and recovery
400- Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401- Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403- Token scope or actor capability denied, disabled/banned account, or action unavailable.
404- Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409- Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410- event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422- Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429- API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500- Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503- Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.
These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.
Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.
List pending team invitationsSearch and paginate team records accessible to your organization.GET/auth/team/invitations
/auth/team/invitationsPagination: Default 50, maximum 100. Follow nextCursor with the same search, tenant and resource until null. Creation cutoff excludes later inserts; mutable fields may change between pages. Unsupported search returns 400.
Query parameters
| Field | Type | Description and constraints |
|---|---|---|
limitOptional | integer | Minimum 1 · Maximum 100 · Default: 50 |
cursorOptional | string | At least 1 characters · At most 768 characters |
searchOptional | string | At least 0 characters · At most 200 characters |
Edit example fields and validate the request against its schema.
What you receive
{data: bounded team-invitations summaries[], nextCursor: string | null}. Fetch detail endpoints for full records.
Request example · cURL
Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.
curl -X GET "$BASE/auth/team/invitations?limit=50" \
-H "Authorization: Bearer $ALLPROFILES_API_TOKEN"Success response schema · HTTP 200
{
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"email": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending"
]
},
"orgRole": {
"type": "string",
"enum": [
"owner",
"admin",
"member"
]
},
"expiresAt": {
"type": "string",
"format": "date-time"
},
"createdAt": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"email",
"status",
"orgRole",
"expiresAt",
"createdAt"
],
"additionalProperties": false
},
"maxItems": 100,
"minItems": 0
},
"nextCursor": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 768
}
},
"required": [
"data",
"nextCursor"
],
"additionalProperties": false
}
}
}Errors and recovery
400- Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401- Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403- Token scope or actor capability denied, disabled/banned account, or action unavailable.
404- Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409- Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410- event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422- Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429- API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500- Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503- Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.
These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.
Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.
Read staff profile assignmentsSearch and paginate team records accessible to your organization.GET/auth/team/:memberId/profiles
/auth/team/:memberId/profilesPagination: Default 50, maximum 100. Follow nextCursor with the same search, tenant and resource until null. Creation cutoff excludes later inserts; mutable fields may change between pages. Unsupported search returns 400.
Path parameters
| Field | Type | Description and constraints |
|---|---|---|
memberIdRequired | string · uuid | Resource UUID scoped to the current organization. |
Query parameters
| Field | Type | Description and constraints |
|---|---|---|
limitOptional | integer | Minimum 1 · Maximum 100 · Default: 50 |
cursorOptional | string | At least 1 characters · At most 768 characters |
searchOptional | string | At least 0 characters · At most 200 characters |
Edit example fields and validate the request against its schema.
What you receive
{data: bounded member-profiles summaries[], nextCursor: string | null}. Fetch detail endpoints for full records.
Request example · cURL
Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.
curl -X GET "$BASE/auth/team/$MEMBER_ID/profiles?limit=50" \
-H "Authorization: Bearer $ALLPROFILES_API_TOKEN"Success response schema · HTTP 200
{
"application/json": {
"schema": {
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid"
},
"agentProfileId": {
"type": "string",
"format": "uuid"
},
"createdAt": {
"type": "string",
"format": "date-time"
}
},
"required": [
"id",
"agentProfileId",
"createdAt"
],
"additionalProperties": false
},
"maxItems": 100,
"minItems": 0
},
"nextCursor": {
"type": [
"string",
"null"
],
"minLength": 1,
"maxLength": 768
}
},
"required": [
"data",
"nextCursor"
],
"additionalProperties": false
}
}
}Errors and recovery
400- Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401- Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403- Token scope or actor capability denied, disabled/banned account, or action unavailable.
404- Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409- Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410- event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422- Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429- API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500- Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503- Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.
These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.
Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.
Create and import
Add records, prepare imports or start a new setup.
Invite a staff memberInvite a staff member by email; the person accepts through the interactive app.POST/auth/team/invite
/auth/team/inviteSend Idempotency-Key. Retry the same intended action with the same key and exact payload to retrieve its saved result.
Request body
| Field | Type | Description and constraints |
|---|---|---|
emailRequired | string · email | At most 200 characters |
orgRoleOptional | string | One of: "admin", "member" |
Edit example fields and validate the request against its schema.
What you receive
Invitation result. Sends an invitation email; invite acceptance stays an interactive user flow.
Request example · cURL
Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.
curl -X POST "$BASE/auth/team/invite" \
-H "Authorization: Bearer $ALLPROFILES_API_TOKEN" \
-H "Idempotency-Key: $ACTION_KEY" \
-H "Content-Type: application/json" \
--data '{"email":"operator@example.com"}'Full JSON request schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"maxLength": 200
},
"orgRole": {
"type": "string",
"enum": [
"admin",
"member"
]
}
},
"required": [
"email"
],
"additionalProperties": false
}Success response schema · HTTP 201
{
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"minLength": 0,
"maxLength": 5000
}
},
"required": [
"message"
],
"additionalProperties": true
}
}
}Errors and recovery
400- Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401- Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403- Token scope or actor capability denied, disabled/banned account, or action unavailable.
404- Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409- Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410- event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422- Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429- API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500- Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503- Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.
These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.
Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.
Update and configure
Change existing records, assignments and configuration.
Cancel a staff invitationCanceled invitation result.POST/auth/team/cancel-invite
/auth/team/cancel-inviteSend Idempotency-Key. Retry the same intended action with the same key and exact payload to retrieve its saved result.
Request body
| Field | Type | Description and constraints |
|---|---|---|
inviteIdRequired | string · uuid |
Edit example fields and validate the request against its schema.
What you receive
Canceled invitation result.
Request example · cURL
Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.
curl -X POST "$BASE/auth/team/cancel-invite" \
-H "Authorization: Bearer $ALLPROFILES_API_TOKEN" \
-H "Idempotency-Key: $ACTION_KEY" \
-H "Content-Type: application/json" \
--data '{"inviteId":"923ee3b1-2b21-4ce3-8c2c-679e22867541"}'Full JSON request schema
{
"type": "object",
"properties": {
"inviteId": {
"type": "string",
"format": "uuid"
}
},
"required": [
"inviteId"
],
"additionalProperties": false
}Success response schema · HTTP 201
{
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"minLength": 0,
"maxLength": 5000
}
},
"required": [
"message"
],
"additionalProperties": true
}
}
}Errors and recovery
400- Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401- Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403- Token scope or actor capability denied, disabled/banned account, or action unavailable.
404- Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409- Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410- event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422- Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429- API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500- Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503- Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.
These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.
Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.
Remove a staff memberRemoval result; removes this organization's membership, not an arbitrary user account.POST/auth/team/remove-member
/auth/team/remove-memberSend Idempotency-Key. Retry the same intended action with the same key and exact payload to retrieve its saved result.
Request body
| Field | Type | Description and constraints |
|---|---|---|
memberIdRequired | string · uuid |
Edit example fields and validate the request against its schema.
What you receive
Removal result; removes this organization's membership, not an arbitrary user account.
Request example · cURL
Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.
curl -X POST "$BASE/auth/team/remove-member" \
-H "Authorization: Bearer $ALLPROFILES_API_TOKEN" \
-H "Idempotency-Key: $ACTION_KEY" \
-H "Content-Type: application/json" \
--data '{"memberId":"923ee3b1-2b21-4ce3-8c2c-679e22867541"}'Full JSON request schema
{
"type": "object",
"properties": {
"memberId": {
"type": "string",
"format": "uuid"
}
},
"required": [
"memberId"
],
"additionalProperties": false
}Success response schema · HTTP 201
{
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"minLength": 0,
"maxLength": 5000
}
},
"required": [
"message"
],
"additionalProperties": true
}
}
}Errors and recovery
400- Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401- Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403- Token scope or actor capability denied, disabled/banned account, or action unavailable.
404- Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409- Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410- event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422- Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429- API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500- Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503- Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.
These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.
Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.
Change a staff roleUpdate a staff member's role without transferring organization ownership.PATCH/auth/team/:memberId/role
/auth/team/:memberId/roleSend Idempotency-Key. Retry the same intended action with the same key and exact payload to retrieve its saved result.
Path parameters
| Field | Type | Description and constraints |
|---|---|---|
memberIdRequired | string · uuid | Resource UUID scoped to the current organization. |
Request body
| Field | Type | Description and constraints |
|---|---|---|
orgRoleRequired | string | One of: "admin", "member" |
Edit example fields and validate the request against its schema.
What you receive
Updated staff role; owner transfer is not supported by this action.
Request example · cURL
Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.
curl -X PATCH "$BASE/auth/team/$MEMBER_ID/role" \
-H "Authorization: Bearer $ALLPROFILES_API_TOKEN" \
-H "Idempotency-Key: $ACTION_KEY" \
-H "Content-Type: application/json" \
--data '{"orgRole":"admin"}'Full JSON request schema
{
"type": "object",
"properties": {
"orgRole": {
"type": "string",
"enum": [
"admin",
"member"
]
}
},
"required": [
"orgRole"
],
"additionalProperties": false
}Success response schema · HTTP 200
{
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"minLength": 0,
"maxLength": 5000
}
},
"required": [
"message"
],
"additionalProperties": true
}
}
}Errors and recovery
400- Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401- Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403- Token scope or actor capability denied, disabled/banned account, or action unavailable.
404- Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409- Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410- event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422- Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429- API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500- Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503- Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.
These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.
Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.
Set a staff permissionUpdated grant; hosted agents cannot receive organization-staff grants.PATCH/auth/team/:memberId/grant
/auth/team/:memberId/grantSend Idempotency-Key. Retry the same intended action with the same key and exact payload to retrieve its saved result.
Path parameters
| Field | Type | Description and constraints |
|---|---|---|
memberIdRequired | string · uuid | Resource UUID scoped to the current organization. |
Request body
| Field | Type | Description and constraints |
|---|---|---|
grantRequired | string | One of: "orgChatAccess", "canWithdraw", "canPayAgents" |
enabledRequired | boolean |
Edit example fields and validate the request against its schema.
What you receive
Updated grant; hosted agents cannot receive organization-staff grants.
Request example · cURL
Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.
curl -X PATCH "$BASE/auth/team/$MEMBER_ID/grant" \
-H "Authorization: Bearer $ALLPROFILES_API_TOKEN" \
-H "Idempotency-Key: $ACTION_KEY" \
-H "Content-Type: application/json" \
--data '{"grant":"orgChatAccess","enabled":false}'Full JSON request schema
{
"type": "object",
"properties": {
"grant": {
"type": "string",
"enum": [
"orgChatAccess",
"canWithdraw",
"canPayAgents"
]
},
"enabled": {
"type": "boolean"
}
},
"required": [
"grant",
"enabled"
],
"additionalProperties": false
}Success response schema · HTTP 200
{
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"minLength": 0,
"maxLength": 5000
}
},
"required": [
"message"
],
"additionalProperties": true
}
}
}Errors and recovery
400- Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401- Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403- Token scope or actor capability denied, disabled/banned account, or action unavailable.
404- Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409- Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410- event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422- Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429- API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500- Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503- Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.
These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.
Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.
Replace staff profile assignmentsReplace the profiles assigned to a staff member; an empty list clears assignments.PUT/auth/team/:memberId/profiles
/auth/team/:memberId/profilesSend Idempotency-Key. Retry the same intended action with the same key and exact payload to retrieve its saved result.
Path parameters
| Field | Type | Description and constraints |
|---|---|---|
memberIdRequired | string · uuid | Resource UUID scoped to the current organization. |
Request body
| Field | Type | Description and constraints |
|---|---|---|
profileIdsRequired | array of string | At least 0 items · At most 1000 items |
Edit example fields and validate the request against its schema.
What you receive
Updated assignment set; empty list removes assignments.
Request example · cURL
Replace example IDs and values. Supply the token from your secret store. Each intended write uses one stable $ACTION_KEY.
curl -X PUT "$BASE/auth/team/$MEMBER_ID/profiles" \
-H "Authorization: Bearer $ALLPROFILES_API_TOKEN" \
-H "Idempotency-Key: $ACTION_KEY" \
-H "Content-Type: application/json" \
--data '{"profileIds":["923ee3b1-2b21-4ce3-8c2c-679e22867541"]}'Full JSON request schema
{
"type": "object",
"properties": {
"profileIds": {
"type": "array",
"items": {
"type": "string",
"format": "uuid"
},
"maxItems": 1000,
"minItems": 0
}
},
"required": [
"profileIds"
],
"additionalProperties": false
}Success response schema · HTTP 200
{
"application/json": {
"schema": {
"type": "object",
"properties": {
"message": {
"type": "string",
"minLength": 0,
"maxLength": 5000
},
"count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"message",
"count"
],
"additionalProperties": true
}
}
}Errors and recovery
400- Invalid JSON, request fields, query, path identifier or missing Idempotency-Key.
401- Missing, invalid, revoked or expired organization API token; its issuing actor must still be the current organization owner.
403- Token scope or actor capability denied, disabled/banned account, or action unavailable.
404- Unknown route or resource not accessible in the bound organization. Cross-tenant resources are not enumerated.
409- Conflicting profile/rental state, duplicate resource, idempotency payload mismatch or operation still in progress.
410- event_cursor_expired: the event cursor is behind retained history. Reconcile current resources and start from the supplied recovery cursor.
422- Business validation/moderation rejected the operation. CHAT_MESSAGE_BLOCKED was not delivered.
429- API rate/concurrency limit exceeded; use backoff and Retry-After when present.
500- Internal operation error. Sensitive implementation details are not returned. Investigate using the request ID before repeating a write.
503- Provider or configuration unavailable; uncertain writes must retain the same Idempotency-Key.
These are documented API errors. The local sandbox checks schema fields only and does not test authorization, moderation or provider behavior.
Financial fields named ...Cents or ...InCents use integer cents. Path fields and nested constraints are shown above and in the downloadable OpenAPI contract.