---
title: "List the admin audit log"
method: GET
path: "/admin/audit-log"
tags: ["Admin"]
---

# List the admin audit log

`GET /admin/audit-log`

## Request

- Base URL: `https://cloud.kaneo.app/api`
- URL: `https://cloud.kaneo.app/api/admin/audit-log`
- Auth: HTTP bearer

Page through recorded administrative actions, newest first, optionally filtered by action or category, actor, or target. Entries never contain passwords, tokens, reset links, or API key values. Requires the `audit:read` instance permission; API keys are rejected.

## Query parameters

- `action` string: An exact action such as `user.deleted`, or a category such as `user` to match every `user.*` action.
- `actorId` string: Only entries performed by this user id.
- `targetType` string: Only entries about this kind of target, such as `user`.
- `targetId` string: Only entries about this target id.
- `page` integer
- `limit` integer

## Response `200`

Audit log entries, newest first

- AdminAuditLog
  - `entries` AdminAuditLogEntry[], required
    - `id` string, required
    - `createdAt` string, date-time, required
    - `action` string, required: Dotted action name, for example `user.role_changed`.
    - `actor` object, required
      - `id` string, nullable, required: Null when the administrator's account was deleted.
      - `name` string, nullable, required
      - `email` string, nullable, required
    - `targetType` string, required
    - `targetId` string, nullable, required
    - `targetLabel` string, nullable, required: The target's name or email when the action happened.
    - `metadata` object, nullable, required
    - `ipAddress` string, nullable, required
    - `userAgent` string, nullable, required
  - `total` integer, required: Number of entries matching the filters, across all pages.

## Other responses

- `400`: Invalid filter, page, or limit
- `401`: Missing or invalid credentials
- `403`: The caller lacks the instance permission or is authenticated with an API key
- `429`: The API key exceeded its rate limit or usage quota. Wait the number of seconds in Retry-After before retrying. The X-RateLimit headers are sent only when the rate limit was hit.

## Changes

- **2026-10-27** `bbaae0ea62c6`: 1 info
  - endpoint added
- **2026-10-27** `93f78789100c`: 1 breaking
  - api path removed without deprecation
- **2026-10-26** `8cf55c967f4c`: 1 info
  - endpoint added
- **2026-10-26** `a29fbb97c906`: 1 breaking
  - api path removed without deprecation
- **2026-10-26** `d5856f0c1849`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usekaneo/apis/kaneo-api/changes/admin/audit-log/get.md)

---

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