curl --request PATCH \
--url https://api.mobileboost.io/tests \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"testId": "<string>",
"commands": [
"<string>"
],
"title": "<string>",
"tags": [
"<string>"
],
"autoGenerate": true,
"folderId": "<string>"
}
'import requests
url = "https://api.mobileboost.io/tests"
payload = {
"testId": "<string>",
"commands": ["<string>"],
"title": "<string>",
"tags": ["<string>"],
"autoGenerate": True,
"folderId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
testId: '<string>',
commands: ['<string>'],
title: '<string>',
tags: ['<string>'],
autoGenerate: true,
folderId: '<string>'
})
};
fetch('https://api.mobileboost.io/tests', 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.mobileboost.io/tests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'testId' => '<string>',
'commands' => [
'<string>'
],
'title' => '<string>',
'tags' => [
'<string>'
],
'autoGenerate' => true,
'folderId' => '<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.mobileboost.io/tests"
payload := strings.NewReader("{\n \"testId\": \"<string>\",\n \"commands\": [\n \"<string>\"\n ],\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"autoGenerate\": true,\n \"folderId\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.mobileboost.io/tests")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"testId\": \"<string>\",\n \"commands\": [\n \"<string>\"\n ],\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"autoGenerate\": true,\n \"folderId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mobileboost.io/tests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"testId\": \"<string>\",\n \"commands\": [\n \"<string>\"\n ],\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"autoGenerate\": true,\n \"folderId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyUpdate test
Update an existing test. Send testId plus the fields you want to change; anything you omit is left as it is.
Only a change to commands re-triggers automation generation, because only that changes what the test should do. Renaming a test, re-tagging it or moving it to another folder leaves the generated automation alone, and the response says so with automation.requested: false.
curl --request PATCH \
--url https://api.mobileboost.io/tests \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"testId": "<string>",
"commands": [
"<string>"
],
"title": "<string>",
"tags": [
"<string>"
],
"autoGenerate": true,
"folderId": "<string>"
}
'import requests
url = "https://api.mobileboost.io/tests"
payload = {
"testId": "<string>",
"commands": ["<string>"],
"title": "<string>",
"tags": ["<string>"],
"autoGenerate": True,
"folderId": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
testId: '<string>',
commands: ['<string>'],
title: '<string>',
tags: ['<string>'],
autoGenerate: true,
folderId: '<string>'
})
};
fetch('https://api.mobileboost.io/tests', 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.mobileboost.io/tests",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'testId' => '<string>',
'commands' => [
'<string>'
],
'title' => '<string>',
'tags' => [
'<string>'
],
'autoGenerate' => true,
'folderId' => '<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.mobileboost.io/tests"
payload := strings.NewReader("{\n \"testId\": \"<string>\",\n \"commands\": [\n \"<string>\"\n ],\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"autoGenerate\": true,\n \"folderId\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.mobileboost.io/tests")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"testId\": \"<string>\",\n \"commands\": [\n \"<string>\"\n ],\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"autoGenerate\": true,\n \"folderId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mobileboost.io/tests")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"testId\": \"<string>\",\n \"commands\": [\n \"<string>\"\n ],\n \"title\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"autoGenerate\": true,\n \"folderId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyAuthorizations
Body
Send testId plus at least one field to change. An omitted field is left as it is.
Replace the test's tags. Send the full list you want the test to end up with: [] clears them, and omitting the field leaves them as they are. Re-tagging never re-triggers automation generation, so a CI job can regroup a suite as often as it likes. Tags are trimmed and de-duplicated before they are stored.
Response
Successful response

