---
title: "Cursor-paginated audit history"
method: GET
path: "/api/audit-log"
tags: ["Audit log"]
---

# Cursor-paginated audit history

`GET /api/audit-log`

## Request

- Base URL: `https://api.setluca.com`
- URL: `https://api.setluca.com/api/audit-log`
- Auth: one of:
  - API key in cookie `luca.session_token`
  - API key in header `x-api-key`
  - HTTP bearer

The coach-visible audit trail, newest first. Filter by actor type, action, action prefix, or target. Cursor paging orders by creation time, so a page stays put while new entries land on top.

**API key scopes:** `coach:read`.

## Query parameters

- `limit` integer
- `cursor` string
- `actorType` string
- `action` string
- `actionPrefix` string
- `targetType` string
- `targetId` string

## Headers

- `Luca-API-Version` '1'

## Response `200`

ok

- AuditLogListResponse
  - `items` object[], required
    - `id` string, uuid, required
    - `coachId` string, uuid, nullable, required
    - `actorType` string, required
    - `action` string, required
    - `targetType` string, required
    - `targetId` string, required
    - `metadata` unknown
    - `createdAt` string, required
  - `nextCursor` string, nullable, required

## Other responses

- `400`: validation failed
- `401`: unauthorized
- `429`: rate limited
- `503`: service unavailable

---

[API](https://skmtc.dev/setluca/apis/luca-api.md) · [All operations](https://skmtc.dev/setluca/apis/luca-api/llms.txt) · [OpenAPI document](https://skmtc.dev/setluca/apis/luca-api/revisions/90a200e4100b?raw)
