---
title: "List audit logs"
method: GET
path: "/audit-logs/{workspace_id}"
tags: ["Audit Logs"]
---

# List audit logs

`GET /audit-logs/{workspace_id}`

## Request

- Base URL: `https://api.langdock.com`
- URL: `https://api.langdock.com/audit-logs/{workspace_id}`
- Auth: HTTP bearer

Returns audit log entries for a workspace with cursor-based pagination.
Requires an API key with the `AUDIT_LOG_API` scope.

## Path parameters

- `workspace_id` string, uuid, required

## Query parameters

- `cursor` string, uuid
- `limit` integer
- `from` string, date-time
- `to` string, date-time
- `entity_type` string
- `actor_id` string, uuid
- `action` string[]

## Response `200`

Paginated list of audit log entries

- AuditLogListResponse
  - `data` AuditLog[]
    - `id` string, uuid: Unique audit log entry ID
    - `created_at` string, date-time: When the event occurred
    - `actor_id` string, uuid, nullable: ID of the actor who performed the action
    - `actor_type` 'USER' | 'API_KEY' | 'SYSTEM' | 'SCIM': Type of actor
    - `actor_name` string, nullable: Human-readable actor name (e.g. email, API key name, "SCIM")
    - `action` string: Action in dot notation: `{entity}.{operation}`, where `entity` is the snake_case model name and `operation` is one of `created`, `updated`, or `deleted`.
    - `entity_type` string: PascalCase model name of the affected entity (e.g. `User`, `Workspace`, `Group`, `IntegrationConnection`).
    - `entity_id` string: ID of the affected entity
    - `ip_address` string, nullable: IP address of the request
    - `user_agent` string, nullable: User-Agent header of the request
    - `changes` object, nullable: Structured diff with `before` and `after` objects containing only changed fields
      - `before` object: Field values before the change
      - `after` object: Field values after the change
    - `snapshot` object, nullable: Full entity snapshot or additional event metadata (e.g. on delete/create events, or extra context like failed login details)
  - `next_cursor` string, uuid, nullable: Cursor for the next page, null if no more results

## Other responses

- `400`: Invalid request parameters
- `401`: Missing or invalid API key
- `403`: Insufficient API key scopes or workspace_id does not match the API key's workspace
- `429`: Rate limit exceeded
- `500`: Internal server error

## Changes

- **2026-11-03** `c62bf90b4013`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/langdock/apis/langdock-api/changes/audit-logs/:workspace_id/get.md)

---

[API](https://skmtc.dev/langdock/apis/langdock-api.md) - [All operations](https://skmtc.dev/langdock/apis/langdock-api/llms.txt) - [OpenAPI document](https://skmtc.dev/langdock/apis/langdock-api/revisions/c62bf90b4013?raw)
