For AI agents and LLMs: a machine-readable index is available at llms.txt. A plain-Markdown version of any documentation page is available by appending .md to its URL.
Skip to main content
Performance TestingStart Performance Test
TestMu AI
StatusCommunityBlog
Performance Testing

Start Performance Test

Kick off a paced load test. Hitting this endpoint — not a flag on /api/initiatecall — is what tells the backend to treat the resulting calls as load-test traffic. The response returns immediately with a `perf_test_run_id`; the actual dialing happens in a background task.

POST
/api/performance-tests/start
Start Performance Test
curl --request POST \
--url "https://agent-testing.lambdatest.com/api/performance-tests/start" \
--header "Authorization: Basic <encoded-value>" \
--header "Content-Type: application/json" \
--data '{
"project_id": "<project_id>",
"source_suite_id": "<source_suite_id>",
"concurrent_calls": 0,
"scenario_ids": [],
"scenarios": [],
"suite_name": "<suite_name>",
"profile": "<profile>",
"max_concurrency": 0,
"ramp_step_size": 0,
"ramp_step_interval_seconds": 0,
"sustained_duration_minutes": 0,
"cooldown_between_calls_ms": 0
}'
{
"perf_test_run_id": "<string>",
"suite_id": "<string>",
"status": "running",
"profile": "ramp_up",
"max_concurrency": 123,
"message": "<string>"
}

Authorizations

Authorizationstringheaderrequired

Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.

Body

application/json
project_idstringrequired

Project ID to run the perf test against

source_suite_idstring

ID of the suite the test was launched from. When set, the orchestrator reads scenarios + matrix from this suite and ignores `scenario_ids / scenarios / iterations`.

concurrent_callsinteger

Total number of dials to place when `source_suite_id` is set. Distributed round-robin across the suite's combos at a fixed 5 calls-per-second pacing rate.

scenario_idsarray

Scenario IDs to expand and dial. Required when `source_suite_id` is not set.

scenariosarray

Per-scenario overrides (voice / phone number / matrix axes). Same shape used by /api/initiatecall — keeps matrix expansion behavior identical between live and load-test runs.

suite_namestring

Optional suite name for the auto-created perf suite. Defaults to `perf-test-{profile}-{run_id_prefix}` if unset.

profilestring

Pacing pattern: ramp_up | sustained | spike

max_concurrencyinteger

Peak concurrent calls the orchestrator is allowed to drive. The org's `max_inbound_parallel_calls` is temporarily raised to at least this value for the run, then restored.

ramp_step_sizeinteger

Calls added per ramp step (ramp_up profile only).

ramp_step_interval_secondsinteger

Seconds to wait between ramp steps before adding more load. Set to 0 when pacing is driven entirely by `cooldown_between_calls_ms` (e.g. when scheduling a fixed calls-per-second rate).

sustained_duration_minutesinteger

How long to hold max_concurrency once reached (sustained / spike).

cooldown_between_calls_msinteger

Milliseconds to stagger individual dials within a single step so provider create-call requests don't arrive simultaneously.

Response

application/json

Successful Response

perf_test_run_idstringrequired
suite_idstring
statusobject
profilestringrequired

Pacing pattern the orchestrator applies to the call list.

max_concurrencyintegerrequired
messagestringrequired
Start Performance Test
curl --request POST \
--url "https://agent-testing.lambdatest.com/api/performance-tests/start" \
--header "Authorization: Basic <encoded-value>" \
--header "Content-Type: application/json" \
--data '{
"project_id": "<project_id>",
"source_suite_id": "<source_suite_id>",
"concurrent_calls": 0,
"scenario_ids": [],
"scenarios": [],
"suite_name": "<suite_name>",
"profile": "<profile>",
"max_concurrency": 0,
"ramp_step_size": 0,
"ramp_step_interval_seconds": 0,
"sustained_duration_minutes": 0,
"cooldown_between_calls_ms": 0
}'
{
"perf_test_run_id": "<string>",
"suite_id": "<string>",
"status": "running",
"profile": "ramp_up",
"max_concurrency": 123,
"message": "<string>"
}