curl --request GET \
--url https://tester.army/api/v1/projects/{projectId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://tester.army/api/v1/projects/{projectId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://tester.army/api/v1/projects/{projectId}', 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://tester.army/api/v1/projects/{projectId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://tester.army/api/v1/projects/{projectId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://tester.army/api/v1/projects/{projectId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://tester.army/api/v1/projects/{projectId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"shortId": "<string>",
"name": "<string>",
"url": "<string>",
"projectType": "web",
"description": "<string>",
"environments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"slug": "<string>",
"kind": "production",
"url": "<string>"
}
],
"browserRegion": "eu",
"prTestingEnabled": true,
"prTestingInstructions": "<string>",
"prTestingDebounceMinutes": 30,
"prTestingBlockMerge": true,
"includeExampleMobileApp": true,
"autoDeleteOldestMobileApp": true,
"accessibilityAuditEnabled": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Get a single project by ID or shortId.
curl --request GET \
--url https://tester.army/api/v1/projects/{projectId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://tester.army/api/v1/projects/{projectId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://tester.army/api/v1/projects/{projectId}', 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://tester.army/api/v1/projects/{projectId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://tester.army/api/v1/projects/{projectId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://tester.army/api/v1/projects/{projectId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://tester.army/api/v1/projects/{projectId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"shortId": "<string>",
"name": "<string>",
"url": "<string>",
"projectType": "web",
"description": "<string>",
"environments": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"slug": "<string>",
"kind": "production",
"url": "<string>"
}
],
"browserRegion": "eu",
"prTestingEnabled": true,
"prTestingInstructions": "<string>",
"prTestingDebounceMinutes": 30,
"prTestingBlockMerge": true,
"includeExampleMobileApp": true,
"autoDeleteOldestMobileApp": true,
"accessibilityAuditEnabled": true,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>",
"message": "<string>"
}Authorizations
API key authentication using Bearer token format
Path Parameters
Project ID or shortId
Response
Project details
web, mobile Show child attributes
Show child attributes
Default proxy exit region for web runs. null keeps the provider's default networking. Web projects only.
eu, us, null Test PR deployments automatically.
Free-form instructions for the PR exploration agent.
2000Quiet period before a PR deployment is tested. 0 disables debouncing.
0 <= x <= 60Conclude the GitHub check run as failed when tests fail, so a required TesterArmy check blocks the merge. Off by default.
Offer the example app as a run target. Mobile projects only.
Delete the oldest unused app builds when an upload exceeds the storage quota. Mobile projects only.
Scan visited pages with axe-core during web runs and report critical accessibility violations as non-blocking warnings. On by default. Web projects only.