Triggers – Plans

Trigger a plan run

Starts a new run for the specified test plan. The plan must have API access enabled in its settings.

Cases run in parallel or one at a time according to the plan's Execution setting; the optional executionMode body field overrides that setting for this run only, and the response echoes the effective mode.

The optional variables body field supplies per-run values for {{NAME}} placeholders, overriding the plan's stored variables for this run only.

The optional tags body field labels the run and every session it creates, so the results can be found again by tag.

Returns a planRunId — poll GET /api/triggers/plans/{planId}/runs/{planRunId} to track overall progress.

post/api/triggers/plans/{planId}/run

Request

Path parameters

planIdstring uuid required

UUID of the test plan to run.

Request body

model'default' | 'haiku' | 'sonnet' | 'kimi' | 'gpt-5.4' | 'gpt-5.4-mini' | 'gpt-5.5' | 'auto'

Model to use for all cases in this plan run. Call GET /api/models for the values your organization can run — anything else is rejected with 400, and the error carries the usable list in availableModels. When omitted, the defaultModel from that endpoint applies.

executionMode'parallel' | 'sequential'

Override the plan's stored Execution setting for this run only. parallel runs cases concurrently up to the organization's concurrency limit; sequential runs one case at a time in plan order. When omitted, the plan's setting applies (plans default to parallel). The plan's stop-on-failure option takes effect only when the effective mode is sequential.

tagsstring[]

Caller-supplied labels, for example the commit and pull request a run was testing. At most 10, each 1-64 characters after trimming; duplicates are collapsed. A request exceeding a bound is refused with 400, never truncated. Tags are returned exactly as stored and are visible to everyone in your organization, so never put secrets in them.

Example request

{
  "tags": [
    "git:sha:3f2c1e9a7b6d5c4e3f2a1b0c9d8e7f6a5b4c3d2e",
    "genesis:pr:1234"
  ]
}

Response

Plan run triggered.

successboolean required
planRunIdstring uuid required
totalCasesinteger required

Number of test cases in this plan run.

executionMode'parallel' | 'sequential' required

The effective mode this run executes with (the request override if given, otherwise the plan's stored setting).

tagsstring[] required

Caller-supplied labels, for example the commit and pull request a run was testing. At most 10, each 1-64 characters after trimming; duplicates are collapsed. A request exceeding a bound is refused with 400, never truncated. Tags are returned exactly as stored and are visible to everyone in your organization, so never put secrets in them.

Example response

{
  "success": true,
  "tags": [
    "git:sha:3f2c1e9a7b6d5c4e3f2a1b0c9d8e7f6a5b4c3d2e",
    "genesis:pr:1234"
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.