Audit logs

What actions are recorded, how to search and filter the audit log, and how to export it.

What audit logs record

Nimriz keeps a persistent audit log of security-relevant actions taken across your workspace and organization. Audit logs are designed for governance, compliance review, and security investigations-they answer "who did what, when, and from where."

Audit logs are immutable. Entries cannot be edited or deleted. Once an action is recorded, it stays in the log for the duration of the retention period.


Where to find audit logs

Workspace audit log

Every workspace Admin can access the workspace audit log from the Audit entry in the Workspace section of Settings (SettingsAudit).

This view shows actions scoped to your current workspace. It covers link management, team changes, domain events, API key operations, webhook events, and more.

Workspace audit logs are available on eligible plans (Professional and above by default); on lower plans the page reports that audit logs are not enabled for the workspace.

Organization audit log

Organization Owners and Org Admins can access the organization-level audit log from the Audit entry in the Organization section of Settings (SettingsOrganizationAudit).

This view spans all workspaces within the organization and can be narrowed to a single workspace with the Workspace filter. It includes cross-workspace governance actions, org membership changes, billing events, and domain lifecycle events at the org level.


What each log entry contains

Every audit log entry records the following:

FieldDescription
Date & TimeWhen the action occurred (stored in UTC, displayed in your local format).
EventThe specific action that happened (see the action catalog below).
ActorWho performed the action: a user (identified by display name and email), an API key or partner app (for API- and MCP-originated actions), an admin operator, or a system process.
Target (entity type)The type of resource affected (e.g., url, domain, profile, invite).
Entity IDThe stable UUID of the affected resource.
SourceWhere the request originated: dashboard, api, import, webhook, mcp, admin, or system.
WorkspaceThe workspace context for the action.
OrganizationThe org context, when relevant.
MetadataAction-specific details (e.g., before/after values for changes, field names changed).

Action catalog

The catalog below lists the most common actions by their raw identifiers; it is representative, not exhaustive. The dashboard displays friendly labels derived from these identifiers (for example, space.updated appears as "Space Updated"); raw identifiers appear in CSV exports.

Link actions

ActionWhat it records
link.createdA new short link was created. Records domain, slug, destination host, and creation source.
link.deletedA short link was permanently deleted. Records domain and slug.
link.destination_updatedThe destination URL of a link was changed. Records before/after destination values.
link.destination_rolled_backA link's destination was rolled back to an earlier state from its destination history.
link.slug_updatedThe slug was changed. Records old and new slug values.
link.expiration_updatedThe expiration date was set, changed, or removed.
link.password_updatedPassword protection was added, changed, or removed.
link.routing_rule_createdA routing rule was added to a link.
link.routing_rule_updatedA routing rule was modified.
link.routing_rule_deletedA routing rule was removed.
link.routing_rule_reorderedThe ordering of routing rules was changed.
link.qr_style_updatedA link's custom QR styling was changed.
link.organization_updatedA link's space, tags, or library organization was changed.
link.import_batch_processedA bulk link import completed. Records how the batch was processed.

Team and member actions

ActionWhat it records
team.invite_createdA workspace invitation was created and sent. Records invited email and assigned role.
team.invite_resentAn invitation was resent.
team.invite_revokedAn invitation was revoked before acceptance.
team.invite_acceptedAn invitation was accepted and the invitee joined the workspace.
team.member_role_updatedA member's role was changed. Records old and new role.
team.member_removedA member was removed from the workspace.
workspace.active_switchedA user switched their active workspace. Records before/after workspace.

Domain actions

ActionWhat it records
domain.createdA custom domain was added.
domain.verification_updatedThe domain's verification or readiness state changed.
domain.landing_redirects_updatedThe domain's fallback landing redirects were changed.
domain.reconnectedA domain was reconnected after a disruption.
domain.disconnectedA domain was disconnected or removed.

Security and authentication actions

ActionWhat it records
account.workspace_2fa_enforcement_updatedWorkspace 2FA enforcement was enabled or disabled.
user_totp.enrolledA user completed TOTP setup.
user_totp.disabledA user disabled their TOTP factor.
user_totp.recovery_codes_regeneratedA user regenerated their recovery codes.
user_totp.recovery_code_usedA user signed in with a recovery code.
user_totp.support_resetAn operator reset a user's TOTP factor via the support admin flow.

API and integration actions

