curl --request POST \
--url https://api.noqa.ai/v1/runs/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"app_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"build_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cases": {
"tags": [
"smoke",
"regression"
],
"ids": [
"550e8400-e29b-41d4-a716-446655440000"
]
},
"device": {
"model": "<string>",
"os_version": "<string>",
"locale": "en_US"
}
}
'import requests
url = "https://api.noqa.ai/v1/runs/"
payload = {
"app_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"build_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cases": {
"tags": ["smoke", "regression"],
"ids": ["550e8400-e29b-41d4-a716-446655440000"]
},
"device": {
"model": "<string>",
"os_version": "<string>",
"locale": "en_US"
}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
app_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
build_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
cases: {tags: ['smoke', 'regression'], ids: ['550e8400-e29b-41d4-a716-446655440000']},
device: {model: '<string>', os_version: '<string>', locale: 'en_US'}
})
};
fetch('https://api.noqa.ai/v1/runs/', 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.noqa.ai/v1/runs/",
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([
'app_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'build_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'cases' => [
'tags' => [
'smoke',
'regression'
],
'ids' => [
'550e8400-e29b-41d4-a716-446655440000'
]
],
'device' => [
'model' => '<string>',
'os_version' => '<string>',
'locale' => 'en_US'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.noqa.ai/v1/runs/"
payload := strings.NewReader("{\n \"app_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"<string>\",\n \"os_version\": \"<string>\",\n \"locale\": \"en_US\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.noqa.ai/v1/runs/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"app_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"<string>\",\n \"os_version\": \"<string>\",\n \"locale\": \"en_US\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.noqa.ai/v1/runs/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"app_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"<string>\",\n \"os_version\": \"<string>\",\n \"locale\": \"en_US\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"test_count": 123,
"statuses": {},
"build": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": "<string>",
"name": "<string>"
},
"device": {
"model": "<string>",
"os_version": "<string>",
"locale": "en_US"
},
"tests": [
{
"case_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"case_name": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Create Run
Create and start a new test run (Public API with API Key authentication)
curl --request POST \
--url https://api.noqa.ai/v1/runs/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"app_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"build_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cases": {
"tags": [
"smoke",
"regression"
],
"ids": [
"550e8400-e29b-41d4-a716-446655440000"
]
},
"device": {
"model": "<string>",
"os_version": "<string>",
"locale": "en_US"
}
}
'import requests
url = "https://api.noqa.ai/v1/runs/"
payload = {
"app_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"build_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"cases": {
"tags": ["smoke", "regression"],
"ids": ["550e8400-e29b-41d4-a716-446655440000"]
},
"device": {
"model": "<string>",
"os_version": "<string>",
"locale": "en_US"
}
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
app_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
build_id: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
cases: {tags: ['smoke', 'regression'], ids: ['550e8400-e29b-41d4-a716-446655440000']},
device: {model: '<string>', os_version: '<string>', locale: 'en_US'}
})
};
fetch('https://api.noqa.ai/v1/runs/', 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.noqa.ai/v1/runs/",
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([
'app_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'build_id' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'cases' => [
'tags' => [
'smoke',
'regression'
],
'ids' => [
'550e8400-e29b-41d4-a716-446655440000'
]
],
'device' => [
'model' => '<string>',
'os_version' => '<string>',
'locale' => 'en_US'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.noqa.ai/v1/runs/"
payload := strings.NewReader("{\n \"app_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"<string>\",\n \"os_version\": \"<string>\",\n \"locale\": \"en_US\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.noqa.ai/v1/runs/")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"app_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"<string>\",\n \"os_version\": \"<string>\",\n \"locale\": \"en_US\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.noqa.ai/v1/runs/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"app_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"build_id\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"<string>\",\n \"os_version\": \"<string>\",\n \"locale\": \"en_US\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"created_at": "2023-11-07T05:31:56Z",
"test_count": 123,
"statuses": {},
"build": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": "<string>",
"name": "<string>"
},
"device": {
"model": "<string>",
"os_version": "<string>",
"locale": "en_US"
},
"tests": [
{
"case_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"case_name": "<string>"
}
]
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
API Key for authentication. Get your API key from NOQA dashboard.
Headers
API Key for authentication
Body
Request model for creating test run via Public API
Application ID
"550e8400-e29b-41d4-a716-446655440000"
ID of the build to test
"550e8400-e29b-41d4-a716-446655440000"
Test cases selection (by tags or IDs)
Show child attributes
Show child attributes
Target device configuration
Show child attributes
Show child attributes
Response
Successful Response
Response model for test run detail in Public API
Unique identifier of the test run
"550e8400-e29b-41d4-a716-446655440000"
Timestamp when the run was created
Overall run status
queued, running, passed, failed, cancelled "running"
"completed"
"cancelled"
Total number of tests in the run
10
Count of tests by status
Show child attributes
Show child attributes
{ "failed": 2, "passed": 3, "queued": 5 }
Build information
Show child attributes
Show child attributes
Device configuration used for the run
Show child attributes
Show child attributes
List of tests in the run
Show child attributes
Show child attributes
