Get a flow test
The test job as it stands. While status is running, stage and progress say where it is, and usage and cost are the totals so far.
Once succeeded, it carries the final flow (the graph you sent when nothing needed changing; see changed), its variables and input_schema, every round’s test calls and findings, and what was found at first and what is still remaining. Save the flow with Save a flow on an agent. A job that fails says why in error. Jobs are kept for 24 hours.
Authorizations
Your workspace secret key, sk_live_ followed by 32 hex characters. Create one in the console under Developers.
Path Parameters
The flow test's id (frf_…).
Response
Succeeded: tested, fixed and tested again
The agent the request named, or null.
The test calls the job was given, tidied to one AGENT:/CALLER: turn per line as they were tested; tests[].source.index (kind call) points into this list. Kept with the job (24 hours), readable only by its workspace; never logged.
5What the job costs: every simulated turn on the live-call model at the text channel's LLM rates (₹14.38 / ₹57.52 per million input / output tokens), every hosted call (the callers, a fallback, the reviews and revisions) at the provider's reported cost × ₹88 × 1.2 (its per-token rates when none is reported), rounded up once to a paisa. So far while running; once finished (succeeded, failed or canceled), the amount charged to the wallet in one flow_generation transaction described "Flow test · · … tokens".
The example calls the job was given, as it used them, in order: a replay's tests[].source.index (kind example) points into this list, so a client can show each replay beside its original, and resending them with the current flow tests the same calls again. Kept with the job (24 hours), readable only by its workspace; never logged.
10What the first review found in the graph sent.
The job id (GET /v2/agents/flow/refine/{id}) and the reference of its wallet transaction (kind flow_generation). Quote it in a support request.
^frf_[0-9A-Z]{26}$The flow revision of the graph the job was given (the graph under test).
The model that reviews and revises.
gemini-3.8-flash, claude-opus-5.5, gpt-6-sol round: the test round under way (1-based); rounds: the most there can be (1, plus 1 per revision when verify is true: 2 by default); tests_done of tests_total: this round's tests.
What the last review found: with verify, in the final graph; without, in the graph sent.
The test rounds finished so far, in order.
4The model simulated calls run on: the LLM your tier's live calls run on, as that stack names it (for example voice-agent), or gemini-3.8-flash when that model was unavailable, switched off or failed during the job (the job then falls back for good; each test names its model).
What a running job is doing; done once it succeeded; where it stopped once it failed or was canceled.
writing_scenarios, simulating, reviewing, revising, verifying, done canceled: stopped with POST /v2/agents/flow/refine/{id}/cancel; what had answered is charged and the rounds that finished are kept.
running, succeeded, failed, canceled Every model call's tokens, simulated turns included, summed. So far while running.
Once succeeded: whether flow differs from the graph sent.
Why a failed job failed.
Once succeeded: the final graph — the last valid revision, or the graph sent when nothing was changed (changed false). It passes every rule PUT /v2/agents/{id}/flow applies. Not saved.
Once succeeded: the final graph's flow revision.
Once succeeded: the variables as an agent input_schema, ready to save beside the flow.
Once succeeded: the call variables the final graph reads as {{name}}. When nothing changed, every one is typed string.
32