run_load_test
Dispatch a load run for a load test. Returns the runId immediately; the load pool executes in the background. Depending on the load test's configuration it runs as concurrent browser users replaying your feature journeys (simple mode) or protocol-level k6 traffic (advanced mode).
The load test must be runnable (status generated) and the run is subject to the account's plan load caps and credits — both are enforced server-side and a rejected dispatch comes back as 409 conflict with a human-readable reason.
Request
POST /api/v1/ops/projects/{project}/load/{loadTest}/run
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
project | path | string | yes | The project's public id. |
loadTest | path | string | yes | Load test id or name (see list_load_tests). |
siteUrl | body | string | no | Target URL override. Defaults to the load test's configured target, then the project base URL. |
- cURL
- CLI
- MCP
curl -X POST -H "Authorization: Bearer $TESTVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"siteUrl": "https://staging.example.com"}' \
"$TESTVIBE_SERVER/api/v1/ops/projects/$PROJECT/load/31/run"
testvibe load run "Checkout under load" --wait
Tool run_load_test — { "loadTest": "Checkout under load" }. Follow with wait_for_run.
Response
202 Accepted
{ "runId": 215, "featureId": 31 }
The load run shares the run spine — poll get_run (or use wait_for_run) until status leaves running, and watch live latency / RPS / VU charts in the app's Load section.
Errors
| HTTP | When |
|---|---|
404 not_found | No such load test in this project. |
409 conflict | Not a load test, no generated load script yet, no target URL, or the plan/credit gate rejected the run. |