API Documentation

Access provider status, incidents, and historical data programmatically.

Contents

Authentication

All API requests require authentication using an API key. API keys are available to Pro and Enterprise subscribers. You can create and manage your API keys from the dashboard.

Using Your API Key

Include your API key using one of these two methods:

Authorization Header (recommended):

Authorization: Bearer civ_your_api_key_here

The "Bearer " prefix is required per RFC 6750.

X-API-Key Header:

X-API-Key: civ_your_api_key_here

Rate Limits

API requests are limited to 1,000 requests per hour per API key.

Rate limit headers are included in all responses:

Endpoints

Base URL: https://canivibe.com/api/v1

GET /providers

List all tracked AI providers with their current status.

Example Response

{
  "providers": [
    {
      "id": "claude",
      "name": "Claude (Anthropic)",
      "status": "operational",
      "last_checked": "2025-01-15T10:30:00Z"
    },
    {
      "id": "openai",
      "name": "OpenAI",
      "status": "operational",
      "last_checked": "2025-01-15T10:30:00Z"
    }
  ]
}
GET /status

Get current status for all or specific providers.

Query Parameters

Parameter Description
provider optional Filter by provider ID. Comma-separated for multiple providers.

Example Request

GET /api/v1/status?provider=claude,openai

Example Response

{
  "overall": "operational",
  "providers": [
    {
      "id": "claude",
      "name": "Claude (Anthropic)",
      "status": "operational",
      "description": "All systems operational",
      "last_checked": "2025-01-15T10:30:00Z"
    }
  ],
  "timestamp": "2025-01-15T10:30:00Z"
}
GET /incidents

Get historical incidents within a date range.

Query Parameters

Parameter Description
provider optional Filter by provider ID
start optional Start date (YYYY-MM-DD). Defaults to 30 days ago.
end optional End date (YYYY-MM-DD). Defaults to today.

Example Response

{
  "incidents": [
    {
      "id": "inc_123",
      "provider_id": "claude",
      "provider_name": "Claude (Anthropic)",
      "title": "API Performance Degradation",
      "status": "resolved",
      "impact": "minor",
      "started_at": "2025-01-10T14:00:00Z",
      "resolved_at": "2025-01-10T16:30:00Z"
    }
  ],
  "query": {
    "start": "2024-12-16",
    "end": "2025-01-15",
    "provider": null
  }
}
GET /history

Get daily status history for providers.

Query Parameters

Parameter Description
provider optional Filter by provider ID
days optional Number of days of history (1-90). Defaults to 30.

Example Response

{
  "history": [
    {
      "provider_id": "claude",
      "provider_name": "Claude (Anthropic)",
      "days": [
        {"date": "2025-01-15", "status": "operational"},
        {"date": "2025-01-14", "status": "degraded"},
        {"date": "2025-01-13", "status": "operational"}
      ]
    }
  ],
  "query": {
    "days": 30,
    "provider": null
  }
}

Error Handling

The API returns standard HTTP status codes and JSON error responses.

Error Response Format

{
  "error": "Unauthorized",
  "code": "invalid_api_key",
  "message": "Invalid or expired API key"
}

Status Codes

Code Description
200 Success
400 Bad request (invalid parameters)
401 Unauthorized (missing or invalid API key)
403 Forbidden (valid key but insufficient subscription)
429 Rate limit exceeded
500 Internal server error

Error Codes

Code Description
missing_api_key No API key provided in the request
invalid_api_key API key is invalid or has been revoked
subscription_required API access requires a Pro or Enterprise subscription
rate_limit_exceeded Too many requests, try again later