Skip to content
Uptizm
Start free
Sign in

Language

Menu
View as Markdown

API reference

Dashboard

Team-wide aggregates: counts, active incidents, the worst monitors.

GET /dashboard/stats stats:read #

Get team statistics

Monitor counts by status, average response time, open incidents and the rolling 24 hour uptime with its change against the previous 24 hours.

Response 200 application/json

  • data object required
    • monitors_up integer required
    • monitors_down integer required
    • monitors_degraded integer required
    • monitors_maintenance integer required
    • monitors_paused integer, min 0 required
    • monitors_pending integer, min 0 required
    • monitors_total integer, min 0 required
    • avg_response_ms integer or null required
    • open_incidents integer, min 0 required
    • uptime_24h number or null required
    • uptime_24h_delta number or null required

Errors

  • 401 Unauthenticated
  • 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
  • 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.

Code samples

curl -X GET "https://api.uptizm.com/v1/dashboard/stats" \
  -H "Authorization: Bearer $UPTIZM_API_KEY" \
  -H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/dashboard/stats', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
    'Accept': 'application/json',
  },
});

const data = await response.json();
<?php

$curl = curl_init('https://api.uptizm.com/v1/dashboard/stats');

curl_setopt_array($curl, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
        'Accept: application/json',
    ],
]);

$response = curl_exec($curl);
import os

import requests

response = requests.get(
    "https://api.uptizm.com/v1/dashboard/stats",
    headers={
        "Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
        "Accept": "application/json",
    },
)

print(response.json())
GET /dashboard/active-incidents stats:read #

List active incidents

The team's unresolved incidents, newest first.

Response 200 application/json

  • data array of IncidentResource and object required
    • id string required
    • team_id string required
    • title string required
    • title_key string or null required

      The translation key of the incident title, sent beside title.

    • title_params array of any required
    • lifecycle string, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" required
    • severity string, one of "critical", "warn", "info" required
    • impact string, one of "none", "minor", "major", "critical" required
    • signal_source string, one of "user_threshold", "ai_anomaly", "manual" required
    • ai_owned boolean required
    • primary_monitor_id string or null required
    • trigger_metric_key string or null required
    • started_at string required
    • resolved_at string or null required
    • postmortem_body string or null required
    • postmortem_published_at string or null required
    • assignee object

      The responder the incident is assigned to, or null when it is unassigned.

      • id string required
      • name string required
    • ai_investigation object or null

      The AI investigation report for the incident, or null when there is none to show.

      • verdict string or null required
      • summary string or null required
      • evidence_for string or array of string, max items 0 required
      • evidence_against string or array of string, max items 0 required
      • used_confirmation boolean required
      • confirmation_region string required
      • model string required
    • monitors array of object required
      • monitor_id string required
      • name string required
      • component_status_at_start string or null required
      • component_status_current string or null, one of "up", "down", "degraded", "paused", "maintenance", null required

        Read from the monitor, not the pivot.

    • updates array of IncidentUpdateResource required
      • id string required
      • incident_id string required
      • actor string required
      • author string or null required
      • status string, one of "detected", "investigating", "identified", "monitoring", "mitigated", "resolved" required
      • message string required
      • is_public boolean required
      • autonomous boolean required
      • display_at string required
      • created_at string or null required
    • created_at string or null required
    • updated_at string or null required

Errors

  • 401 Unauthenticated
  • 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
  • 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.

Code samples

curl -X GET "https://api.uptizm.com/v1/dashboard/active-incidents" \
  -H "Authorization: Bearer $UPTIZM_API_KEY" \
  -H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/dashboard/active-incidents', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
    'Accept': 'application/json',
  },
});

const data = await response.json();
<?php

$curl = curl_init('https://api.uptizm.com/v1/dashboard/active-incidents');

curl_setopt_array($curl, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
        'Accept: application/json',
    ],
]);

$response = curl_exec($curl);
import os

import requests

response = requests.get(
    "https://api.uptizm.com/v1/dashboard/active-incidents",
    headers={
        "Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
        "Accept": "application/json",
    },
)

print(response.json())
GET /dashboard/monitors-snapshot stats:read #

List the worst monitors

The team's monitors in the worst state, worst first, capped.

