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 = trueresolved_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();
On this page