Audit log
GET
/api/v1/tenants/{tenant_id}/admin/audit-logs
const url = 'https://chat.centralcodestation.com/api/v1/tenants/example/admin/audit-logs?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://chat.centralcodestation.com/api/v1/tenants/example/admin/audit-logs?limit=50' \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”tenant_id
required
string
The Identity Server tenant id.
Query Parameters
Section titled “Query Parameters”action
string
actor_user_id
string
before
string
The next_cursor of the previous page.
limit
integer
Responses
Section titled “Responses”Success.
Media typeapplication/json
object
items
required
Array<object>
object
audit_id
required
string
tenant_id
required
string
application_id
required
string
actor_type
required
string
actor_user_id
required
string
actor_client_id
required
string
action
required
string
target_type
required
string
target_id
required
string
metadata
required
object
key
additional properties
any
changes
required
object
before
after
request_id
required
string
ip
required
string
user_agent
required
string
created_at
required
string format: date-time
next_cursor
required
Pass as before for the next (older) page; null on the last page.
string
Example
{ "items": [ { "audit_id": "3c8f1a52-6d1e-4b7e-9a20-0e5d7b1c2f44", "tenant_id": "fitness", "application_id": "fitness-app", "actor_type": "CLIENT", "actor_user_id": null, "actor_client_id": "2f1c9e5a-7f4d-4f0e-8c35-9b1a3d6e4c21", "action": "CONVERSATION_CREATED", "target_type": "CONVERSATION", "target_id": "6b1f4c7e-3c52-4a0a-9a39-7d2e2f1f8a10", "metadata": { "type": "DIRECT" }, "changes": null, "request_id": null, "ip": null, "user_agent": null, "created_at": "2026-10-14T09:00:00.000Z" } ], "next_cursor": null}Error. error is one of: invalid_cursor, invalid_limit.
Media typeapplication/json
object
status_code
required
number
error
required
Stable snake_case error code.
string
message
required
One of:
string
Array<string>
path
required
string
timestamp
required
string format: date-time
Example
{ "status_code": 400, "error": "invalid_cursor", "message": "The `before` cursor is not one this list issued.", "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.
Media typeapplication/json
object
status_code
required
number
error
required
Stable snake_case error code.
string
message
required
One of:
string
Array<string>
path
required
string
timestamp
required
string format: date-time
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, missing_capability, principal_not_allowed.
Media typeapplication/json
object
status_code
required
number
error
required
Stable snake_case error code.
string
message
required
One of:
string
Array<string>
path
required
string
timestamp
required
string format: date-time
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: rate_limited.
Media typeapplication/json
object
status_code
required
number
error
required
Stable snake_case error code.
string
message
required
One of:
string
Array<string>
path
required
string
timestamp
required
string format: date-time
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.
Media typeapplication/json
object
status_code
required
number
error
required
Stable snake_case error code.
string
message
required
One of:
string
Array<string>
path
required
string
timestamp
required
string format: date-time
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.
Media typeapplication/json
object
status_code
required
number
error
required
Stable snake_case error code.
string
message
required
One of:
string
Array<string>
path
required
string
timestamp
required
string format: date-time
Example
{ "status_code": 403, "error": "invalid_request", "message": "Missing Chat capability messages.send", "path": "/api/v1/tenants/t1/applications/a1/conversations"}