← Back to Status

Status API Documentation

Programmatic access to Faciotech service health data. The status JSON and feeds require no authentication. Feed formats are listed below.

Base URL

https://status.faciotech.com/api

Endpoints

Overall Status

GET/api/v2/status.json

Returns the current overall system status.

{
  "status": {
    "indicator": "none",
    "description": "All systems operational"
  },
  "page": {
    "name": "FacioTech Servers",
    "url": "https://status.faciotech.com",
    "updated_at": "2026-10-22T23:30:03+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": "operational",
      "uptime_percent": 99.49,
      "response_time_ms": 4535,
      "check_interval": 60,
      "last_check": "2026-10-22 23:28:08"
    }
  ]
}

Component example excerpt from the 2026-10-22 response. last_check is passed through unchanged as YYYY-MM-DD HH:mm:ss; the exporter does not specify its timezone. Do not infer UTC from this field. page.updated_at includes an explicit UTC offset.

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.

Feeds

FormatURLUse Case
RSS 2.0https://faciotech.com/modules/addons/faciotech_monitor/feed.php/faciotech-servers?format=rssRSS readers
Atomhttps://faciotech.com/modules/addons/faciotech_monitor/feed.php/faciotech-servers?format=atomFeed aggregators
iCalhttps://faciotech.com/modules/addons/faciotech_monitor/calendar.php/faciotech-serversCalendar apps
CSVhttps://faciotech.com/modules/addons/faciotech_monitor/feed.php/faciotech-servers?format=csvSpreadsheets

Scroll the table sideways to see every column.

Legacy deploy-time files

These copies are snapshots from the last site deployment. They do not update every five minutes. Use the module feed links above for current data.

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

Illustrative webhook payload (not a captured live response):

{
  "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

Scroll the table sideways to see every column.

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

The JSON endpoints listed above are regenerated every 5 minutes and pushed to the status site. Responses may be cached for 300 seconds. Before the first successful push, an endpoint can return its deploy-time fallback. If pushes stop, the last pushed data remains; check page.updated_at for freshness. Availability is subject to hosting quotas. Module feeds are generated on request; legacy deploy-time files are not live.

CORS

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