Add a member
const url = 'https://chat.centralcodestation.com/api/v1/tenants/example/applications/example/conversations/example/members';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"user_id":"client-sarah","display_name":"Sarah Client"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://chat.centralcodestation.com/api/v1/tenants/example/applications/example/conversations/example/members \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "user_id": "client-sarah", "display_name": "Sarah Client" }'GROUP: groups.manage, or groups.create as OWNER/ADMIN. CHANNEL: channels.manage, or joining a PUBLIC channel yourself. DIRECT members never change.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”A Chat conversation id (uuid).
The Identity Server tenant id.
The Identity Server id of a chat-enabled tenant application.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Machines: profile hint for a user Chat has never seen.
Machines: profile hint for a user Chat has never seen.
Example
{ "user_id": "client-sarah", "display_name": "Sarah Client"}Responses
Section titled “Responses”Created.
object
Falls back to the user id when Chat has no profile.
Content ownership only — never authorization.
Example
{ "user_id": "client-john", "display_name": "John Client", "avatar_url": null, "member_id": "9a7e1c52-3b6d-4d2f-8e40-1f5a6b7c8d90", "role": "MEMBER", "status": "ACTIVE", "joined_at": "2026-10-14T09:00:00.000Z"}Error. error is one of: invalid_request.
object
Stable snake_case error code.
Example
{ "status_code": 400, "error": "invalid_request", "message": "The request is malformed: a required field is missing, a value has the wrong type or format, or a field the route does not accept was sent", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}Error. error is one of: invalid_token, token_revoked.
object
Stable snake_case error code.
Example
{ "status_code": 401, "error": "invalid_token", "message": "The bearer token is missing, malformed, expired, signed by an unknown key, has the wrong audience (`aud` must be `chat-api`), or lacks the required scope.", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}Error. error is one of: not_tenant_member, no_application_access, tenant_not_available, insufficient_scope, client_context_mismatch.
object
Stable snake_case error code.
Example
{ "status_code": 403, "error": "not_tenant_member", "message": "The user is not an active member of the tenant in the URL.", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}Error. error is one of: application_not_found, not_found.
object
Stable snake_case error code.
Example
{ "status_code": 404, "error": "application_not_found", "message": "The application does not exist in the tenant, or Chat is not enabled for it.", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}Error. error is one of: target_user_not_eligible.
object
Stable snake_case error code.
Example
{ "status_code": 422, "error": "target_user_not_eligible", "message": "A user you referenced (member, actor) is not an active member of the tenant with access to the application.", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}Error. error is one of: rate_limited.
object
Stable snake_case error code.
Example
{ "status_code": 429, "error": "rate_limited", "message": "The caller exceeded a rate limit", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}Error. error is one of: identity_unavailable.
object
Stable snake_case error code.
Example
{ "status_code": 503, "error": "identity_unavailable", "message": "Chat could not reach the Identity Server and has no fresh cached answer.", "path": "/api/v1/tenants/fitness/applications/fitness-app/conversations", "timestamp": "2026-10-14T09:30:00.000Z"}default
Section titled “default”Error — see error for the code.
object
Stable snake_case error code.
Example
{ "status_code": 403, "error": "invalid_request", "message": "Missing Chat capability messages.send", "path": "/api/v1/tenants/t1/applications/a1/conversations"}