← Back to Status

Status API Documentation

Programmatic access to FacioTech service health data. All endpoints return JSON and require no authentication.

Base URL

https://status.faciotech.com/api

Endpoints

Overall Status

GET/api/v2/status.json

Returns the current overall system status.

{
  "status": {
    "indicator": "operational",
    "description": "All systems operational"
  },
  "page": {
    "name": "FacioTech Status",
    "url": "https://status.faciotech.com",
    "updated_at": "2026-02-19T17:30:00+00:00"
  }
}

Full Summary

GET/api/v2/summary.json

Returns overall status, all components, active incidents, and scheduled maintenance in a single request.

Components

GET/api/v2/components.json

Returns all monitored components with current status, uptime, and group info.

{
  "components": [
    {
      "name": "Client Portal (WHMCS)",
      "group": "Platform Services",
      "status": "up",
      "uptime_percent": 100.0,
      "response_time_ms": 245,
      "check_interval": 60,
      "last_check": "2026-02-19T17:30:00"
    }
  ]
}

Incidents

GET/api/v2/incidents.json

Returns all incidents (active and recent).

GET/api/v2/incidents/unresolved.json

Returns only unresolved (active) incidents.

Scheduled Maintenance

GET/api/v2/scheduled-maintenances.json

Returns all scheduled maintenance windows.

GET/api/v2/scheduled-maintenances/upcoming.json

Returns only upcoming (not yet started) maintenance.

Status Badge

GET/api/v2/badge.svg

Returns an SVG badge showing current overall status. Embed in dashboards or READMEs:

<img src="https://status.faciotech.com/api/v2/badge.svg" alt="FacioTech Status" />

Feeds

FormatURLUse Case
RSS 2.0/api/feed.xmlRSS readers
Atom/api/feed.atomFeed aggregators
iCal/api/calendar.icsCalendar apps
CSV/api/incidents.csvSpreadsheets

Webhook Notifications

Subscribe a webhook URL to receive real-time POST notifications when service status changes.

Subscribing

Use the subscribe form on the status page, or POST directly:

POSThttps://faciotech.com/modules/addons/faciotech_monitor/status.php/faciotech-servers?action=subscribe
Content-Type: application/x-www-form-urlencoded

type=webhook&url=https://your-server.com/webhook

Webhook Payload

When a status change occurs, we send a JSON POST to your endpoint:

{
  "event": "incident.created",
  "timestamp": "2026-02-19T17:30:00+00:00",
  "page": {
    "name": "FacioTech Status",
    "url": "https://status.faciotech.com"
  },
  "incident": {
    "name": "LiteSpeed Web Server Degraded",
    "status": "investigating",
    "impact": "minor",
    "component": "LiteSpeed Web Server",
    "started_at": "2026-02-19T17:25:00+00:00",
    "resolved_at": null,
    "updates": [
      {
        "status": "investigating",
        "body": "We are investigating reports of slow response times.",
        "created_at": "2026-02-19T17:30:00+00:00"
      }
    ]
  }
}

Event Types

EventDescription
incident.createdNew incident detected or created
incident.updatedIncident status or impact changed
incident.resolvedIncident marked as resolved
maintenance.scheduledNew maintenance window announced
maintenance.startedMaintenance window has begun
maintenance.completedMaintenance finished
component.status_changeA component's status changed

Webhook Verification

Each webhook request includes an X-Status-Signature header containing an HMAC-SHA256 signature of the request body, signed with the subscriber's secret (if provided during registration). Verify this to ensure authenticity.

signature = HMAC-SHA256(webhook_secret, request_body)
expected = request.headers["X-Status-Signature"]

Retry Policy

Failed deliveries (non-2xx response or timeout >10s) are retried up to 3 times with exponential backoff: 1 minute, 5 minutes, 30 minutes.

Rate Limits

API endpoints serve static JSON files and have no rate limits. Files are regenerated every 5 minutes.

CORS

All API endpoints include Access-Control-Allow-Origin: * headers, so they can be consumed from any domain via JavaScript.