OpenStatus Status Report API

Status reports and their updates.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/openstatus-status-report-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

openstatus-status-report-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: OpenStatus Check Status Report API
  description: REST API for the OpenStatus open-source synthetic monitoring and status-page platform. Manage HTTP, TCP, and DNS uptime monitors across 28 global regions, publish status pages, file status reports, work incidents, and run on-demand checks. Authenticate with an API key in the x-openstatus-key header.
  termsOfService: https://www.openstatus.dev/legal/terms
  contact:
    name: OpenStatus Support
    url: https://www.openstatus.dev
    email: ping@openstatus.dev
  license:
    name: AGPL-3.0
    url: https://github.com/openstatusHQ/openstatus/blob/main/LICENSE
  version: '1.0'
servers:
- url: https://api.openstatus.dev/v1
  description: OpenStatus Cloud API
security:
- apiKey: []
tags:
- name: Status Report
  description: Status reports and their updates.
paths:
  /status_report:
    get:
      operationId: getAllStatusReports
      tags:
      - Status Report
      summary: List all status reports
      description: Returns all status reports for the authenticated workspace.
      responses:
        '200':
          description: A list of status reports.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StatusReport'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createStatusReport
      tags:
      - Status Report
      summary: Create a status report
      description: Creates a new status report on a status page.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatusReportInput'
      responses:
        '200':
          description: The created status report.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusReport'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /status_report/{id}:
    parameters:
    - $ref: '#/components/parameters/IdParam'
    get:
      operationId: getStatusReport
      tags:
      - Status Report
      summary: Get a status report
      description: Returns a single status report by its identifier.
      responses:
        '200':
          description: The requested status report.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusReport'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
    delete:
      operationId: deleteStatusReport
      tags:
      - Status Report
      summary: Delete a status report
      description: Deletes a status report by its identifier.
      responses:
        '200':
          description: The status report was deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /status_report_update:
    post:
      operationId: createStatusReportUpdate
      tags:
      - Status Report
      summary: Create a status report update
      description: Appends a timeline update (investigating, identified, monitoring, or resolved) to an existing status report.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StatusReportUpdateInput'
      responses:
        '200':
          description: The created status report update.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusReportUpdate'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    StatusReportInput:
      type: object
      required:
      - title
      - status
      - message
      properties:
        title:
          type: string
        status:
          type: string
          enum:
          - investigating
          - identified
          - monitoring
          - resolved
        message:
          type: string
          description: The first update message for the report.
        date:
          type: string
          format: date-time
        pageId:
          type: integer
        monitorIds:
          type: array
          items:
            type: integer
    StatusReportUpdate:
      type: object
      properties:
        id:
          type: integer
        status:
          type: string
          enum:
          - investigating
          - identified
          - monitoring
          - resolved
        message:
          type: string
        date:
          type: string
          format: date-time
        statusReportId:
          type: integer
    Error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
    StatusReport:
      type: object
      properties:
        id:
          type: integer
        title:
          type: string
        status:
          type: string
          enum:
          - investigating
          - identified
          - monitoring
          - resolved
        pageId:
          type: integer
        monitorIds:
          type: array
          items:
            type: integer
        statusReportUpdateIds:
          type: array
          items:
            type: integer
    StatusReportUpdateInput:
      type: object
      required:
      - status
      - message
      - statusReportId
      properties:
        status:
          type: string
          enum:
          - investigating
          - identified
          - monitoring
          - resolved
        message:
          type: string
        date:
          type: string
          format: date-time
        statusReportId:
          type: integer
  responses:
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: The API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: The request was malformed or failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    IdParam:
      name: id
      in: path
      required: true
      description: The resource identifier.
      schema:
        type: integer
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-openstatus-key
      description: OpenStatus API key, created in the workspace settings.