Cloudy API Documentation

Overview

The Cloudy API provides RESTful endpoints to programmatically access cloud provider status and incident information. All responses are returned in JSON format.

Authentication & URL Format

All API endpoints require an API Key. You can provide your API Key either via an HTTP Header or as a query parameter.

Important: All endpoint URLs must end with a trailing slash (/). Without it, the server will return a 301 Redirect which may cause issues with some HTTP clients.

  • Header: X-API-Key: YOUR_API_KEY
  • Query Parameter: ?api_key=YOUR_API_KEY
GET /api/v1/vendors/

Vendor List

Returns a list of all cloud vendors currently being monitored by Cloudy. Use this to find the correct name for other API queries.

Example Response:

{
  "count": 55,
  "vendors": [
    {
      "name": "AMAZON",
      "display_name": "Amazon Web Services",
      "current_status": "operational",
      "status_page_url": "https://status.aws.amazon.com/",
      "last_checked": "2026-05-08T01:30:00Z"
    },
    {
      "name": "DATADOG",
      "display_name": "Datadog",
      "current_status": "degraded",
      "status_page_url": "https://status.datadoghq.com/",
      "last_checked": "2026-05-08T01:35:00Z"
    }
  ]
}
            
GET /api/status/

Global Vendor Status

Returns the current operational status for all monitored vendors.

Example Response:

{
  "vendors": [
    {
      "id": 1,
      "name": "AMAZON",
      "display_name": "Amazon Web Services",
      "status": "operational",
      "status_display": "Operational",
      "last_checked": "2026-05-08T01:30:00Z"
    }
  ],
  "summary": {
    "total": 1,
    "operational": 1,
    "issues": 0
  }
}
            
GET /api/v1/incidents/

Recent Incidents

Returns a list of recent incidents across all vendors, ordered by published date descending.

Query Parameters:

  • limit: Number of results to return (default: 50).
  • vendor: Filter by internal vendor name (e.g., AMAZON, GCP, DATADOG).
  • status: Filter by status (e.g., investigating, resolved).
  • severity: Filter by severity (e.g., minor, major, critical).
  • region: Filter by region (e.g., us-east-1, seoul). Matches text in title/description.
  • product: Filter by product (e.g., EC2, BigQuery). Matches text in title/description.
  • minutes: Show incidents from the last N minutes (default: 43200, which is 30 days).

Example Response:

{
  "count": 1,
  "results": [
    {
      "guid": "https://status.aws.amazon.com/#ec2-us-east-1_12345",
      "vendor": "AWS",
      "vendor_display": "Amazon Web Services",
      "title": "Service impact: Increased Error Rate",
      "description": "We are investigating...",
      "link": "https://status.aws.amazon.com/",
      "status": "investigating",
      "status_display": "Investigating",
      "severity": "major",
      "severity_display": "Major",
      "published_at": "2026-05-08T01:00:00Z",
      "resolved_at": null
    }
  ]
}
            
GET /api/v1/incidents/<vendor_name>/

Vendor Specific Incidents

Returns recent incidents for a specific vendor.

Query Parameters:

  • limit: Number of results to return (default: 50).
  • status: Filter by status (e.g., investigating, resolved).
  • region: Filter by region (e.g., us-east-1).
  • product: Filter by product (e.g., EC2).
  • minutes: Show incidents from the last N minutes (default: 43200, which is 30 days).

Example Response:

{
  "vendor": {
    "name": "DATADOG",
    "display_name": "Datadog",
    "current_status": "operational",
    "last_checked": "2026-05-08T01:30:00Z"
  },
  "count": 5,
  "results": [ ... ]
}