Get workspace logs

Retrieve a paginated list of audit logs for your workspace.

This endpoint allows you to:

  • Get all audit logs in your workspace
  • Filter logs by user, action, operation, or date range
  • Paginate through large sets of logs using cursor-based or offset-based pagination

Use cases:

  • Building an audit log viewer or dashboard
  • Monitoring workspace activity
  • Compliance and security auditing
  • Tracking user actions and changes

Available log actions:

  • workspace, workspace:team, workspace:invite, workspace:invite:redeem, workspace:preferences, workspace:avatar, workspace:rename, workspace:user, workspace:user:role
  • collection
  • scene, scene:readonly-link, scene:readonly-links, scene:link-sharing, scene:collection, scene:upload, scene:image-upload, scene:slides, scene:comment
  • user:signup
  • ai:diagram-to-code, ai:text-to-diagram, ai:text-to-drawing
GET
/api/v1/logs
AuthorizationBearer <token>

The API will use the Authorization: Bearer <your-key> header for requests.

In: header

Query Parameters

limit?integer

The number of items to return per page.

Range1 <= value <= 100
offset?integer

The number of items to skip before starting to collect the result set.

Range0 <= value <= 9007199254740991
cursor?string

Cursor for pagination (sequence number). Use nextCursor from previous response.

page?string

Page number for offset-based pagination. Cannot be used with cursor.

user?string

Filter logs by user ID

action?string

Filter logs by action type

operation?string

Filter logs by operation type

Value in"create" | "read" | "update" | "delete"
dateFrom?string

Filter logs from this date (ISO 8601 format)

dateTo?string

Filter logs to this date (ISO 8601 format)

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://api.excalidraw.com/api/v1/logs"
{
  "logs": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "action": "string",
      "operation": "string",
      "details": "string",
      "created_at": "string",
      "ip_address": "string",
      "user_id": "string",
      "workspace_id": "string",
      "app_source": "admin",
      "source_type": "user",
      "source_id": "string",
      "status": -2147483648,
      "user_email": "string",
      "user_full_name": "string",
      "user_picture": "string"
    }
  ],
  "nextCursor": "string",
  "hasMore": true,
  "availableActions": [
    "string"
  ],
  "totalCount": 0,
  "totalPages": 0,
  "currentPage": 0
}
{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "string"
}
{
  "statusCode": 401,
  "error": "Unauthorized",
  "message": "string"
}
{
  "statusCode": 403,
  "error": "Forbidden",
  "message": "string"
}