Audit Logs
Audit Logs are available on Enterprise plans.
All endpoints require API key authentication.
Note:
Only Organization Admins can access Audit Logs (via Organization Settings or Synthesia API).
The Audit Logs API returns a record of actions taken across your organization and workspaces: who did what, when, and to what. Use it for compliance reporting, security monitoring, and activity tracking.
To browse and filter audit logs in the Synthesia app instead of calling the API, see Audit logs.
Endpoints
Query audit log events
Simple query endpoint for retrieving paginated audit events.
Key behavior:
- Exactly one of
workspaceIdororganizationIdmust be provided. - Multiple values for
actionsandactorIdsare comma-separated. - Dates are Unix timestamps (seconds since epoch).
Query parameters:
Response:
Search audit log events
Advanced search for complex filtering scenarios. Use this endpoint instead of GET /v2/auditLogs/events when:
- Filtering by 50 or more actions or actors.
- You need programmatic access with a JSON request body.
- Your filter combination is too complex for query parameters.
Request body:
Response:
Export audit logs as CSV
Exports filtered audit logs as a downloadable CSV file. See CSV structure for the columns it contains.
Key behavior:
- Maximum of 10,000 events per export. If your filter matches more, the response is truncated and the filename includes a
_TRUNCATEDsuffix. - The response is binary CSV data (
Content-Type: application/csv).
Request body:
Response: binary CSV file, with a Content-Disposition header containing the filename, for example audit_logs_export_20260111_165018.csv.
Exporting is itself an audited action. It generates its own event:
Pagination
The Audit Logs API uses cursor-based pagination, which stays stable even when new events are added between requests.
- Make an initial request without a
cursorparameter. - The response includes
nextCursorandhasMore. - Pass
nextCursoras thecursorparameter in your next request. - Repeat until
hasMoreisfalse.
Best practices:
- Check
hasMoreto decide whether to keep paginating, rather than only checking whethernextCursorisnull. - Keep filter parameters (
startDate,endDate,actions, and so on) identical across all requests in a paginated sequence. Changing filters mid-sequence means starting over without a cursor. - If
eventsis empty buthasMoreistrue, keep paginating. There may be matching results further on. - Treat cursors as opaque tokens. Don’t parse or modify them.
- Events are sorted by
createdAtdescending, then byiddescending, for consistent ordering across pages. - There’s no offset or page-number based pagination, only cursor-based.
Response codes
Data model reference
Actor types
Target types
CSV structure
Exported files are named audit_logs_export_<YYYYMMDD>_<HHMMSS>.csv. A single export is capped at 10,000 events—if your filtered result has more, the file is truncated and _TRUNCATED is appended to the filename. Narrow your date range or filters to get the rest.
Each row has these columns:
Note:
The CSV flattens the actor, target, and context objects from the JSON response into individual columns, and uses a single timestamp rather than the JSON response’s separate createdAt and processedAt.
Event structure
Each event, whether from events, events/search, or a CSV row, records:
id: a unique identifier for the event.action: what was done, indomain.resource.past_tense_verbformat (for example,workspace.user.invited).status: whether the action succeeded.actor: who or what performed the action.target: what the action was performed on.context: the workspace, organization, and IP address the action occurred in.details: additional information specific to that action, such as what changed from and to.metadata: timestamps for when the event was created and processed.
Event types
Actions follow the domain.resource.past_tense_verb format shown throughout this reference. Each event’s Name is the label it appears under in the Synthesia app’s Events filter—see Audit logs for how to browse events there. A dash (—) means the event isn’t available in the list of filter options.
Authentication
User
Workspace
Organization
Billing
Email send cap
Content
Integrations
Covers HRIS and messaging integrations for the Learner Portal, and other external tool connections.
Audit logs
Learner Portal
The Learner Portal has its own set of events, covering Learner Groups, content assignment, and role entitlements. These are distinct from the core Admin/Member/Guest model—the Learner Portal has its own roles (Enablement Admin, Organization Admin, Manager, and Learner).