Flourish for developers
  • Flourish SDK
  • Flourish Live API
  • Embedding guide
  • Audit Logs API
  • Help

›Audit Logs API

Audit Logs API

  • Audit Logs API
  • Audit events

Audit events

The log files returned by the Audit Logs API contain audit events. Each event records who (the actor) did what (the action) to what (the target), together with the outcome of the action and some request context.

This page describes the event structure and lists the event types. The authoritative, machine-readable reference is the schema endpoint below — it always matches the events your log files actually contain. New event types, fields and values may be added over time, so parsers should ignore any they don't recognize.

Machine-readable schema

GET https://app.flourish.studio/api/audit-logs/schema

Returns an OpenAPI document describing the full event structure: every event type, its fields, and their allowed values. It uses the same audit_log:read bearer authentication as the rest of the API, and is useful for building or validating a log parser.

Event structure

Every audit event has the following top-level fields:

FieldTypeDescription
idstringUnique ID of the audit event.
timestampintegerWhen the event occurred, as a Unix timestamp in milliseconds.
actorobjectWho performed the action. actor.type is USER, ANONYMOUS, SYSTEM or FLOURISH_CUSTOMER_SUPPORT.
targetobjectWhat the action was performed on. target.target_type is USER, COMPANY or RESOURCE.
actionobjectWhat was done, including a type field (see Event types) and per-type detail fields.
outcomeobjectWhether the action succeeded. outcome.result is PERMITTED, DENIED, RESOURCE_NOT_FOUND, FAILED or UNKNOWN.
contextobjectRequest context, such as the actor's IP address.

All IDs are strings. Events recorded before November 2026 may contain company_id and key_id (in a COMPANY_API_KEY actor), resource_id (AUTHORIZATION_CHECKED) and api_key_id (API_ACCESSED) as JSON numbers, so read IDs as strings.

Event types

The action.type field identifies the event type:

Event typeTriggered when
ADMINISTRATIONA company admin changes company settings, manages users, or creates or deletes API tokens.
AI_REQUEST_MADEA user submits resource data to an external AI model. No content from the request is captured.
API_ACCESSEDA user manages API keys or SDK tokens.
AUTHENTICATION_ATTEMPTEDA user logs in or out, or an unauthenticated request tries to access a protected resource.
AUTHORIZATION_CHECKEDA permission check is made.
DATA_DOWNLOADEDVisualization data is read over HTTP (CSV, JSON or the Live API), or the Audit Logs API is called.
DATA_UPLOADEDA user uploads data to a visualization.
FILE_UPLOADEDAn upload URL is created for a file asset (images, videos, audio, JSON, 3D models).
LIVE_DATA_UPDATEDLive or external data is updated for a visualization.
NETWORK_PORT_BOUNDThe Flourish server process binds its internal HTTP port at startup (recorded once per audit-enabled company).
PAGE_LOADEDA user loads a page in Flourish.
PREVIEW_URL_LOADEDA preview or embed URL is accessed.
RESOURCE_CHANGEDA user modifies a visualization or story.
RESOURCE_CREATEDA user creates a new resource.
RESOURCE_DELETEDA user deletes a visualization or story.
RESOURCE_DOWNLOADEDA user exports a visualization or story as offline HTML, or a story as video.
RESOURCE_DUPLICATEDA user duplicates a resource.
RESOURCE_PUBLISHEDA user publishes or unpublishes a visualization or story.
RESOURCE_RESTOREDA previously soft-deleted resource is restored — typically after a user's account deletion is reversed.
RESOURCE_REVIEWEDA user performs approval workflow actions.
RESOURCE_SHAREDA user changes the company access level for a visualization or story.
TEMPLATE_CHANGEDA user performs company template management actions.
USER_CHANGEDA user modifies their own profile or settings.

Most event types carry extra detail fields beyond type — for example, ADMINISTRATION events include the setting that changed plus its old and new values. The schema endpoint documents every field of every event type.

Example event

A company admin creating an audit log API token produces an event like this:

{
  "id": "3849ef51-ca85-4028-bae3-1b8de3ee5738",
  "timestamp": 1704070800123,
  "actor": {
    "type": "USER",
    "id": "1234",
    "display_name": "Jane Doe",
    "email": "jane.doe@example.com",
    "company": { "id": "5678", "display_name": "Acme Team" },
    "company_role": "ADMIN"
  },
  "target": {
    "target_type": "COMPANY",
    "company": { "id": "5678", "display_name": "Acme Team" }
  },
  "action": {
    "type": "ADMINISTRATION",
    "setting_type": "API_TOKEN_CREATED",
    "new_value": "{\"id\":42,\"name\":\"SIEM export\",\"scopes\":[\"audit_log:read\"]}"
  },
  "outcome": { "result": "PERMITTED" },
  "context": {
    "ip_address": "192.0.2.123"
  }
}

If you'd rather not work with the raw logs or the API, your Flourish support contact can provide your logs instead.

Last updated on 10/11/2026
← Audit Logs API
  • Machine-readable schema
  • Event structure
  • Event types
  • Example event
Copyright © 2026 Flourish