API: Runs
Runs: Run a test, Run a project, List runs, Get a run, Stop a run, Download a run file.
Run a test
Start a run of one test. Runs take minutes: poll get_run until final is true. App tests run the newest build of their app unless buildId names another (see list_builds). REST: send an Idempotency-Key header so a retried request does not start a second run.
| Path |
|---|
testIdstringrequired |
| Body (JSON) |
|---|
modeauto | cold | warm |
buildIdstring |
Returns 201 { runId, mode, overage, link }
curl -X POST https://app.testsy.dev/api/v1/tests/t_mvg0/run \
-H "Authorization: Bearer $QA_AI_API_KEY" \
-H "Idempotency-Key: deploy-4812"Run a project
Start a run of every test in a project (a suite). buildIds: builds to use; each app test runs the one of its own app. Tests that could not start are listed in skipped with the reason. REST: send an Idempotency-Key header to make a retry safe.
| Path |
|---|
projectIdstringrequired |
| Body (JSON) |
|---|
modeauto | cold | warm |
buildIdsstring[] |
buildIdstring |
Returns 201 { started: [{ testId, runId, mode, buildId, link }], skipped: [{ testId, reason }] }. Nothing started: 402 not_started (or 400 empty) with the same lists
curl -X POST https://app.testsy.dev/api/v1/projects/p_8f2k/run \
-H "Authorization: Bearer $QA_AI_API_KEY" \
-H "Idempotency-Key: deploy-4812"List runs
Recent runs, newest first, optionally for one test or project or with one status; or the runs with the given ids.
| Query |
|---|
idsstring |
testIdstring |
projectIdstring |
statusqueued | running | passed | failed | blocked | inconclusive | error | cancelled |
limitnumber |
Returns { runs: [{ id, testId, testTitle, status, mode, source, platform, createdAt, finishedAt, durationMs, … }] }; with ids, each run as in Get a run
curl https://app.testsy.dev/api/v1/runs?ids=… \
-H "Authorization: Bearer $QA_AI_API_KEY"Get a run
A run: its status, and once final the verdict, the headline, each check's result with the reason, the values read, and links to the video, screenshots and the result page.
| Path |
|---|
runIdstringrequired |
Returns { run: { id, testId, testTitle, url, mode, status, final, createdAt, startedAt, finishedAt, durationMs, error, verdict, headline, requirements, captures, video, screenshots, build, link } }
curl https://app.testsy.dev/api/v1/runs/j_mvg1 \
-H "Authorization: Bearer $QA_AI_API_KEY"Stop a run
Stop a queued or running run. A run you stop is not counted.
| Path |
|---|
runIdstringrequired |
Returns { status }
curl -X POST https://app.testsy.dev/api/v1/runs/j_mvg1/stop \
-H "Authorization: Bearer $QA_AI_API_KEY"Download a run file
Download a run's video or screenshot (the links in get_run). Supports Range requests.
| Path |
|---|
runIdstringrequired |
filestringrequired |
Returns The file (video/mp4, image/png, …); 206 for a Range request
curl https://app.testsy.dev/api/v1/runs/j_mvg1/files/review.mp4 \
-H "Authorization: Bearer $QA_AI_API_KEY"