Skip to main content
Read a run: its stored transcript and every section of the audit that has finished so far. This is how you collect the result of audit_launch. The call is free and read-only. Poll it every few seconds after launching.

Authorization

string
required
Your bearer token: Bearer <token>. See Authentication.

Request body

string
required
The run to read.

Request

Knowing when it is done

Sections appear as they finish, so an early poll returns a partly filled response. The audit is finished when report, read, and verdicts are all non-null:
replies fills in shortly after those three, so read it last. A run typically completes in a few minutes; if all three are still null after 30 minutes, treat the run as failed and prepare a new one.

Response

string
The run’s id.
string | null
The agent under review. null on a run that was prepared but never launched.
object
The parsed transcript the audit ran on, as { "messages": [...] }. Each message carries the id (m1, m2, … in order), speaker, and text. The ids are what the report’s evidence cites.
object | null
The reception report: health_score, summary, findings, per_user, interactions, and interaction_totals. Same shape as analyze. null until that section finishes.
object | null
What your agent could have known about the people in the conversation.Every field inside is independently optional — a section that could not be produced is omitted rather than failing the audit.
array | null
One entry per turn your agent took, each with the index of the turn’s first message, a risk grade, a summary of what the turn risked, and predicted_message — what the other person was likely to say next.
array
Rewrites of your agent’s worst turns. Each has the index of the turn, the rewritten reply, messages (the reply split the way a person would send it), and the risk grade of the rewrite. Empty until the rewrites finish.

Errors

Next: Analyze a transcript directly when you already have structured messages and want just the report.