Audit trail
The audit trail records changes to your Flows, Agents, Records, credentials, and integrations. It identifies who made each change, when it happened, and its source. Use it to answer questions such as “Who edited this Flow yesterday?” or “Which API key deleted these Records?”
Runtype records changes on every plan. You can view the audit trail on Enterprise plans.
Runtype saves an entry for an organization connection credential change or an organization API key change together with the change itself. This includes keys that are issued or revoked through CLI sign-in, OAuth, and onboarding. Runtype records other changes separately, so in rare cases their entry can be missing.
What gets audited
Runtype writes audit entries for the following resources and operations:
- Flows: create, edit (including draft saves), delete, publish, and change the active version.
- Agents: create, edit, delete, publish, change the active version, add or delete capabilities, activate, roll back, and archive release aliases, and change an alias’s secret bindings. A binding entry records the alias, its new revision, and the binding names, never a binding value.
- Records: create, edit, delete, and bulk operations, including bulk edits, bulk deletes, and CSV imports.
- Secrets: create, edit, and delete. Entries include the secret name and metadata, but not its value.
- API keys: create, edit, and revoke. Rotation is recorded as an edit, and deletion is recorded as revocation.
- API key requests: create, approve, decline, claim, cancel, and expire.
- Provider keys: create, edit, rotate, and delete. Entries include identifying metadata, but not key material.
- Client tokens: create, edit, regenerate, and delete. Entries include identifying metadata, but not token material.
- Integrations: connect, update, and disconnect.
- Organization connections: create, migrate, rotate credentials, update settings, change the default, activate, revoke, and delete. Entries include identifying metadata, but not credential values. When a change sets which credential a provider uses, Runtype also records the provider’s credential policy change.
- Model configurations: create, migrate, enable, disable, update settings, change the default or connection, and delete.
- Sandbox deployments, such as previews from the
deploy_sandboxMCP tool: create, update, rename, renew, suspend, resume, destroy, and expire. - Question sets: create, update, publish, and calibrate.
Runtype also audits resource changes made through imports, templates, and quick start. Viewing an entity in the dashboard does not create an entry. When Runtype support staff read your account data, such as a run’s trace, Runtype records an entry with the admin actor source.
Find audit entries
Use the following dashboard locations to view audit entries:
- In the Record details sheet, click the Activity tab to view the Record’s change history.
- In the Flow editor or Agent editor, open the actions menu and click Activity.
- On the Logs page, select Audit from the Type filter to view audit entries with execution logs.
The dashboard Activity views show the last 30 days of changes, from newest to oldest. For a busy resource, an Activity view scans only the most recent events and says so. When it does, use the Logs page with the Audit filter to see the full trail.
What each entry shows
Each audit entry includes the following information:
- Action: what happened, such as
flow.publishedorrecord.updated. - Actor: the source of the change. It can be a dashboard user, the dashboard assistant, an API key, the CLI, the SDK, an MCP client, Code Mode MCP, Terraform, another API caller, or Runtype support staff. The UI shows an API key’s name when available. A change that the dashboard assistant makes shows as the Assistant on behalf of the person who asked, and the entry’s
actor.sourceisdashboard-assistant. This attribution is for display only and doesn’t change permissions. - Timestamp: when the change happened.
- Before and after snapshots: expandable views of the entity before and after the change. Runtype redacts secrets and omits a snapshot larger than 20 KB.
- Details: extra information about the change, such as counts and affected Record IDs for bulk edits, bulk deletes, and CSV imports.
When you publish a Flow or Agent, Runtype creates two entries. One entry contains the published configuration snapshot. The other records the active version change with the previous and new version IDs.
Query the audit trail with the API
Set category to audit to query audit entries through the Logs API. The following requests list the audit entries for one Flow since a start time:
cURL
CLI
TypeScript
Replace the placeholders in the requests with these values:
YOUR_API_KEY: your Runtype API key. The key needs theFLOWS:READ,AGENTS:READ, orANALYTICS:READpermission.YOUR_FLOW_ID: the ID of the Flow to query.START_TIME: the start of the time range, as an ISO 8601 timestamp such as2026-09-01T00:00:00Z. Withoutfrom, the query covers only the last 24 hours. Usetoto set the end of the range.
To query other resources, change the filter:
- For an Agent, replace
flowIdwithagentId. In the CLI, replace--flowwith--agent. - For a Record, a secret, a key, or any other resource, pass its ID as
search(--searchin the CLI). Each audit entry’s message is the action followed by the entity ID, sosearchalso matches an action name, such assecret.deletedorapi_key.revoked.
From an MCP client connected to the Runtype MCP server, call the list_logs tool with type set to audit.
If your plan doesn’t include the audit trail, a request with category=audit returns HTTP 402 with the error Feature Not Available.
Read an audit entry
Each audit entry has type set to audit. Its metadata object holds the fields that the dashboard shows. The following example shows a trimmed entry:
The metadata object contains these fields:
action,entityType, andentityId: what changed.actor: who made the change, includingsourceand, for API key callers, the key’s ID, name, and prefix. A change from the dashboard assistant hassourceset todashboard-assistant.beforeandafter: the snapshots.diff: the changed paths, each with anopofadd,remove, orreplace.meta: the Details information, such as bulk counts and affected Record IDs.previousVersionIdandnewVersionId: the version IDs for an active version change.droppedForBudget: the fields that Runtype removed because the entry was too large.
Page through results
A response returns up to 500 entries by default. Set limit to return up to 1,000 entries per page, and set order to asc or desc. The response puts the entries in data.entries. When data.pagination.hasMore is true, pass data.pagination.cursor as cursor to get the next page.
Check these response fields when you need a complete trail:
data.pagination.cursorReset: whentrue, Runtype couldn’t use your cursor and restarted at the first page. Stop paging and start the query again.data.degraded: whentrue, Runtype couldn’t read some entries, so entries are missing from the response. Retry the request.
Find bulk operations for a Record
The API has no Record ID filter, so search for the Record ID. A bulk operation’s message contains only the first Record’s ID, so a search can miss a bulk operation that changed your Record.
The Record’s Activity tab also checks each bulk operation’s list of affected Record IDs. For a very large bulk operation, Runtype stores only part of the list. The Activity tab says when it can’t check an operation against the Record.
Next steps
Continue with these guides:
- What are Logs?: understand execution logging.
- Working with logs: search, filter, and export log data.
- Agent versioning and publishing: understand release aliases, rollbacks, and secret bindings.
- Creating and editing flows: find Flow activity in the editor.
- Creating and managing records: find Record activity in the details sheet.
- Query customer logs: review every Logs API query parameter.