Status Report Service
Not yet available on FTStatus
The FTStatus SDKs aren't available yet. Talk to support if you need programmatic access for your account.
Manage incident reports with update timelines. The Status Report Service provides 6 RPC methods.
Create Status Report
import {
createFTStatusClient,
StatusReportStatus,
} from "@openstatus/sdk-node";
const client = createFTStatusClient({
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 Status Report Update
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
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`);
Get / Update / Delete Status Reports
Get Status Report
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}`);
}
Update Status Report
const { statusReport } = await client.statusReport.v1.StatusReportService
.updateStatusReport({
id: "sr_123",
title: "Updated Title",
pageComponentIds: ["comp_456", "comp_789"],
});
Delete Status Report
const { success } = await client.statusReport.v1.StatusReportService
.deleteStatusReport({ id: "sr_123" });
