---
title: "List organization audit logs"
method: GET
path: "/api/organizations/{organizationId}/logs"
tags: ["Logs"]
---

# List organization audit logs

`GET /api/organizations/{organizationId}/logs`

Returns a cursor-paginated list of audit log entries for the organization, newest first. `type=activity` lists member actions (logins, workbench/drawing changes, exports, member management, …); `type=access` lists access events with IP address and device information. Pass `pagination.nextCursor` from a response as the `cursor` parameter to fetch the next page. Requires the `workspace:read` scope and a plan that includes audit logs.

## Path parameters

- `organizationId` string, required

## Query parameters

- `type` 'activity' | 'access', required
- `email` string
- `dateFrom` string
- `dateTo` string
- `pageSize` number
- `cursor` string
- `actionType` string[]

## Response `200`

A page of audit log entries, newest first.

- object
  - `results` OrganizationLogDto[], required
    - `id` string, required — Unique identifier of the log entry.
    - `type` 'activity' | 'access', required — Log type. Determines which optional fields are populated.
    - `eventDate` string, required — ISO 8601 timestamp of the event (UTC, microsecond precision).
    - `userEmail` string, required — Email address of the user who triggered the event.
    - `actionType` string — Action performed, e.g. `Login succeeded`, `Created workspace`. Populated for activity logs.
    - `actingAdminEmail` object, nullable — Email of the Vizcom staff member who performed the action on behalf of the user, or null when the user acted themselves. Populated for activity logs.
    - `targetType` string — Type of the entity the action targeted, e.g. `Team`, `Drawing`. Populated for activity logs.
    - `targetId` string — Identifier of the entity the action targeted. Populated for activity logs.
    - `metadata` object, nullable — Additional action details (names, roles, workspaces, …). Shape varies by action type. Populated for activity logs.
    - `ipAddress` object, nullable — IP address the request originated from. Populated for access and activity logs.
    - `deviceInfo` object, nullable — Device and browser information captured at login. Populated for access logs.
  - `pagination` CursorPaginationMetaDto, required
    - `pageSize` number, required — Maximum number of items returned per page.
    - `nextCursor` object, nullable, required — Opaque cursor to pass as the `cursor` query parameter to fetch the next page, or null when there are no further results.

## Other responses

- `400` — Invalid `type`, filter, cursor, or pagination parameters.
- `401` — Missing or invalid API key.
- `403` — The API key lacks the required scope, or the organization plan does not include public API access.
- `404` — The organization does not match the API key.
- `429` — Rate limit exceeded for the organization. See the X-RateLimit-* and Retry-After response headers.
- `500` — An unexpected error occurred.

---

[API](https://skmtc.dev/vizcom/apis/vizcom-api.md) · [All operations](https://skmtc.dev/vizcom/apis/vizcom-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/vizcom/vizcom-api/revisions/bfa4f498f985/schema)
