API Reference

9 endpoints

Public read-only REST endpoints. No authentication required. Consistent JSON envelope with success field.

Base URLhttps://status.valtrogen.com

Incidents & Maintenance

2

Incident records, maintenance windows, and event timelines.

GET
/api/maintenance

Retrieve all maintenance and incident logs. Supports filtering by status and pagination.

Parameters

NameTypeDescription
statusstringFilter by status: scheduled, in_progress, completed, or cancelled
limitnumberMaximum number of results to return
offsetnumberNumber of results to skip (for pagination, default 0)

Example response

Response
{
  "success": true,
  "logs": [
    {
      "id": "maintenance-1710000000000",
      "title": "Database Migration – EU Region",
      "status": "completed",
      "affectedMonitors": ["eu-api", "eu-dashboard"],
      "startTime": 1710000000000,
      "endTime": 1710007200000,
      "events": [
        {
          "id": "evt-1710000000000-a1b2c",
          "timestamp": 1710000000000,
          "label": "Investigating",
          "content": "Elevated latency detected in the EU region."
        }
      ],
      "createdAt": 1710000000000,
      "updatedAt": 1710007200000
    }
  ]
}
200 Logs retrieved500 Server error
GET
/api/maintenance/:id

Retrieve a specific incident with timeline entries and current status for affected services.

Parameters

NameTypeDescription
idrequiredpathstringIncident ID (e.g. maintenance-1710000000000)

Example response

Response
{
  "success": true,
  "log": {
    "id": "maintenance-1710000000000",
    "title": "Database Migration – EU Region",
    "status": "completed",
    "affectedMonitors": ["eu-api"],
    "startTime": 1710000000000,
    "endTime": 1710007200000,
    "events": [
      {
        "id": "evt-1710000000000-a1b2c",
        "timestamp": 1710000000000,
        "label": "Investigating",
        "content": "Elevated latency detected in the EU region."
      },
      {
        "id": "evt-1710003600000-d4e5f",
        "timestamp": 1710003600000,
        "label": "Resolved",
        "content": "Migration complete. All services operating normally."
      }
    ],
    "createdAt": 1710000000000,
    "updatedAt": 1710007200000
  },
  "monitorDetails": {
    "eu-api": {
      "name": "EU API Gateway",
      "status": "up",
      "overallUptime": 99.95,
      "lastChecked": 1710007200000
    }
  }
}
200 Details retrieved400 Invalid ID format404 Not found500 Server error

Monitors

3

Service status, availability history, and hourly check summaries.

GET
/api/monitors

Retrieve all monitors with current status, response time, and 90-day daily uptime history.

Example response

Response
{
  "success": true,
  "monitors": [
    {
      "id": "eu-api",
      "name": "EU API Gateway",
      "type": "http",
      "status": "up",
      "lastChecked": 1710007200000,
      "overallUptime": 99.95,
      "responseTime": 142,
      "statusCode": 200,
      "dailyUptimes": [
        {
          "date": "2025-03-10",
          "totalChecks": 1440,
          "successChecks": 1438,
          "uptime": 99.86
        }
      ]
    }
  ],
  "groups": [
    { "id": "europe", "name": "Europe", "order": 1 }
  ]
}
200 List retrieved500 Server error
GET
/api/monitors/:monitorId

Retrieve detailed information for a specific monitor, including 90-day history, outage days, service group, and related maintenance logs.

Parameters

NameTypeDescription
monitorIdrequiredpathstringMonitor identifier (e.g. eu-api)

Example response

Response
{
  "success": true,
  "monitor": {
    "id": "eu-api",
    "name": "EU API Gateway",
    "type": "http",
    "status": "up",
    "overallUptime": 99.95,
    "history": [
      { "date": "2025-03-10", "totalChecks": 1440, "successChecks": 1440, "uptime": 100 }
    ],
    "outages": [
      { "date": "2025-03-05", "totalChecks": 1440, "successChecks": 1410, "uptime": 97.92 }
    ]
  },
  "group": { "id": "europe", "name": "Europe" },
  "maintenanceLogs": [ ... ]
}
200 Details retrieved400 Invalid ID format404 Not found500 Server error
GET
/api/monitors?monitorId=:id&date=:date

Retrieve hourly uptime summaries for a specific monitor on a given UTC date. Returns 24 entries (one per hour).

Parameters

NameTypeDescription
monitorIdrequiredstringMonitor identifier
daterequiredstringUTC date in YYYY-MM-DD format

Example response

Response
{
  "success": true,
  "hourlyData": [
    { "hour": 0, "totalChecks": 60, "successChecks": 60, "uptime": 100 },
    { "hour": 1, "totalChecks": 60, "successChecks": 59, "uptime": 98.33 },
    ...
  ]
}
200 Data retrieved400 Invalid params500 Server error

Service Groups

1

Retrieve grouped service status and aggregate availability statistics.

GET
/api/groups/:groupId

Retrieve a service group with all member monitors, aggregate statistics, and related maintenance logs.

