Tests
Health Checks
Manage and run HTTP health checks against monitored routes.
POST
/
test
/
health
Health Checks
curl --request POST \
--url https://api.example.com/test/health \
--header 'Content-Type: application/json' \
--data '
{
"action": "<string>",
"data": {
"url": "<string>",
"name": "<string>",
"routeId": "<string>",
"when": "<string>",
"time": "<string>"
}
}
'import requests
url = "https://api.example.com/test/health"
payload = {
"action": "<string>",
"data": {
"url": "<string>",
"name": "<string>",
"routeId": "<string>",
"when": "<string>",
"time": "<string>"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
action: '<string>',
data: {
url: '<string>',
name: '<string>',
routeId: '<string>',
when: '<string>',
time: '<string>'
}
})
};
fetch('https://api.example.com/test/health', 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.example.com/test/health",
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([
'action' => '<string>',
'data' => [
'url' => '<string>',
'name' => '<string>',
'routeId' => '<string>',
'when' => '<string>',
'time' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"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.example.com/test/health"
payload := strings.NewReader("{\n \"action\": \"<string>\",\n \"data\": {\n \"url\": \"<string>\",\n \"name\": \"<string>\",\n \"routeId\": \"<string>\",\n \"when\": \"<string>\",\n \"time\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/test/health")
.header("Content-Type", "application/json")
.body("{\n \"action\": \"<string>\",\n \"data\": {\n \"url\": \"<string>\",\n \"name\": \"<string>\",\n \"routeId\": \"<string>\",\n \"when\": \"<string>\",\n \"time\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/test/health")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"action\": \"<string>\",\n \"data\": {\n \"url\": \"<string>\",\n \"name\": \"<string>\",\n \"routeId\": \"<string>\",\n \"when\": \"<string>\",\n \"time\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"routes": [
{}
],
"route": {},
"result": {},
"scheduledId": "<string>"
}Manage and run HTTP health checks. Dispatch the desired operation with the
action field in the request body.
Actions
| Action | Description |
|---|---|
list | List all monitored health routes and their latest result. |
add | Register a new URL to monitor. |
delete | Remove a monitored route. |
run | Execute a health check immediately. |
schedule | Schedule a health check to run once, on an interval, or now. |
Request body
string
required
One of
list, add, delete, run, or schedule.object
Payload for the selected action. Required for every action except
list.Show data fields
Show data fields
string
Fully qualified URL to monitor. Required for
add.string
Human-readable name (1–80 characters). Required for
add.string
Identifier of the monitored route. Required for
delete, run, and schedule.string
Schedule mode:
at, every, or now. Required for schedule.string
Time expression paired with
when. Required for schedule.Response
The response shape varies by action.boolean
required
Always
true on success. Errors return false with an error string.array
Returned by
list. Each route includes id, url, name, createdAt, and its latest HealthResult (or null).object
Returned by
add. The newly created route (id, url, name, createdAt).object
Returned by
run. A HealthResult with status (up, slow, down, error), statusCode, responseMs, and checkedAt.string
Returned by
schedule. Identifier of the scheduled job.Every successful response includes the
X-Credits-Remaining header with your remaining credit balance.⌘I
Health Checks
curl --request POST \
--url https://api.example.com/test/health \
--header 'Content-Type: application/json' \
--data '
{
"action": "<string>",
"data": {
"url": "<string>",
"name": "<string>",
"routeId": "<string>",
"when": "<string>",
"time": "<string>"
}
}
'import requests
url = "https://api.example.com/test/health"
payload = {
"action": "<string>",
"data": {
"url": "<string>",
"name": "<string>",
"routeId": "<string>",
"when": "<string>",
"time": "<string>"
}
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
action: '<string>',
data: {
url: '<string>',
name: '<string>',
routeId: '<string>',
when: '<string>',
time: '<string>'
}
})
};
fetch('https://api.example.com/test/health', 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.example.com/test/health",
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([
'action' => '<string>',
'data' => [
'url' => '<string>',
'name' => '<string>',
'routeId' => '<string>',
'when' => '<string>',
'time' => '<string>'
]
]),
CURLOPT_HTTPHEADER => [
"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.example.com/test/health"
payload := strings.NewReader("{\n \"action\": \"<string>\",\n \"data\": {\n \"url\": \"<string>\",\n \"name\": \"<string>\",\n \"routeId\": \"<string>\",\n \"when\": \"<string>\",\n \"time\": \"<string>\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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.example.com/test/health")
.header("Content-Type", "application/json")
.body("{\n \"action\": \"<string>\",\n \"data\": {\n \"url\": \"<string>\",\n \"name\": \"<string>\",\n \"routeId\": \"<string>\",\n \"when\": \"<string>\",\n \"time\": \"<string>\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/test/health")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"action\": \"<string>\",\n \"data\": {\n \"url\": \"<string>\",\n \"name\": \"<string>\",\n \"routeId\": \"<string>\",\n \"when\": \"<string>\",\n \"time\": \"<string>\"\n }\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"routes": [
{}
],
"route": {},
"result": {},
"scheduledId": "<string>"
}