Skip to main content

run_feature

Dispatch a test run for a feature. Returns the runId immediately; the sandbox executes in the background (duration depends on its tests, queue, and target).

warning

The feature must have linked JavaScript test files under Features/ and must not be generating. Missing tests or an active generation return 409 conflict. generated is the normal ready state, but the dispatch validates stored files rather than only the status string.

Request​

POST /api/v1/ops/projects/{project}/features/{feature}/run
ParameterInTypeRequiredDescription
projectpathstringyesThe project's public id.
featurepathstringyesFeature id or name.
configbodystringnoPlaywright configuration name (default Default — see list_configs).
siteUrlbodystringnoTest site URL override.
curl -X POST -H "Authorization: Bearer $TESTVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"config": "Mobile"}' \
"$TESTVIBE_SERVER/api/v1/ops/projects/$PROJECT/features/12/run"

Response​

202 Accepted

{ "runId": 214, "featureId": 12 }

Poll get_run (or use wait_for_run) until the run is terminal — queued, allocating and running are all still in flight. testvibe run … --wait does it for you and exits 0 passed / 1 failed / 3 no verdict (see the CLI wait contract).

Errors​

HTTPWhen
404 not_foundNo such feature in this project.
409 conflictNo linked tests, active generation, missing target/input values, or another dispatch gate rejected the run.

Pass notify: true (MCP/REST) or --notify (CLI) to opt into completion notifications; API-originated dispatches are silent by default. Storage admission can return 507 storage_quota_exceeded; other dispatch refusals follow the shared error contract.