Skip to main content
Support

Incidents

Access public platform incident notices with status updates for real-time outage and degradation monitoring.

Base URL: /api/v1/incidents

Auth required: No (public endpoints).

Incidents are platform-wide outage or degradation notices. The API exposes only public, unresolved incidents.


Model Properties

Incidents are read-only via the public API. The following properties are returned in responses.

Property Type Description
id integer Unique identifier
subject string Incident title/subject (max 180 characters)
body text Incident description and details
is_public boolean Whether the incident is publicly visible
started_at datetime When the incident started
resolved_at datetime When the incident was resolved (null if still active)
created_at datetime Creation timestamp
updated_at datetime Last update timestamp

Related objects (included in responses):

Relation Description
scope The affected scope (e.g. platform area, service)
severity Severity level (e.g. critical, major, minor)
state Current state of the incident (e.g. investigating, monitoring, resolved)
updates Array of incident update objects (included in GET /v1/incidents/{id})

Incident Update properties:

Property Type Description
id integer Unique identifier
incident_id integer FK to the parent incident
body text Update message content
created_at datetime When the update was posted

GET /v1/incidents

List all public, unresolved incidents.

Filters applied automatically:

  • is_public = true
  • resolved_at IS NULL

Sorting: By started_at descending (most recent first).

Response 200: Array of incident objects with scope, severity, and state relations.

Example:

[
  {
    "id": 1,
    "title": "...",
    "description": "...",
    "started_at": "2024-01-01T10:00:00Z",
    "resolved_at": null,
    "is_public": true,
    "scope": { ... },
    "severity": { ... },
    "state": { ... }
  }
]

Examples:

curl -s -X GET "https://your-instance.bluerocktel.net/api/v1/incidents" \
  -H "Accept: application/json"
import requests

response = requests.get(
    "https://your-instance.bluerocktel.net/api/v1/incidents"
)
incidents = response.json()
$response = Http::get('https://your-instance.bluerocktel.net/api/v1/incidents');

$incidents = $response->json();
const response = await fetch(
  "https://your-instance.bluerocktel.net/api/v1/incidents",
  {
    headers: { "Accept": "application/json" }
  }
);
const incidents = await response.json();

GET /v1/incidents/{id}

Get a single public incident by ID, including its updates.

URL parameters:

Parameter Type Description
id integer Incident ID

Response 200: Incident object with scope, severity, state, and updates relations. Response 404: Not found or not public.

Examples:

curl -s -X GET "https://your-instance.bluerocktel.net/api/v1/incidents/1" \
  -H "Accept: application/json"
import requests

response = requests.get(
    "https://your-instance.bluerocktel.net/api/v1/incidents/1"
)
incident = response.json()
$response = Http::get('https://your-instance.bluerocktel.net/api/v1/incidents/1');

$incident = $response->json();
const response = await fetch(
  "https://your-instance.bluerocktel.net/api/v1/incidents/1",
  {
    headers: { "Accept": "application/json" }
  }
);
const incident = await response.json();