Public API

API Documentation

Access your status page data programmatically. No authentication required.

Public Status API

Get the current status of any public status page as JSON. No authentication required. CORS enabled — call it from anywhere.

GET
/api/v1/status?slug=your-slug

Returns current status, monitors, and response times

Example request
curl https://openping.io/api/v1/status?slug=mycompany
Response
{
  "status": "operational",
  "page": {
    "name": "My Company Status",
    "description": "Service status for My Company"
  },
  "monitors": [
    {
      "name": "API",
      "status": "up",
      "response_time_ms": 42,
      "last_checked": "2026-03-24T12:00:00Z"
    },
    {
      "name": "Website",
      "status": "up",
      "response_time_ms": 128,
      "last_checked": "2026-03-24T12:00:00Z"
    }
  ],
  "checked_at": "2026-03-24T12:01:00Z"
}

Response fields

FieldTypeDescription
statusstring"operational", "degraded", or "unknown"
page.namestringStatus page name
monitors[].namestringMonitor display name
monitors[].statusstring"up", "down", or "unknown"
monitors[].response_time_msnumber | nullAverage response time in ms
monitors[].last_checkedstring | nullISO 8601 timestamp

Errors

Missing slug
GET /api/v1/status
→ 400 { "error": "Missing slug parameter..." }
Not found
GET /api/v1/status?slug=nonexistent
→ 404 { "error": "Status page not found" }

Caching

Responses are cached for 60 seconds. The checked_at field shows when the data was generated.

Uptime Badges

Embed a live uptime badge in your README or website. Shows monitor name and current status as an SVG image. The monitor must be on a public status page.

Preview

example.com
Up
Markdown
![Uptime](https://openping.io/badge/YOUR_MONITOR_ID)
HTML
<img src="https://openping.io/badge/YOUR_MONITOR_ID" alt="Uptime" />

Finding your monitor ID: Open a monitor in your dashboard — the badge section shows the embed code with your ID pre-filled. You can also find it in the URL: /monitors/YOUR_MONITOR_ID