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" });