Audit logs
Phonic emits structured audit logs for administrative and data-handling actions in your workspace. The logs are designed for ingestion into SIEM tools (Splunk, Datadog, Panther, etc.): stable field names, RFC3339 timestamps, one event per line when converted to NDJSON, no nested payload blobs.
Audit logs are separate from API request logs. Routine API calls (creating conversations, sending TTS) do not appear here; only actions that change identity, configuration, or persisted data are recorded.
Event schema
Every event has the same top-level shape:
Event taxonomy
This taxonomy is stable. Phonic will add new event types over time but will not rename or remove existing ones.
Retrieving audit logs
Pull audit logs with GET /v1/audit_logs:
Response:
Pagination
Pass the next_cursor value from each response as the cursor parameter on
the next request. Iteration ends when next_cursor is null.
Query parameters
Converting to NDJSON
Most SIEM ingestors expect newline-delimited JSON. Convert with jq:
For incremental ingestion, persist the highest id seen and use it as the
cursor on the next pull.
Authorization
Reading audit logs requires an API key with the admin role. Standard API keys cannot list audit events. This prevents a compromised low-privilege key from enumerating workspace activity.
The act of reading audit logs is itself audited (audit_log.exported) so you
can detect unusual access patterns.
Retention
Audit logs are retained for 1 year by default. Enterprise workspaces can request longer retention (up to 7 years) for compliance with SOC 2 Type II, HIPAA, or sector-specific frameworks. Contact your account team to change your retention window.
Audit logs are not subject to your workspace’s conversation retention mode. A workspace using zero retention for conversation content still retains its full audit trail. These are compliance records, not customer content.
Correlating audit events with API requests
Every Phonic API response includes an X-Request-Id header of the form
req_<26-char ULID>:
When an audit event was triggered by an API call, the same value appears in
the event’s request_id field. This lets you trace from a specific request
through to the resulting audit entry. When opening a support ticket,
including the X-Request-Id lets Phonic engineers triage faster.
If you supply your own X-Request-Id on a request, Phonic will echo it back
if it matches the expected format (req_ prefix, 30 characters total);
otherwise a server-generated ID is used.
Real-time escalation feed
The audit log is a pull-based, slower-moving administrative trail. For
real-time monitoring of conversation outcomes (transfers to human agents,
completions, errors), subscribe to the
conversation.transferred and
conversation.ended webhooks. These
fire as conversations end and provide a low-latency event stream that
complements the audit log.