Skip to content

Status Report Service

Manage incident reports with update timelines. The Status Report Service provides 6 RPC methods.

import {
createOpenStatusClient,
StatusReportStatus,
} from "@openstatus/sdk-node";
const client = createOpenStatusClient({
apiKey: process.env.OPENSTATUS_API_KEY,
});
const { statusReport } = await client.statusReport.v1.StatusReportService
.createStatusReport({
title: "API Degradation",
status: StatusReportStatus.INVESTIGATING,
message: "We are investigating reports of increased latency.",
date: "2024-01-15T10:30:00Z",
pageId: "page_123",
pageComponentIds: ["comp_456"],
notify: true,
});
console.log(`Status report created: ${statusReport?.id}`);

Add a new entry to a status report’s timeline.

import { StatusReportStatus } from "@openstatus/sdk-node";
const { statusReport } = await client.statusReport.v1.StatusReportService
.addStatusReportUpdate({
statusReportId: "sr_123",
status: StatusReportStatus.IDENTIFIED,
message: "The issue has been identified as a database connection problem.",
date: "2024-01-15T11:00:00Z",
notify: true,
});

List status reports with optional status filtering and pagination.

import { StatusReportStatus } from "@openstatus/sdk-node";
const { statusReports, totalSize } = await client.statusReport.v1
.StatusReportService.listStatusReports({
limit: 10,
offset: 0,
statuses: [StatusReportStatus.INVESTIGATING, StatusReportStatus.IDENTIFIED],
});
console.log(`Found ${totalSize} status reports`);

Returns the full report including the updates timeline.

import { StatusReportStatus } from "@openstatus/sdk-node";
const { statusReport } = await client.statusReport.v1.StatusReportService
.getStatusReport({ id: "sr_123" });
console.log(`Title: ${statusReport?.title}`);
console.log(`Status: ${StatusReportStatus[statusReport?.status ?? 0]}`);
for (const update of statusReport?.updates ?? []) {
console.log(` ${update.date}: [${StatusReportStatus[update.status]}] ${update.message}`);
}
const { statusReport } = await client.statusReport.v1.StatusReportService
.updateStatusReport({
id: "sr_123",
title: "Updated Title",
pageComponentIds: ["comp_456", "comp_789"],
});
const { success } = await client.statusReport.v1.StatusReportService
.deleteStatusReport({ id: "sr_123" });