Response 200 application/json

  • data array of MonitorResource required
    • id string required
    • team_id string required
    • name string required
    • url string or null required
    • type string required
    • method string, one of "get", "post", "head" required
    • status string required
    • paused_by_plan boolean required

      Why a paused monitor is paused: true when the plan stopped it, so the client offers an upgrade; false for a pause the customer chose.

    • paused_for_downtime boolean required

      True when a month of nothing but down readings paused a Free monitor.

    • last_status string or null, one of "up", "down", "degraded", "paused", "maintenance", null required
    • check_interval_sec integer required
    • effective_check_interval_sec integer required

      What the loop actually spends, which is the stored value clamped up to the plan's floor.

    • timeout_sec integer required
    • regions array of any required
    • expected_status_code integer required
    • request_headers array of any

      Both emitted so the edit form can prefill what the operator configured.

    • request_body string or null
    • ai_mode AiMode: string, one of "off", "suggest", "auto" required

      How much authority the AI has for a given monitor or workspace.

    • effective_ai_mode AiMode: string, one of "off", "suggest", "auto" required

      How much authority the AI has for a given monitor or workspace.

    • ai_auto_updates boolean required

      Read back by the monitor form's own switch.

    • auth_config array of any or null required
    • slo_target number or null required
    • escalation_policy_id string or null required

      The pinned paging ladder, or null to fall back to the team default.

    • uptime_24h string required

      Measured uptime over the trailing 24h, attached by the show action only (null in list/edit responses and while a monitor has no checks yet, which the client renders as "no data").

    • slo_down_minutes_7d string required
    • slo_observed_minutes_7d string required
    • slo_gap_minutes_7d string required
    • slo_measured_minutes_7d string required
    • slo_down_minutes_30d string required
    • slo_observed_minutes_30d string required
    • slo_gap_minutes_30d string required
    • slo_measured_minutes_30d string required
    • tags array of any required
    • show_on_status_page boolean required
    • only_show_if_degraded boolean required
    • follow_redirects boolean required
    • alert_on_down boolean required
    • alert_on_recover boolean required
    • ssl_tracking boolean required
    • anomaly_detection boolean required
    • response_anomaly_sensitivity string, one of "low", "medium", "high" required
    • ssl_expires_at string or null required
    • ssl_last_checked_at string or null required
    • ssl_last_error string or null required
    • ssl_alert_threshold_days integer required
    • is_group boolean required
    • parent_id string or null required
    • last_checked_at string or null required
    • last_response_ms integer or null required
    • last_probe_error string or null required

      Set when the EDGE refused to run a probe, which is a configuration problem on this monitor rather than an outage of its target.

    • last_probe_error_at string or null required
    • next_check_at string or null required
    • consecutive_fails integer required
    • incident_threshold integer required
    • assertion_rules array of any or null required

      Null for both means off: no rules asserted, no degraded threshold.

    • degraded_after_ms integer or null required
    • maintenance_tolerance_sec integer required
    • description string or null required
    • description_source string or null, one of "ai_draft", "user", null required
    • site_kind string or null, one of "ecommerce", "saas", "api", "content", "corporate", "other", null required
    • intent string or null required
    • created_at string or null required
    • updated_at string or null required

Errors

  • 401 Unauthenticated
  • 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
  • 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.

Code samples

curl -X GET "https://api.uptizm.com/v1/dashboard/monitors-snapshot" \
  -H "Authorization: Bearer $UPTIZM_API_KEY" \
  -H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/dashboard/monitors-snapshot', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
    'Accept': 'application/json',
  },
});

const data = await response.json();
<?php

$curl = curl_init('https://api.uptizm.com/v1/dashboard/monitors-snapshot');

curl_setopt_array($curl, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
        'Accept: application/json',
    ],
]);

$response = curl_exec($curl);
import os

import requests

response = requests.get(
    "https://api.uptizm.com/v1/dashboard/monitors-snapshot",
    headers={
        "Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
        "Accept": "application/json",
    },
)

print(response.json())
GET /dashboard/ai-inbox stats:read #

List pending AI suggestions

The newest pending AI suggestions, with meta.total counting all of them.

Response 200 application/json

  • data array of string required
  • meta object required
    • total integer, min 0 required

Errors

  • 401 Unauthenticated
  • 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
  • 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.

Code samples

curl -X GET "https://api.uptizm.com/v1/dashboard/ai-inbox" \
  -H "Authorization: Bearer $UPTIZM_API_KEY" \
  -H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/dashboard/ai-inbox', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
    'Accept': 'application/json',
  },
});

const data = await response.json();
<?php

$curl = curl_init('https://api.uptizm.com/v1/dashboard/ai-inbox');

curl_setopt_array($curl, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
        'Accept: application/json',
    ],
]);

$response = curl_exec($curl);
import os

import requests

response = requests.get(
    "https://api.uptizm.com/v1/dashboard/ai-inbox",
    headers={
        "Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
        "Accept": "application/json",
    },
)

print(response.json())

Type to search the guides, resources and endpoints.