> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qobra.co/llms.txt
> Use this file to discover all available pages before exploring further.

# list_audit_logs

List your company's audit-trail entries, most recent first.

The audit trail records every action taken on the platform — data edits,
compensation-rule changes, statement adjustments, exports — one entry per
action, each with who did it, when, and on which resource. Combine the filters
(AND) to zoom in: actor='`alice@acme.com`' for one person's actions, or
resource\_id=\<id> + after='-P1M' for a resource's recent history. Fetch
get\_audit\_log for the per-field change payload of a single entry. Only the last
12 months are queryable — older entries predate the current change-tracking and
are not returned.

## Parameters

<Accordion title="Body" defaultOpen>
  <ParamField body="resource_id" type="string">
    Keep only logs whose affected resource id contains this value
    (case-insensitive substring). Pass a full ObjectId — e.g. an `id` copied
    from another tool's row — to pin one exact resource, or a fragment to match
    a family. Omit for every resource.
  </ParamField>

  <ParamField body="actor" type="string">
    Keep only actions performed by this user — a name/email substring or a user
    ObjectId. Omit for every actor.
  </ParamField>

  <ParamField body="after" type="string">
    Keep only logs at or after this instant. Accepts an absolute ISO-8601
    date/time ('2026-07-01') or a duration relative to now ('-P7D' for the last
    7 days). Omit for no lower bound.
  </ParamField>

  <ParamField body="before" type="string">
    Keep only logs at or before this instant. Same accepted forms as after. Omit
    for no upper bound.
  </ParamField>

  <ParamField body="limit" type="integer">
    Page size, between 1 and 250. Defaults to 50.
  </ParamField>

  <ParamField body="offset" type="integer">
    Row offset into the result set — the number of rows to skip before this
    page. Pass the next\_offset returned by the previous call, or None for the
    first page.
  </ParamField>
</Accordion>

## Response

<Accordion title="Body" defaultOpen>
  <ResponseField name="audit_logs" type="object[]">
    <Expandable title="object properties">
      <ResponseField name="id" type="string" />

      <ResponseField name="timestamp" type="string">
        When the action happened (UTC, ISO-8601).
      </ResponseField>

      <ResponseField name="event_name" type="string">
        Coded name of the audited event, e.g. 'UserUpdated' or
        'CompensationRuleUpdated' — the precise action taken.
      </ResponseField>

      <ResponseField name="resource_id" type="string">
        Id of the affected resource; null when not applicable.
      </ResponseField>

      <ResponseField name="resource_name" type="string">
        Human-readable name of the affected resource, if known.
      </ResponseField>

      <ResponseField name="actor" type="object">
        <Expandable title="object properties">
          <ResponseField name="id" type="string">
            ObjectId of the actor; feed it to get\_user for detail.
          </ResponseField>

          <ResponseField name="email" type="string">
            Actor's email as recorded at action time — the identifier to
            recognize the user by. Null for a system/script action.
          </ResponseField>

          <ResponseField name="name" type="string" />

          <ResponseField name="role" type="string">
            Actor's role name as recorded at action time.
          </ResponseField>
        </Expandable>
      </ResponseField>
    </Expandable>
  </ResponseField>

  <ResponseField name="next_offset" type="integer" />
</Accordion>
