REST API Documentation

Programmatic access to real-time status, incidents, SLA compliance, and reliability data for 1002+ cloud services.

https://servicealert.ai/api/v1/

Quick Start

  1. Public endpoints (services, status, incidents) work without authentication — just make a GET request.
  2. For premium endpoints (SLA, scores, rankings, trends, analytics), create an API key in your dashboard.
  3. Pass your key in the X-API-Key header with every request.
Example
curl -H "X-API-Key: sa_live_your_key_here" \ https://servicealert.ai/api/v1/scores

Authentication

Public endpoints (/services, /status, /incidents) require no authentication. Premium endpoints require an API key.

Pass your API key in the X-API-Key header:

X-API-Key: sa_live_your_key_here

API keys can be created and managed from the API Keys page in your dashboard. Keys are shown only once on creation — store them securely.

Rate Limits

All responses include rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.

Access LevelRate LimitWindow
No API Key (public)30 requestsPer minute
With API Key120 requestsPer minute

Exceeding the limit returns 429 Too Many Requests with a Retry-After header.

Endpoints

Public Endpoints

GET /api/v1/services Public List all monitored services

Returns the full catalog of monitored services. Use /{feedId} for a single service.

ParameterTypeDescription
category optionalstringFilter by category slug (e.g., cloud-platforms)
Response
{ "success": true, "data": [ { "feedId": "aws", "name": "Amazon Web Services", "url": "https://health.aws.amazon.com/health/status", "feedType": "healthcheck", "description": "Cloud computing platform..." } ], "meta": { "total": 1002 } }
GET /api/v1/status Public Current status of all services

Returns the latest cached status for all services. Data is refreshed every 5 minutes. Use /{feedId} for a single service.

Response
{ "success": true, "data": [ { "feedId": "github", "status": "up", "lastCheck": 1710334795, "indicator": "none" } ], "meta": { "total": 950, "generated": 1710334800, "age_seconds": 42 } }
GET /api/v1/incidents Public Active incidents across all services

Returns current active incidents. Use /{feedId} for incidents affecting a specific service.

Response
{ "success": true, "data": [ { "service": "GitHub", "id": "abc123", "title": "Degraded performance for Actions", "status": "investigating", "started": 1710300000, "updates": [...] } ], "meta": { "total": 3, "services_affected": 2 } }

Premium Endpoints (API key required)

GET /api/v1/sla Auth SLA compliance data

Compare vendor uptime against published SLA targets. Use /{feedId} for a single service.

ParameterTypeDescription
month optionalstringHistorical month (e.g., 2026-02)
Response
{ "success": true, "data": { "summary": { "services_tracked": 850, "compliance_rate": 94.2, "services_breaching_sla": 49 }, "services": [ { "feedId": "aws", "name": "Amazon Web Services", "sla_target": 99.99, "uptime_30d": 99.98, "status": "at_risk", "margin": -0.01 } ] } }
GET /api/v1/scores Auth Vendor reliability scores (0-100)

Composite reliability scores based on uptime (40%), incidents (25%), resolution time (20%), and SLA compliance (15%). Use /{feedId} for a single service.

ParameterTypeDescription
month optionalstringHistorical month (e.g., 2026-02)
Response
{ "success": true, "data": { "summary": { "services_scored": 800, "avg_score": 82.4, "top_service": "Cloudflare" }, "scores": [ { "feedId": "cloudflare", "name": "Cloudflare", "score": 97.2, "grade": "A", "tier": "excellent", "components": { "uptime": 98.5, "incidents": 100, "resolution": 90, "sla": 100 } } ] } }
GET /api/v1/rankings Auth Uptime reliability rankings

Services ranked by uptime performance with 30/90-day metrics.

ParameterTypeDescription
month optionalstringHistorical month (e.g., 2026-02)
GET /api/v1/analytics Auth Incident analytics & MTTR

MTTR trends, severity distribution, top affected services, day-of-week patterns, and component analysis.

ParameterTypeDescription
month optionalstringHistorical month (e.g., 2026-02)

Code Examples

# Public endpoint (no auth) curl https://servicealert.ai/api/v1/status/github # Premium endpoint (API key required) curl -H "X-API-Key: sa_live_your_key_here" \ https://servicealert.ai/api/v1/scores/aws # Filter services by category curl https://servicealert.ai/api/v1/services?category=cloud-platforms # Historical SLA data curl -H "X-API-Key: sa_live_your_key_here" \ "https://servicealert.ai/api/v1/sla?month=2026-02"
// Public endpoint const res = await fetch('https://servicealert.ai/api/v1/status/github'); const { data } = await res.json(); console.log(data.status); // "up" // Premium endpoint const scores = await fetch('https://servicealert.ai/api/v1/scores', { headers: { 'X-API-Key': 'sa_live_your_key_here' } }); const { data: scoreData } = await scores.json(); console.log(scoreData.summary.avg_score);
import requests # Public endpoint r = requests.get('https://servicealert.ai/api/v1/status/github') print(r.json()['data']['status']) # "up" # Premium endpoint headers = {'X-API-Key': 'sa_live_your_key_here'} r = requests.get('https://servicealert.ai/api/v1/scores', headers=headers) print(r.json()['data']['summary']['avg_score'])

Error Codes

CodeMeaning
200Success
401Authentication required — missing or invalid API key
403Forbidden — API key lacks required scope
404Resource not found (invalid endpoint or feedId)
405Method not allowed — API is read-only (GET only)
429Rate limit exceeded — wait and retry
500Internal server error
503Data not yet available (service initializing)

All error responses follow the format: { "success": false, "error": "description" }

Ready to integrate? Create your API key and start building.

Get Your API Key