> For the complete documentation index, see [llms.txt](https://docs.concurrence.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.concurrence.com/developer-guide/platform-api/safety.md).

# Safety & Monitoring

Agent safety guidance, supported audit and PHI-access evidence, configured retention policy, and compliance reporting boundaries.

This page covers the safety model, the audit trail, retention, and compliance reporting. The other pages in this section cover the rest of the monitoring and observability surface:

* [Analytics & Observability](/developer-guide/platform-api/safety/analytics.md) - workspace analytics, call intelligence aggregates, recordings, dashboards, the real-time event stream, and stored external write proposals
* [Insights](/developer-guide/platform-api/safety/insights.md) - read-only SQL, schema discovery, and workspace health digests
* [Metric Store](/developer-guide/platform-api/safety/metric-store.md) - built-in and custom metric definitions, AI evaluation, and metric queries
* [Call Trace Analysis](/developer-guide/platform-api/safety/call-trace-analysis.md) - per-call emotional arcs, key decision moments, and coaching recommendations
* [Voice Judge](/developer-guide/platform-api/safety/voice-judge.md) - audio-native quality scores across ten voice dimensions
* [Production Evals](/developer-guide/platform-api/safety/production-evals.md) - assertion and metric checks against live completed calls
* [Simulation Coverage](/developer-guide/platform-api/safety/simulation-coverage.md) - systematic exploration of context graph state space
* [Prompt Logs](/developer-guide/platform-api/safety/prompt-logs.md) - full LLM inputs and outputs for auditing and debugging
* [Trace Export](/developer-guide/platform-api/safety/trace-export.md) - tool-call trace spans for external observability collectors

## Safety Model

Safety behavior is authored in the agent and its Context Graph through guidance, entry states, exit conditions, eligible tools, and escalation instructions. A model can still miss or misclassify a concern, so teams must test representative cases and preserve a human fallback. Supported workflows can forward a call or let an operator join; there is no separate configuration surface that makes every conversation independently safety-certified.

See [Voice Agent](/developer-guide/platform-api/conversations/voice-agent.md) for the call escalation flow and [Operators](/developer-guide/platform-api/conversations/operators.md) for the operator join flow.

## Audit Trail

The Platform API provides a workspace-scoped audit surface for supported event producers. Covered routes and services record the context available to that producer; the audit API is not proof that every platform action or downstream system mutation was captured.

### PHI Access Logging

Supported PHI-sensitive routes classify their audit events, including selected entity reads, FHIR patient data, call recordings, call intelligence, and audit-report access. Covered events use `phi_accessed: true` for reporting. Each entry keeps the resource identifier from the request, including call IDs and other external identifiers, with the matched route and outcome. An authenticated request that fails before a response starts is recorded as a failure with no HTTP status. Validate route coverage against your own audit requirements instead of assuming the PHI report observes every access path.

Audit publication is separate from the primary operation on supported asynchronous paths. An operation can therefore succeed even if its audit write is delayed or fails; monitor audit delivery rather than treating it as transactionally coupled evidence.

### Audit Query Endpoints

All audit query endpoints require `admin` or `owner` permissions and are workspace-scoped.

#### List Audit Events

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/audit" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

#### Get the PHI Access Report

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/audit/phi-access" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

#### Get an Entity Access Log

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/audit/entity/{entity\_id}/access-log" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

#### Get the Audit Summary

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/audit/summary" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

## Data Lineage

For entity-level provenance and the currently populated lineage fields, see [Entity Intelligence](/developer-guide/platform-api/data-world-model.md#entity-intelligence). Compatibility arrays that are empty do not establish destination-delivery or review history.

## Retention Policies

### Get the Retention Policy

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/settings/retention" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

Returns configured defaults of 2,190 days (6 years) for fields that are not explicitly set. A stored duration is not by itself a compliance determination.

### Update the Retention Policy

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/settings/retention" method="put" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

Updates are partial: omitted fields remain unchanged.

The retention GET endpoint is available to any authenticated user; the PUT endpoint requires `admin` or `owner`. Retention changes are audit-logged.

{% hint style="info" %}
Retention policies are advisory: the policy is stored and displayed, but the platform does not delete data automatically.
{% endhint %}

## Audit Log Export

### Create an Audit Export

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/audit/export" method="post" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Poll an Audit Export

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/audit/export/{statement\_id}" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

Export creation is asynchronous. Save the returned statement identifier and poll until the export is ready, then download the CSV chunks through the returned short-lived presigned links. Re-poll to refresh expired links. Treat the statement identifier and download URLs as sensitive capabilities.

Creating an export records a PHI-sensitive audit event. A direct download from a presigned URL is separate from the authenticated Platform API and does not establish a separate Platform download audit event. Creating and polling exports require the `Audit.export` permission.

## Compliance Reports

These reports provide compliance-oriented summaries and access evidence.

### Get the Compliance Dashboard

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/compliance/dashboard" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Get the HIPAA Evidence Report

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/compliance/hipaa" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

### Get the Access Review

{% openapi src="<https://platform.api-us.concurrence.com/v1/openapi.json>" path="/v1/{workspace\_id}/compliance/access-review" method="get" %}
<https://platform.api-us.concurrence.com/v1/openapi.json>
{% endopenapi %}

All three require `admin` or `owner` permissions. Treat their responses as product evidence, not an independent certification or a complete assessment of the customer's control environment.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.concurrence.com/developer-guide/platform-api/safety.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
