Monitors

List monitors

Returns the team's monitors, newest first unless you sort. Filters combine with AND.

get/monitors

Request

  • Base URL
    https://api.spectate.net/v1
  • Auth
    HTTP bearer

Query parameters

pageinteger

Page number, from 1.

per_pageinteger

Monitors per page, 1 to 100.

filter[state]'down' | 'pending' | 'up' | 'paused'

A monitor's state as the dashboard shows it: paused when disabled, otherwise its uptime status.

down <br/> Checks fail: a failed check, repeated from the same region about 5 seconds later, failed again.
pending <br/> Not checked yet.
up <br/> The latest check succeeded.
paused <br/> Disabled by a member or the system.

Only monitors in this state.

filter[uptime_status]'pending' | 'up' | 'down'

Whether a monitor's target answers, from its latest checks.

pending <br/> Not checked yet.
up <br/> The latest check succeeded.
down <br/> Checks fail: a failed check, repeated from the same region about 5 seconds later, failed again.

Only monitors with this uptime status, whether paused or not.

filter[protocol]'https' | 'http' | 'icmp' | 'tcp' | 'dns' | 'nameserver' | 'smtp' | 'imap' | 'pop3' | 'heartbeat'

What a monitor checks, and so the format of its uri.

https <br/> An HTTPS request to the URL in uri, with a certificate check.
http <br/> An HTTP request to the URL in uri.
icmp <br/> A ping (ICMP echo) to the host in uri.
tcp <br/> A TCP connect to host:port, optionally with a TLS handshake and a banner keyword.
dns <br/> A DNS query for a record of the name in uri, optionally compared with expected values.
nameserver <br/> One authoritative nameserver at host:port (port optional, default 53), asked for the SOA record of each zone in advanced_settings.nameserver_zones.
smtp <br/> An SMTP greeting from host:port (port optional), with STARTTLS by default.
imap <br/> An IMAP greeting from host:port (port optional), over TLS by default.
pop3 <br/> A POP3 greeting from host:port (port optional), over TLS by default.
heartbeat <br/> A job calls the monitor's secret ping URL each time it runs. No check goes out, and uri is empty.

Only monitors of this protocol.

filter[enabled]boolean

Only running (true) or paused (false) monitors.

filter[project_id]string uuid

Only monitors of this project.

filter[search]string

Case-insensitive text in the label, target, protocol or region.

sortstring

Sort by label, created_at, last_checked_at or state (down, pending, up, paused, then label). Prefix - for descending. Default -created_at.

Response

Paginated set of Monitor

current_pageinteger required
first_page_urlstring nullable required
frominteger nullable required
last_page_urlstring nullable required
last_pageinteger required
next_page_urlstring nullable required
pathstring nullable required

Base path for paginator generated URLs.

per_pageinteger required

Number of items shown per page.

prev_page_urlstring nullable required
tointeger nullable required

Number of the last item in the slice.

totalinteger required

Total number of items being paginated.

Example response

{
  "data": [
    {
      "label": "Website",
      "uri": "example.com/health",
      "url": "https://example.com/health",
      "timeout": 30,
      "headers": [
        {
          "key": "X-Health-Check",
          "value": "spectate"
        }
      ],
      "advanced_settings": {
        "keyword": "OK",
        "dns_resolver": "1.1.1.1"
      },
      "expected_http_status_code": "2**,301",
      "certificate_expiry_threshold_days": 14,
      "certificate_issuer": "R11",
      "performance_hard_threshold": 2000,
      "performance_deviation_percentage": 50,
      "performance_deviation_timeframe": 30,
      "performance_deviation_before_timeframe": 240,
      "response_time": 182,
      "check_details": {
        "banner": "220 mail.example.com ESMTP",
        "reply_code": 220,
        "tls_version": "TLS 1.3",
        "cipher_suite": "TLS_AES_128_GCM_SHA256",
        "dns_server": "1.1.1.1:53",
        "dns_rcode": "NOERROR",
        "dns_zone": "example.com",
        "dns_nameservers": [
          {
            "host": "ns1.example.com",
            "address": "192.0.2.53",
            "rcode": "NOERROR",
            "serial": 2026110301,
            "response_time": 12,
            "error": "REFUSED"
          }
        ],
        "nameserver_zones": [
          {
            "zone": "example.com",
            "rcode": "NOERROR",
            "serial": 2026110301,
            "response_time": 12,
            "error": "REFUSED"
          }
        ],
        "nameserver_issues": [
          {
            "server": "ns1.example.com:53"
          }
        ]
      },
      "uptime": {
        "twenty_four_hours": 99.95
      },
      "escalation_paths": [
        {
          "name": "On-call engineers"
        }
      ]
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.