Skip to main content
These endpoints allow you to manage test suites and flows via the API. All requests require an API key in the 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 OK

Example Request

Response Fields

array
List of suite objects
integer
Total number of suites returned

Example Response


Create Suite

Create a new test suite to organize your flows.
POST /api/v1/suites — Returns 201 Created

Request Body

string
required
Name of the test suite (1-255 characters)
string
Optional description of what the suite tests
string
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.
string
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

string
Unique identifier (UUID) of the created suite
string
Name of the suite
string | null
Description of what the suite tests
string | null
Suite-level context echoed back when instructions was provided.
string | null
UUID of the authentication setup flow. Present when auth_instructions was provided.
string | null
The authentication/login instructions for the suite’s setup flow. Echoed back when auth_instructions was provided.
string
ISO 8601 timestamp of when the suite was created
object | null
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.
string
required
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.
string
required
UUID of the suite.
string
New name (1-255 characters).
string | null
New description. Pass null to clear.
string | null
New suite-level context. Pass null to clear. See Suite Context.
string
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.
string
required
UUID of the suite.

Flows

List Flows

Get all test flows for your organization. Optionally filter by suite.
GET /api/v1/flows — Returns 200 OK

Query Parameters

string
Optional. Filter flows by suite ID to get only flows in a specific suite (ordered by position).

Example Request

Response Fields

array
List of flow objects
integer
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 Created

Request Body

string
required
Name of the test flow (1-255 characters)
string
required
Natural language instructions for the test. See Writing Effective Flow Instructions for best practices.
string
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

string
Unique identifier (UUID) of the created flow
string
Name of the flow
string
Natural language test instructions
boolean
Always false for flows created via this endpoint. Enable from the dashboard if you want caching.
string | null
UUID of the suite this flow belongs to (if attached)
integer | null
Position of this flow within the suite (0-indexed, if attached)
string
ISO 8601 timestamp of when the flow was created
object | null
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.
string
required
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.
To move a flow from one suite to another, use Add Flow to Suite on the target suite and Remove Flow from Suite on the source suite. Run history is preserved.
PATCH /api/v1/flows/{flow_id} — Returns 200 OK. 400 if no recognized fields are provided. 404 if the flow does not exist.
string
required
UUID of the flow.
string
New name (1-255 characters).
string
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.
string
required
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.
string
required
UUID of the suite.
string
required
UUID of the flow to attach.

Response Fields

string
UUID of the suite the flow was attached to.
string
UUID of the flow that was attached.
integer
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.
string
required
UUID of the suite.
string
required
UUID of the flow to detach.

Example Workflow

Here’s a typical workflow for creating a test suite with multiple test cases:
1

Create a Suite

First, create a suite to organize your test cases. If your app requires login, include auth_instructions — these run automatically before each flow:
Save the returned id for the next step.
2

Create Flows

Create test flows and attach them to the suite:
3

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.