curl --request POST \
--url https://api.noqa.ai/v1/runs/ \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"app_id": "550e8400-e29b-41d4-a716-446655440000",
"build_id": "550e8400-e29b-41d4-a716-446655440000",
"cases": {
"tags": [
"smoke",
"regression"
],
"ids": [
"550e8400-e29b-41d4-a716-446655440000"
]
},
"device": {
"model": "iPhone 15 Pro",
"os_version": "17.6.1",
"platform": "ios",
"locale": "en_US"
}
}
'import requests
url = "https://api.noqa.ai/v1/runs/"
payload = {
"app_id": "550e8400-e29b-41d4-a716-446655440000",
"build_id": "550e8400-e29b-41d4-a716-446655440000",
"cases": {
"tags": ["smoke", "regression"],
"ids": ["550e8400-e29b-41d4-a716-446655440000"]
},
"device": {
"model": "iPhone 15 Pro",
"os_version": "17.6.1",
"platform": "ios",
"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: '550e8400-e29b-41d4-a716-446655440000',
build_id: '550e8400-e29b-41d4-a716-446655440000',
cases: {tags: ['smoke', 'regression'], ids: ['550e8400-e29b-41d4-a716-446655440000']},
device: {model: 'iPhone 15 Pro', os_version: '17.6.1', platform: 'ios', 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' => '550e8400-e29b-41d4-a716-446655440000',
'build_id' => '550e8400-e29b-41d4-a716-446655440000',
'cases' => [
'tags' => [
'smoke',
'regression'
],
'ids' => [
'550e8400-e29b-41d4-a716-446655440000'
]
],
'device' => [
'model' => 'iPhone 15 Pro',
'os_version' => '17.6.1',
'platform' => 'ios',
'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\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"build_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"iPhone 15 Pro\",\n \"os_version\": \"17.6.1\",\n \"platform\": \"ios\",\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\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"build_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"iPhone 15 Pro\",\n \"os_version\": \"17.6.1\",\n \"platform\": \"ios\",\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\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"build_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"iPhone 15 Pro\",\n \"os_version\": \"17.6.1\",\n \"platform\": \"ios\",\n \"locale\": \"en_US\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": "2023-11-07T05:31:56Z",
"status": "running",
"test_count": 10,
"statuses": {
"failed": 2,
"passed": 3,
"queued": 5
},
"build": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": "<string>",
"name": "<string>"
},
"device": {
"model": "<string>",
"os_version": "<string>",
"platform": "ios",
"locale": "en_US"
},
"tests": [
{
"case_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"case_name": "<string>",
"status": "queued"
}
]
}{
"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": "550e8400-e29b-41d4-a716-446655440000",
"build_id": "550e8400-e29b-41d4-a716-446655440000",
"cases": {
"tags": [
"smoke",
"regression"
],
"ids": [
"550e8400-e29b-41d4-a716-446655440000"
]
},
"device": {
"model": "iPhone 15 Pro",
"os_version": "17.6.1",
"platform": "ios",
"locale": "en_US"
}
}
'import requests
url = "https://api.noqa.ai/v1/runs/"
payload = {
"app_id": "550e8400-e29b-41d4-a716-446655440000",
"build_id": "550e8400-e29b-41d4-a716-446655440000",
"cases": {
"tags": ["smoke", "regression"],
"ids": ["550e8400-e29b-41d4-a716-446655440000"]
},
"device": {
"model": "iPhone 15 Pro",
"os_version": "17.6.1",
"platform": "ios",
"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: '550e8400-e29b-41d4-a716-446655440000',
build_id: '550e8400-e29b-41d4-a716-446655440000',
cases: {tags: ['smoke', 'regression'], ids: ['550e8400-e29b-41d4-a716-446655440000']},
device: {model: 'iPhone 15 Pro', os_version: '17.6.1', platform: 'ios', 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' => '550e8400-e29b-41d4-a716-446655440000',
'build_id' => '550e8400-e29b-41d4-a716-446655440000',
'cases' => [
'tags' => [
'smoke',
'regression'
],
'ids' => [
'550e8400-e29b-41d4-a716-446655440000'
]
],
'device' => [
'model' => 'iPhone 15 Pro',
'os_version' => '17.6.1',
'platform' => 'ios',
'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\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"build_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"iPhone 15 Pro\",\n \"os_version\": \"17.6.1\",\n \"platform\": \"ios\",\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\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"build_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"iPhone 15 Pro\",\n \"os_version\": \"17.6.1\",\n \"platform\": \"ios\",\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\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"build_id\": \"550e8400-e29b-41d4-a716-446655440000\",\n \"cases\": {\n \"tags\": [\n \"smoke\",\n \"regression\"\n ],\n \"ids\": [\n \"550e8400-e29b-41d4-a716-446655440000\"\n ]\n },\n \"device\": {\n \"model\": \"iPhone 15 Pro\",\n \"os_version\": \"17.6.1\",\n \"platform\": \"ios\",\n \"locale\": \"en_US\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "550e8400-e29b-41d4-a716-446655440000",
"created_at": "2023-11-07T05:31:56Z",
"status": "running",
"test_count": 10,
"statuses": {
"failed": 2,
"passed": 3,
"queued": 5
},
"build": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": "<string>",
"name": "<string>"
},
"device": {
"model": "<string>",
"os_version": "<string>",
"platform": "ios",
"locale": "en_US"
},
"tests": [
{
"case_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"case_name": "<string>",
"status": "queued"
}
]
}{
"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
