X-API-Key header. See API Reference for authentication details.
Suites
List Suites
Get all test suites for your organization.GET
/api/v1/suites — Returns 200 OKExample Request
Response Fields
List of suite objects
Total number of suites returned
Example Response
Create Suite
Create a new test suite to organize your flows.POST
/api/v1/suites — Returns 201 CreatedRequest Body
Name of the test suite (1-255 characters)
Optional description of what the suite tests
Optional free-form suite-level context that gets injected into the AI agent’s system prompt for every flow run in the suite. Use this for product knowledge, conventions, or constraints that apply to all flows in the suite — e.g. “All flows assume the user is already onboarded; if you see the welcome tour, dismiss it.” This is not executed as a flow; for actions that should run before each flow, use
auth_instructions instead. See Suite Context.Optional login/authentication instructions that run before each flow in the suite. Use
${env:VAR_NAME} placeholders for sensitive values like credentials — configure these in your Environment Settings.Example Request
Response Fields
Unique identifier (UUID) of the created suite
Name of the suite
Description of what the suite tests
Suite-level context echoed back when
instructions was provided.UUID of the authentication setup flow. Present when
auth_instructions was provided.The authentication/login instructions for the suite’s setup flow. Echoed back when
auth_instructions was provided.ISO 8601 timestamp of when the suite was created
Who created the suite, as
{ id, name, type } (type is always user). null for older suites.Example Response
Get Suite
GET
/api/v1/suites/{suite_id} — Returns 200 OK (same shape as Create Suite), or 404 if the suite does not exist.UUID of the suite.
Update Suite
Update any subset of a suite’s fields — omitted fields are unchanged. Returns the same shape as Create Suite.PATCH
/api/v1/suites/{suite_id} — Returns 200 OK. 400 if no recognized fields are provided. 404 if the suite does not exist.UUID of the suite.
New name (1-255 characters).
New description. Pass
null to clear.New suite-level context. Pass
null to clear. See Suite Context.New login instructions that run before each flow in the suite. Use
${env:VAR_NAME} placeholders for credentials — configure them in your Environment Settings. To remove auth entirely, use the dashboard.Delete Suite
Deletes the suite. Flows inside the suite are not deleted — delete them separately if needed.DELETE
/api/v1/suites/{suite_id} — Returns 204 No Content, or 404 if the suite does not exist.UUID of the suite.
Flows
List Flows
Get all test flows for your organization. Optionally filter by suite.GET
/api/v1/flows — Returns 200 OKQuery Parameters
Optional. Filter flows by suite ID to get only flows in a specific suite (ordered by position).
Example Request
Response Fields
List of flow objects
Total number of flows returned
Example Response
Create Flow
Create a new test flow (test case). Optionally attach it to a suite.POST
/api/v1/flows — Returns 201 CreatedRequest Body
Name of the test flow (1-255 characters)
Natural language instructions for the test. See Writing Effective Flow Instructions for best practices.
Optional UUID of a suite to attach this flow to. The flow will be added to the end of the suite.
Example Request
Response Fields
Unique identifier (UUID) of the created flow
Name of the flow
Natural language test instructions
Always
false for flows created via this endpoint. Enable from the dashboard if you want caching.UUID of the suite this flow belongs to (if attached)
Position of this flow within the suite (0-indexed, if attached)
ISO 8601 timestamp of when the flow was created
Who created the flow, as
{ id, name, type } (type is always user). null for older flows.Example Response
Get Flow
GET
/api/v1/flows/{flow_id} — Returns 200 OK with the same shape as items in List Flows, or 404 if the flow does not exist.UUID of the flow.
Update Flow
Update any subset of a flow’s fields — omitted fields are unchanged. Returns the same shape as items in List Flows.PATCH
/api/v1/flows/{flow_id} — Returns 200 OK. 400 if no recognized fields are provided. 404 if the flow does not exist.UUID of the flow.
New name (1-255 characters).
Natural-language test instructions.
Delete Flow
Deletes the flow. Past runs are preserved.DELETE
/api/v1/flows/{flow_id} — Returns 204 No Content, or 404 if the flow does not exist.UUID of the flow.
Suite Membership
Move a flow between suites without losing run history.Add Flow to Suite
Attaches an existing flow to the end of a suite.POST
/api/v1/suites/{suite_id}/flows/{flow_id} — Returns 201 Created. 404 if the suite or flow does not exist. 409 if the flow is already in the suite.UUID of the suite.
UUID of the flow to attach.
Response Fields
UUID of the suite the flow was attached to.
UUID of the flow that was attached.
0-indexed position the flow was placed at — always the next slot at the end of the suite.
Example Response
Remove Flow from Suite
Detaches a flow from a suite. The flow itself is not deleted.DELETE
/api/v1/suites/{suite_id}/flows/{flow_id} — Returns 204 No Content. 404 if the suite does not exist, or if the flow is not in this suite.UUID of the suite.
UUID of the flow to detach.
Example Workflow
Here’s a typical workflow for creating a test suite with multiple test cases:Create a Suite
First, create a suite to organize your test cases. If your app requires login, include Save the returned
auth_instructions — these run automatically before each flow:id for the next step.Run Tests
Run your tests from the Flows page, trigger them via the Runs API (auth instructions run automatically for individual flows), or set up Automations to run them on a schedule.