curl --request POST \
--url https://api.qa.tech/v1/run/{shortId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"failedOnly": true,
"projectTestCaseIds": [
"<string>"
],
"skipAgentCache": true,
"projectShortId": "<string>"
}
'import requests
url = "https://api.qa.tech/v1/run/{shortId}"
payload = {
"failedOnly": True,
"projectTestCaseIds": ["<string>"],
"skipAgentCache": True,
"projectShortId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
failedOnly: true,
projectTestCaseIds: ['<string>'],
skipAgentCache: true,
projectShortId: '<string>'
})
};
fetch('https://api.qa.tech/v1/run/{shortId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.qa.tech/v1/run/{shortId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'failedOnly' => true,
'projectTestCaseIds' => [
'<string>'
],
'skipAgentCache' => true,
'projectShortId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.qa.tech/v1/run/{shortId}"
payload := strings.NewReader("{\n \"failedOnly\": true,\n \"projectTestCaseIds\": [\n \"<string>\"\n ],\n \"skipAgentCache\": true,\n \"projectShortId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.qa.tech/v1/run/{shortId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"failedOnly\": true,\n \"projectTestCaseIds\": [\n \"<string>\"\n ],\n \"skipAgentCache\": true,\n \"projectShortId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qa.tech/v1/run/{shortId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"failedOnly\": true,\n \"projectTestCaseIds\": [\n \"<string>\"\n ],\n \"skipAgentCache\": true,\n \"projectShortId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"run": {
"id": "<string>",
"shortId": "<string>",
"url": "<string>",
"testCount": 123
}
}Rerun run
Reruns a previous run. Pass failedOnly: true to rerun only failed/skipped/errored cases, or projectTestCaseIds to rerun a specific subset.
curl --request POST \
--url https://api.qa.tech/v1/run/{shortId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"failedOnly": true,
"projectTestCaseIds": [
"<string>"
],
"skipAgentCache": true,
"projectShortId": "<string>"
}
'import requests
url = "https://api.qa.tech/v1/run/{shortId}"
payload = {
"failedOnly": True,
"projectTestCaseIds": ["<string>"],
"skipAgentCache": True,
"projectShortId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
failedOnly: true,
projectTestCaseIds: ['<string>'],
skipAgentCache: true,
projectShortId: '<string>'
})
};
fetch('https://api.qa.tech/v1/run/{shortId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.qa.tech/v1/run/{shortId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'failedOnly' => true,
'projectTestCaseIds' => [
'<string>'
],
'skipAgentCache' => true,
'projectShortId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.qa.tech/v1/run/{shortId}"
payload := strings.NewReader("{\n \"failedOnly\": true,\n \"projectTestCaseIds\": [\n \"<string>\"\n ],\n \"skipAgentCache\": true,\n \"projectShortId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.qa.tech/v1/run/{shortId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"failedOnly\": true,\n \"projectTestCaseIds\": [\n \"<string>\"\n ],\n \"skipAgentCache\": true,\n \"projectShortId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qa.tech/v1/run/{shortId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"failedOnly\": true,\n \"projectTestCaseIds\": [\n \"<string>\"\n ],\n \"skipAgentCache\": true,\n \"projectShortId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"run": {
"id": "<string>",
"shortId": "<string>",
"url": "<string>",
"testCount": 123
}
}Path Parameters
Body
Request body to rerun a prior run. Provide either failedOnly or projectTestCaseIds, not both (sending both returns 400). Send an empty object to rerun everything.
Rerun only failed/skipped/errored test cases from the original run.
Rerun only these test cases, by project test case ID (UUID).
Set to true to run every test in this run without the agent cache, so the agent works out each step fresh instead of reusing cached outputs. Applies to this run only. Omitted or false keeps each test's own Agent Cache setting.
Target a specific project by its prefixed short ID (proj-slug_shortId or proj_shortId), as returned by the projects API. Required for organization-scoped API keys; project-scoped keys may only pass their own project's short ID.
^proj(-.+_.+|_.+)$Was this page helpful?