Skip to main content

Base URL

All API requests should be made to:
https://kodostatus.com/api/v1

Authentication

Authenticate requests using the X-API-Key header:
curl "https://kodostatus.com/api/v1/incidents" \
  -H "X-API-Key: your_api_key_here" \
  -H "Content-Type: application/json"
You can also use the Authorization: Bearer header as an alternative:
curl "https://kodostatus.com/api/v1/incidents" \
  -H "Authorization: Bearer your_api_key_here"

Get Your API Key

Generate an API key from your dashboard

Response Format

All responses are returned in JSON format:
{
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "title": "Example Incident",
  "status": "investigating",
  "created_at": "2024-01-15T10:30:00Z"
}

Error Handling

Errors return appropriate HTTP status codes with a JSON body:
{
  "error": "Invalid API key"
}
Some endpoints include additional detail for validation errors:
{
  "error": "Invalid request body",
  "code": "INVALID_SCHEMA",
  "details": {
    "fieldErrors": { "slug": ["Required"] }
  }
}
Status CodeDescription
200Success
201Created
400Bad Request — invalid input or validation failure
401Unauthorized — missing or invalid API key
403Forbidden — plan limit reached or feature not available
404Not Found
409Conflict — duplicate slug, domain, or version mismatch
429Rate Limited
500Server Error

Rate Limits

Endpoint TypeLimit
Standard (reads)100 requests/minute
Standard (writes)30 requests/minute
Heartbeat120 requests/minute
BeaconUnlimited
Rate limit headers are included in responses:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99
X-RateLimit-Reset: 1704844800

API Categories

Status Pages

Create and configure status pages

Status Page Design

Draft, validate, and publish page designs with versioning

Incidents

Create and manage incidents

Services

Manage status page services

Uptime Monitors

HTTP endpoint monitoring

Heartbeat

Monitor background jobs

Notifications

Configure alert channels

Webhooks

Receive real-time events