---
title: "List audit log entries"
method: GET
path: "/v1/audit-logs/"
tags: ["audit-logs"]
---

# List audit log entries

`GET /v1/audit-logs/`

## Request

- Base URL: `https://api.ethiack.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ethiack.com/v1/audit-logs/`
- Auth: none declared

List audit log entries visible to the caller, filtered and paginated.

Authorization is org-scoped by ``AuditLogService`` (org members see
their own organization's entries). ``total`` reflects the same scope
and filters as the returned page. The page and its total are read
under one authorization plan (``get_page``) rather than two separate
``get`` / ``count`` calls.

Args:
    db (AsyncSession): Request-scoped database session.
    context (ActiveContext): Resolved caller identity and scope.
    query (AuditLogListQuery): Filters + pagination query params.
    pager (Paginator): Fills the response's navigation metadata.

Returns:
    AuditLogListResponse: The authorized, paginated audit log list.

## Query parameters

- `page` integer
- `per_page` integer: Page size. Values above 500 are clamped to it (or rejected, per REST__PAGINATION__PER_PAGE_OVER_MAX).
- `organization_id` integer, nullable
- `operation` string, nullable
- `operation_category` string, nullable
- `status` string, nullable
- `actor_id` string, nullable
- `actor_kind` string, nullable
- `resource_type` string, nullable
- `resource_id` string, nullable
- `start_date` string, date-time, nullable
- `end_date` string, date-time, nullable

## Response `200`

Successful Response

- AuditLogListResponse: Paginated list of audit log entries. ``total`` / ``page`` / ``per_page`` are redeclared as **required**: they shipped before :class:`PaginatedResponse` existed, so inheriting the mixin's ``int | None`` defaults would narrow an already-live contract to nullable. ``links`` is inherited as-is from the mixin. Attributes: total (int): Total count of matching entries across all pages. page (int): Current page number. per_page (int): Number of items per page. audit_logs (list[AuditLogEntryResponse]): Entries for the current page.
  - `total` integer, required: Total number of matching audit logs
  - `page` integer, required: Current page number
  - `per_page` integer, required: Number of items per page
  - `_links` object, nullable: RFC 8288 rel to URL. Always first; last unless the route opted out of counting; prev and next when applicable.
  - `audit_logs` AuditLogEntryResponse[], required: List of audit log entries
    - `id` string, nullable, required: Unique identifier for the audit log entry
    - `timestamp` string, date-time, required: When the action occurred
    - `actor_kind` string, nullable, required: Kind of actor (organization, api_key, system)
    - `actor_id` string, nullable, required: Identifier of the actor
    - `operation` string, required: The operation performed
    - `operation_category` string, required: Category of operation
    - `resource_type` string, required: Type of resource affected
    - `resource_id` string, nullable, required: Identifier of the affected resource
    - `status` string, required: Outcome status (success/failure)
    - `metadata` object, nullable: Additional context and changes
    - `actor_type` string, nullable, required: Previous name for actor_kind.
    - `actor_name` string, nullable, required: Name/email of the actor
    - `ip_address` string, nullable, required: IP address of the actor
    - `user_agent` string, nullable, required: User agent of the client

## Other responses

- `422`: Validation Error

---

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