The audit log is an append-only record of changes in an organization. Every mutation emits an event, and the audit log stores those events as entries with a timestamp, an action, the entity touched and the actor responsible.
In the admin
The audit log lives under System → Audit log.
- Use the Action filter to show create, update or delete entries, or all.
- Use the Entity filter to narrow to one entity type, such as
product,categoryormember. - Each row shows Timestamp, Action, Entity, ID and Actor. Click a row to expand the recorded event payload.
The page loads the most recent 200 entries, and the Entity list is built from the entity types present in those entries. Use the API to look further back.
With the API
GET /v1/audit-log returns entries newest first in the standard list envelope (data, limit, offset, hasMore).
| Query parameter | Meaning |
|---|---|
entity_type | For example product, variant, api_key, connector.sync |
entity_id | One entity’s UUID, for its full history |
action | create, update or delete |
since | ISO 8601 date-time; entries at or after it |
limit / offset | Default 100, max 500 |
curl 'https://api.minipim.com/v1/audit-log?entity_type=product&entity_id=0b8c5d3a-…&limit=50' \
-H 'Authorization: Bearer pim_…'
Each entry has entityType, entityId, action, actorType, actorId, actorLabel, changes and createdAt.
What gets recorded
- Actor type is
user(someone in the admin or using a session),api_key,connector(a sync or inbound webhook), orsystem. actorLabelis the user’s name, or their email if no name is set, foruserentries. It is resolved when you read the log, so renaming a person updates their history. Other actor types show no label in the admin, just the type and the start of the id.changesholds the event payload underafter, such aschanged_fields, a slug or a name. It records what changed, not the before and after values of every field.- Action is derived from the event name. For example,
attached,assignedandaddedcount ascreate;detached,revokedandremovedcount asdelete;roles_updatedandcompletedcount asupdate.
Rules and limits
- The log is per organization and cannot be edited through the API.
- A failed mutation writes no entry: the audit row is saved in the same transaction as the change.
- Events whose verb is not a create, update or delete are skipped, for example
media.uploadedandconnector.webhook.received. Attaching an uploaded file to a product is recorded (media.attached). - Connector pulls record one
connector.syncentry for the whole sync rather than one per imported product. - For an
api_keyentry,actorIdis normally the id of the user who created the key, not the key’s own id. - Wipe catalog keeps the audit log. Deleting the organization removes it, after exporting it with the rest of the data. See Organization settings.
- Audit query parameters are snake_case (
entity_type,entity_id), unlike the rest of the API. - Entries made by a member stay in the log after that member is removed.
To react to changes as they happen rather than reading the log, use webhooks.
See also
- Members and invitations — Add people to a minipim organization by email, share invite links, revoke pending invitations, change a member's role and remove members from the org.
- API keys — Issue, rename and revoke minipim API keys. Keys start with pim_, are shown once, carry their own organization, and authenticate every /v1 request.
- Webhooks — Send signed minipim catalog events to your storefront: install the Headless connector, choose event groups, verify signatures, and debug deliveries.
- Organizations — Organizations are minipim's tenants: each holds one separate catalog. Create one, switch between them, rename it, or delete it with an export first.