ActionWhat it records
workspace_api_key.createdA workspace API key was generated.
workspace_api_key.revokedA workspace API key was revoked.
conversion_callback_secret.rotatedThe workspace Conversion API signing secret was generated or rotated.
conversion_callback_secret.revealedThe current Conversion API signing secret was revealed in the dashboard.
webhook_endpoint.createdA webhook endpoint was added.
webhook_endpoint.updatedA webhook endpoint configuration was changed.
webhook_endpoint.deletedA webhook endpoint was removed.
webhook_endpoint.secret_rotatedA webhook endpoint's signing secret was rotated.
webhook_endpoint.test_sentA test event was sent to a webhook endpoint.
webhook_delivery.replayedA past webhook delivery was manually replayed.
integration_destination.created / updated / deletedAn integration destination was added, changed, or removed.

Library and organization actions

ActionWhat it records
space.createdA space was created.
space.updatedA space was renamed or modified.
space.deletedA space was deleted.
tag.createdA tag was created.
tag.updatedA tag was renamed or modified.
tag.deletedA tag was deleted.
utm_preset.createdA UTM preset was created.
utm_preset.updatedA UTM preset was modified.
utm_preset.deletedA UTM preset was deleted.
utm_preset.duplicatedA UTM preset was duplicated.
qr_preset.createdA QR preset was created.
qr_preset.updatedA QR preset was modified.
qr_preset.duplicatedA QR preset was duplicated.
qr_preset.deletedA QR preset was deleted.

Searching and filtering

From the audit log view's Filters panel, you can filter entries by:

  • Date range-narrow to a specific period.
  • Event-filter to a specific action.
  • Actor-filter to actions by a specific user.
  • Target-the entity type: see only link (url) events, team events, domain events, etc.
  • Source-where the request originated (dashboard, API, import, webhook, MCP, admin, system).
  • Entity ID-look up every event that touched one specific resource.
  • Workspace-organization view only: narrow to one workspace.

Active filters appear as removable chips, stay in the URL (so investigations are shareable), and carry into exports. For complex investigations, use multiple filters together. For example: all link events by a specific user in the last 7 days.

The workspace audit log view: a Filters panel with Date, Event, Actor, Target, and Source dropdowns plus an advanced exact-entity-ID filter, above an Events table listing entries with event name and summary, actor email and role, target, source, and date and time
The audit log view: filters on top, newest-first events below. Each row shows the event, actor, target, source, and time.

Exporting audit logs

The audit log can be exported as a CSV with the Export CSV action on the audit page. The export respects the same scope and filters as the on-screen view and covers the most recent matching entries (up to 500 rows per export).

The underlying endpoints (GET /api/audit-logs and GET /api/organization/audit-logs, with query parameters such as action, entity_type, user_id, source, from, to, page, limit, and format=csv) are dashboard endpoints authenticated by your signed-in session and role-they do not accept workspace API keys.


Audit log retention

Audit log retention follows the platform's standard data retention schedule. Logs are preserved for as long as the workspace is active. Logs cannot be selectively deleted.


What is not recorded

Audit logs focus on intentional mutations and security-relevant events. The following are not recorded:

  • Routine read operations (viewing a link's analytics, browsing the link list).
  • Redirect events (individual short-link clicks are in analytics, not in audit logs).
  • No-op saves (an edit that results in no actual change does not create an audit entry).

Troubleshooting

I cannot see the Audit section in Settings

Audit log access requires the Admin role in the workspace (or Org Owner/Org Admin for org-level logs). If you do not see the Audit entry in Settings, ask your workspace Admin to check your current role. Workspace audit logs are also plan-gated (Professional and above by default)-on lower plans the page reports that audit logs are not enabled.

An action I took is not appearing in the audit log

  • Check the time range filter-the log defaults to a recent window, and your action may be outside the visible range.
  • Confirm you are looking at the correct scope. Workspace-level audit shows workspace actions; organization-level audit shows org-level actions.
  • Some actions (read operations, no-op saves) are intentionally not logged.

I want to see who changed or disabled a link

Links are not hard-deleted in Nimriz; they are disabled, expired, or taken down. Filter the audit log with Target set to Link (the url entity type) and look for the relevant lifecycle event (for example link.expiration_updated or link.takedown_updated), or paste the link's ID into the Exact entity ID advanced filter to see its full history.


Related guides

Related next steps

Ready to test this setup?

Create an account to try the workflow, or compare plans when the setup needs higher limits, integrations, or team controls.