Skip to content

Status Reference

status.chainabit.com is the public status surface for the Chainabit API. All endpoints are anonymous, cache-friendly, and return the standard response envelope.

Base URL

https://status.chainabit.com/api/v1

Endpoints

MethodPathPurpose
GET/statusPlatform summary
GET/status/servicesService list
GET/status/services/:slugService detail
GET/status/componentsComponent list
GET/status/incidentsIncident feed
GET/status/incidents/:idIncident detail
GET/status/maintenanceMaintenance windows
GET/status/snapshots/:dateHistorical daily snapshot
GET/status/uptime/:windowUptime rollup

GET /status

Returns the current platform summary: overall status, service cards, top incidents, and active maintenance.

Response

json
{
  "data": {
    "headline": "All systems operational",
    "status": "operational",
    "indicator": "none",
    "services": [
      {
        "id": "uuid",
        "slug": "api",
        "name": "Chainabit API",
        "description": "Core REST API",
        "current_status": "operational",
        "indicator": "none",
        "sort_order": 0,
        "is_public": true
      }
    ],
    "incidents": [],
    "maintenance": [],
    "updated_at": "2026-03-25T00:00:00.000Z"
  }
}

status values: operational · degraded_performance · partial_outage · major_outage · maintenance


GET /status/services

Returns the list of public services ordered by sort_order.

Response

json
{
  "data": [
    {
      "id": "uuid",
      "slug": "api",
      "name": "Chainabit API",
      "description": "Core REST API",
      "current_status": "operational",
      "indicator": "none",
      "sort_order": 0,
      "is_public": true,
      "created_at": "2026-03-25T00:00:00.000Z",
      "updated_at": "2026-03-25T00:00:00.000Z"
    }
  ]
}

GET /status/services/:slug

Returns a service with its components, open incidents, active maintenance, and uptime windows.

Path parameters

ParameterTypeDescription
slugstringService slug (e.g. api)

Response

json
{
  "data": {
    "id": "uuid",
    "slug": "api",
    "name": "Chainabit API",
    "description": "Core REST API",
    "current_status": "operational",
    "indicator": "none",
    "components": [
      {
        "id": "uuid",
        "slug": "api-health",
        "name": "API Health Checks",
        "current_status": "operational"
      }
    ],
    "incidents": [],
    "maintenance": [],
    "uptime": {
      "24h": 100,
      "7d": 99.98,
      "30d": 99.95,
      "90d": 99.9,
      "1y": 99.85
    }
  }
}

GET /status/components

Returns all public components. Optionally filter by service.

Query parameters

ParameterTypeRequiredDescription
serviceSlugstringNoFilter components to a specific service

Response

json
{
  "data": [
    {
      "id": "uuid",
      "slug": "api-health",
      "name": "API Health Checks",
      "current_status": "operational",
      "indicator": "none",
      "service_id": "uuid"
    }
  ]
}

GET /status/incidents

Returns the public incident feed, newest first.

Query parameters

ParameterTypeRequiredDescription
pagenumberNoPage number (default: 1)
limitnumberNoItems per page (default: 20, max: 100)

Response

json
{
  "data": [
    {
      "id": "uuid",
      "slug": "api-degraded-2026-03-25",
      "title": "API degraded performance",
      "status": "resolved",
      "impact": "minor",
      "severity": null,
      "description": "Elevated error rates observed.",
      "started_at": "2026-03-25T10:00:00.000Z",
      "resolved_at": "2026-03-25T11:30:00.000Z",
      "updates": []
    }
  ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 1
  }
}

status values: investigating · identified · monitoring · resolved · postmortem_readyimpact values: minor · partial · major


GET /status/incidents/:id

Returns a single incident with its full update timeline.

Path parameters

ParameterTypeDescription
idstringIncident UUID

Response

json
{
  "data": {
    "id": "uuid",
    "slug": "api-degraded-2026-03-25",
    "title": "API degraded performance",
    "status": "resolved",
    "impact": "minor",
    "started_at": "2026-03-25T10:00:00.000Z",
    "resolved_at": "2026-03-25T11:30:00.000Z",
    "updates": [
      {
        "id": "uuid",
        "status": "investigating",
        "message": "We are investigating elevated error rates.",
        "author_name": "Chainabit Ops",
        "created_at": "2026-03-25T10:05:00.000Z"
      },
      {
        "id": "uuid",
        "status": "resolved",
        "message": "Issue resolved. Root cause was a misconfigured upstream proxy.",
        "author_name": "Chainabit Ops",
        "created_at": "2026-03-25T11:30:00.000Z"
      }
    ]
  }
}

GET /status/maintenance

Returns upcoming and active maintenance windows.

Response

json
{
  "data": [
    {
      "id": "uuid",
      "slug": "db-upgrade-2026-03-26",
      "title": "Database upgrade",
      "status": "scheduled",
      "starts_at": "2026-03-26T02:00:00.000Z",
      "ends_at": "2026-03-26T04:00:00.000Z",
      "service_id": "uuid"
    }
  ]
}

status values: scheduled · in_progress · completed · cancelled


GET /status/snapshots/:date

Returns the historical daily snapshot for the given date.

Path parameters

ParameterTypeDescription
datestringISO date in YYYY-MM-DD format

Example request

bash
curl https://status.chainabit.com/api/v1/status/snapshots/2026-03-25

Response

json
{
  "data": {
    "snapshot_date": "2026-03-25",
    "scope_type": "platform",
    "scope_key": "global",
    "payload": {
      "headline": "All systems operational",
      "status": "operational",
      "services": []
    },
    "computed_at": "2026-03-25T23:59:00.000Z"
  }
}

GET /status/uptime/:window

Returns the uptime rollup for a given time window.

Path parameters

ParameterTypeDescription
windowstringOne of: 24h · 7d · 30d · 90d · 1y

Example request

bash
curl https://status.chainabit.com/api/v1/status/uptime/30d

Response

json
{
  "data": {
    "scope_type": "platform",
    "scope_key": "global",
    "window": "30d",
    "uptime_percent": 99.95,
    "downtime_minutes": 21.6,
    "incident_count": 2,
    "computed_at": "2026-03-25T00:00:00.000Z"
  }
}

Cache headers

Every response includes:

HeaderValue
Cache-Controlpublic, max-age=30, stale-while-revalidate=300
ETagSHA-1 of the serialized payload
Last-ModifiedProjection timestamp

Use conditional requests (If-None-Match, If-Modified-Since) to avoid transferring unchanged payloads.


Client guidance

  • Use /status for the landing page hero.
  • Use /status/services/:slug for per-service drilldown pages.
  • Use /status/snapshots/:date for date-based history and SEO.
  • Use /status/uptime/:window for compact percentage widgets.
  • Prefer stale-while-revalidate or cache-aware polling — avoid request bursts.

Built with purpose.