curl --request GET \
--url https://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs \
--header 'Authorization: Bearer <token>' \
--header 'X-Organization-Id: <x-organization-id>'import requests
url = "https://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs"
headers = {
"X-Organization-Id": "<x-organization-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Organization-Id': '<x-organization-id>', Authorization: 'Bearer <token>'}
};
fetch('https://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs', 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.getmonitor.io/api/v1/uptime/{id}/uptime-logs",
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>",
"X-Organization-Id: <x-organization-id>"
],
]);
$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://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Organization-Id", "<x-organization-id>")
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://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs")
.header("X-Organization-Id", "<x-organization-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Organization-Id"] = '<x-organization-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "19717c81f5db7604b1d9e8b206ee874f",
"monitorId": "jjclazhxotdut5z1f8u3e1c4",
"status": "UP",
"responseTime": 357,
"statusCode": 200,
"error": null,
"checkedAt": "2026-09-27T01:00:44.804Z",
"region": "us-east-1"
},
{
"id": "2c81e8bec56b528fe1d16b26c07e564f",
"monitorId": "jjclazhxotdut5z1f8u3e1c4",
"status": "UP",
"responseTime": 239,
"statusCode": 200,
"error": null,
"checkedAt": "2026-09-27T00:59:38.583Z",
"region": "us-east-1"
}
],
"nextCursor": "e6a559aecff1e32cebe14364a3071cfa"
}{
"message": [
"name must be longer than or equal to 1 characters",
"regions must be an array"
],
"error": "Bad Request",
"statusCode": 400
}{
"message": "Unauthorized",
"statusCode": 401
}{
"message": "No access to this organization",
"error": "Forbidden",
"statusCode": 403
}{
"message": "Monitor not found",
"error": "Not Found",
"statusCode": 404
}List check results
Individual check results, newest first, paginated by cursor. nextCursor is null on the last page.
Authentication: API key with the monitors:read scope, or a user session. Role: viewer, member, admin or owner.
curl --request GET \
--url https://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs \
--header 'Authorization: Bearer <token>' \
--header 'X-Organization-Id: <x-organization-id>'import requests
url = "https://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs"
headers = {
"X-Organization-Id": "<x-organization-id>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'X-Organization-Id': '<x-organization-id>', Authorization: 'Bearer <token>'}
};
fetch('https://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs', 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.getmonitor.io/api/v1/uptime/{id}/uptime-logs",
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>",
"X-Organization-Id: <x-organization-id>"
],
]);
$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://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-Organization-Id", "<x-organization-id>")
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://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs")
.header("X-Organization-Id", "<x-organization-id>")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getmonitor.io/api/v1/uptime/{id}/uptime-logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-Organization-Id"] = '<x-organization-id>'
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"items": [
{
"id": "19717c81f5db7604b1d9e8b206ee874f",
"monitorId": "jjclazhxotdut5z1f8u3e1c4",
"status": "UP",
"responseTime": 357,
"statusCode": 200,
"error": null,
"checkedAt": "2026-09-27T01:00:44.804Z",
"region": "us-east-1"
},
{
"id": "2c81e8bec56b528fe1d16b26c07e564f",
"monitorId": "jjclazhxotdut5z1f8u3e1c4",
"status": "UP",
"responseTime": 239,
"statusCode": 200,
"error": null,
"checkedAt": "2026-09-27T00:59:38.583Z",
"region": "us-east-1"
}
],
"nextCursor": "e6a559aecff1e32cebe14364a3071cfa"
}{
"message": [
"name must be longer than or equal to 1 characters",
"regions must be an array"
],
"error": "Bad Request",
"statusCode": 400
}{
"message": "Unauthorized",
"statusCode": 401
}{
"message": "No access to this organization",
"error": "Forbidden",
"statusCode": 403
}{
"message": "Monitor not found",
"error": "Not Found",
"statusCode": 404
}Authorizations
API key sent as Authorization: Bearer <key>. Personal keys (gm_pat_) act as you, limited by your role and the key's scopes; organization keys (gm_api_) act for one organization. Send X-Organization-Id with every org-scoped request.
Headers
ID of the organization to act in. Required with API keys. A user session may omit it and acts in its active organization.
"k2p9x7w4m1n8b3v6c5z0q2r7"
Path Parameters
Uptime monitor ID.
Query Parameters
Value of nextCursor from the previous page.
Page size. Default 50, maximum 100.
1 <= x <= 100Filter by result. Repeat to pass several.
UP, DOWN, UNKNOWN Filter by region. Repeat to pass several.
ISO 8601 start of the range.
ISO 8601 end of the range.