Parameters

NameTypeDescription
groupIdrequiredpathstringGroup identifier (e.g. europe)

Example response

Response
{
  "success": true,
  "group": { "id": "europe", "name": "Europe", "order": 1 },
  "monitors": [
    {
      "id": "eu-api",
      "name": "EU API Gateway",
      "status": "up",
      "overallUptime": 99.95,
      "history": [ ... ]
    }
  ],
  "stats": { "total": 5, "up": 4, "degraded": 1, "down": 0 },
  "maintenanceLogs": [ ... ]
}
200 Details retrieved400 Invalid ID format404 Not found500 Server error

Minute Records

1

Access granular per-minute check records for detailed incident analysis and SLA reporting.

GET
/api/minutes

Retrieve per-minute check records for a specific monitor, date, and hour. Returns up to 60 records.

Parameters

NameTypeDescription
monitorIdrequiredstringMonitor identifier
daterequiredstringUTC date in YYYY-MM-DD format
hourrequirednumberUTC hour (0–23)

Example response

Response
{
  "success": true,
  "records": [
    {
      "timestamp": 1710000000000,
      "success": true,
      "responseTime": 142,
      "statusCode": 200
    },
    {
      "timestamp": 1710000060000,
      "success": false,
      "error": "ETIMEDOUT"
    }
  ]
}
200 Records retrieved400 Invalid params500 Server error

Status Feeds

1

Atom and RSS feeds for incident and maintenance status updates. Suitable for feed readers, monitoring integrations, and compliance tooling.

GET
/api/feed

Returns an Atom feed of incident and maintenance updates by default. Append ?format=rss for RSS 2.0 format. Feed includes the 50 most recent entries sorted by update time.

Parameters

NameTypeDescription
formatstringFeed format: omit for Atom (default), or "rss" for RSS 2.0

Example response

Response
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://status.valtrogen.com/api/feed</id>
  <title>Service Status — Incidents &amp; Maintenance</title>
  <updated>2025-03-10T12:00:00.000Z</updated>
  <entry>
    <id>https://status.valtrogen.com/maintenance/maintenance-1710000000000</id>
    <title>Database Migration – EU Region</title>
    <updated>2025-03-10T12:00:00.000Z</updated>
    <summary>Status: Resolved — Affected services: 2 — Migration complete.</summary>
    <category term="completed" label="Resolved" />
  </entry>
</feed>
200 Feed generated (Atom or RSS)500 Server error

Status Badge

1

Embeddable SVG status badge for README files, dashboards, and external documentation. Supports multiple visual styles, content types, and color customization.

GET
/api/badge

Returns a live SVG badge showing system status, uptime, or response time. Embed as an <img> tag or Markdown image. Fully customizable style, colors, content, and target monitor.

Parameters

NameTypeDescription
stylestringVisual style: "flat" (default), "flat-square", "plastic" (3D gradient), or "for-the-badge" (large uppercase)
typestringContent type: "status" (default), "uptime" (90-day percentage), or "response-time" (average ms)
labelstringCustom left-side label text (default depends on type)
labelColorstringLeft-side background color as hex (e.g. "555" or "24292e"). Default: #555
colorstringOverride right-side color as hex. By default, color is derived from status/uptime/response-time thresholds
monitorIdstringTarget a specific monitor by ID instead of showing overall status
logostringSet to "false" to hide the status dot icon. Shown by default

Example response

Response
<!-- Default status badge -->
https://status.valtrogen.com/api/badge

<!-- Flat-square style -->
https://status.valtrogen.com/api/badge?style=flat-square

<!-- Plastic (3D) style -->
https://status.valtrogen.com/api/badge?style=plastic

<!-- Large uppercase style -->
https://status.valtrogen.com/api/badge?style=for-the-badge

<!-- 90-day uptime badge -->
https://status.valtrogen.com/api/badge?type=uptime

<!-- Response time badge -->
https://status.valtrogen.com/api/badge?type=response-time

<!-- Custom colors & label -->
https://status.valtrogen.com/api/badge?label=valtrogen&labelColor=24292e&color=0f62fe

<!-- Specific monitor -->
https://status.valtrogen.com/api/badge?monitorId=na-primary&type=uptime

<!-- Markdown embed -->
![Status](https://status.valtrogen.com/api/badge)

<!-- HTML embed -->
<img src="https://status.valtrogen.com/api/badge?style=plastic&type=uptime" alt="Uptime" />
200 SVG badge returned404 Monitor not found (when monitorId is invalid)500 Fallback "unavailable" badge returned

Response format

All responses include a success boolean. On failure, an error string describes the issue.

Caching

Responses include Cache-Control headers. Typical TTL is 30–60 s with stale-while-revalidate for optimal freshness.

Rate limiting

Public endpoints are intended for reasonable programmatic access. Excessive requests may be throttled. Contact us for dedicated access.

For custom integration requirements or higher rate limits, contact us

9 public endpoints · JSON · REST