Account

Public uptime stats

Public uptime stats — no auth required, 0 credits.

uptime_30d_pct is nullable — type number | null, not number. It is null, with checks: 0, whenever the monitor has written no samples inside the window: the buffer file is absent, or every sample in it predates the 30-day cutoff. A missing measurement is never reported as availability.

Guard before any arithmetic or >= comparison:

pct = r.get("uptime_30d_pct")
ok = pct is not None and pct >= 99.9   # not: r["uptime_30d_pct"] >= 99.9

The no-measurement body in full:

{
  "uptime_30d_pct": null,
  "checks": 0,
  "status": "no data yet",
  "probe_target": "https://puntersedge.online/ping",
  "measures": "puntersedge.online (website), not api.puntersedge.online",
  "note": "..."
}

checks == 0 tests the same condition without touching the nullable field.

get/v1/uptime

Request

  • Base URL: https://api.puntersedge.online
  • URL: https://api.puntersedge.online/v1/uptime
  • Auth: API key in header X-API-Key

Response

Uptime stats. uptime_30d_pct is null — NOT 100 and not absent — when the window holds no samples.

uptime_30d_pctnumber nullable required

Percentage of successful probes in the window, or NULL when the window contains no samples at all. Null means unmeasured, not 100. Guard before arithmetic or a >= comparison.

checksinteger required

Samples in the window. 0 is the non-null sentinel for the same condition that makes uptime_30d_pct null, and is always safe to compare.

statusstring

Present only in the no-measurement case: 'no data yet'.

last_checkstring date-time nullable
last_status'ok' | 'fail'
monitor_staleboolean

True when the newest sample is over 15 minutes old.

last_check_age_minnumber nullable
window_first_checkstring date-time
window_span_daysnumber

Span actually observed, which equals 30 only if the probe never missed a sample.

probe_targetstring required
measuresstring required
notestring required

Example response

{
  "uptime_30d_pct": 99.99
}

Changes

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