> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sazabi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a status report

> Create an incident or maintenance report with its first update, as a draft. Nothing shows on the public page until statusPages.reports.setVisibility publishes it.



## OpenAPI

````yaml /openapi.json post /status-pages/{statusPageId}/reports
openapi: 3.1.1
info:
  title: Sazabi Public API
  version: 1.0.0
  description: >
    Public REST API for Sazabi. Authenticate using a secret API key in the
    Authorization header.


    ## Pagination


    This API uses two pagination strategies depending on the endpoint type:


    ### Cursor-Based Pagination (List Endpoints)


    List endpoints (threads, messages, keys) use cursor-based pagination for
    efficient, consistent results:


    - **Parameters**: `limit` (items per page, default 50, max 100), `cursor`
    (opaque pagination token)

    - **Response**: Includes `nextCursor` field - pass this as `cursor` in the
    next request

    - **End of results**: When `nextCursor` is `null`, there are no more results

    - **Example**: `GET
    /v1/threads?limit=20&cursor=01234567-89ab-cdef-0123-456789abcdef`


    ### Page-Based Pagination (Search Endpoints)


    Search endpoints use page-based pagination due to the underlying search
    engine:


    - **Parameters**: `limit` (items per page, default 20, max 100), `page`
    (1-indexed page number)

    - **Response**: Includes `pagination` object with `page`, `limit`,
    `totalResults`, `totalPages`

    - **Example**: `GET /v1/search/threads?q=error&limit=10&page=2`
servers:
  - url: https://api.sazabi.com/v1
    description: Production
security: []
paths:
  /status-pages/{statusPageId}/reports:
    post:
      tags:
        - StatusPages
      summary: Create a status report
      description: >-
        Create an incident or maintenance report with its first update, as a
        draft. Nothing shows on the public page until
        statusPages.reports.setVisibility publishes it.
      operationId: statusPages.reports.create
      parameters:
        - name: statusPageId
          in: path
          required: true
          schema:
            type: string
            minLength: 1
            maxLength: 64
            description: Status page ID (UUID) or slug.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                kind:
                  enum:
                    - incident
                    - maintenance
                  type: string
                title:
                  type: string
                  minLength: 1
                  maxLength: 200
                scheduledStartAt:
                  type: string
                  format: date-time
                  description: 'Maintenance only: when the window starts.'
                scheduledEndAt:
                  type: string
                  format: date-time
                  description: 'Maintenance only: when the window ends.'
                update:
                  type: object
                  properties:
                    state:
                      enum:
                        - investigating
                        - identified
                        - monitoring
                        - resolved
                        - scheduled
                        - in_progress
                        - completed
                      type: string
                      description: >-
                        Incidents move through investigating, identified,
                        monitoring and resolved; maintenance through scheduled,
                        in_progress and completed.
                    message:
                      type: string
                      minLength: 1
                      maxLength: 10000
                    impacts:
                      type: object
                      propertyNames:
                        type: string
                        pattern: ^[a-z0-9](?:[a-z0-9._-]{0,62}[a-z0-9])?$
                        description: >-
                          Stable key of a section or surface, unique within the
                          page: lowercase letters, digits, '.', '_' and '-'.
                      additionalProperties:
                        anyOf:
                          - enum:
                              - degraded_performance
                              - partial_outage
                              - major_outage
                              - under_maintenance
                            type: string
                            description: How a report affects a surface.
                          - type: 'null'
                      default: {}
                      description: >-
                        Surfaces this update affects, by surface key. List every
                        surface the report affects at this moment; null marks a
                        surface as recovered.
                  required:
                    - state
                    - message
                  description: The report's first update. Saved as a draft with the report.
              required:
                - kind
                - title
                - update
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  report:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                      statusPageId:
                        type: string
                        format: uuid
                      kind:
                        enum:
                          - incident
                          - maintenance
                        type: string
                      title:
                        type: string
                      state:
                        enum:
                          - investigating
                          - identified
                          - monitoring
                          - resolved
                          - scheduled
                          - in_progress
                          - completed
                        type: string
                        description: >-
                          Incidents move through investigating, identified,
                          monitoring and resolved; maintenance through
                          scheduled, in_progress and completed.
                      visibility:
                        enum:
                          - draft
                          - published
                        type: string
                        description: >-
                          draft: visible only to the project's members.
                          published: shown on the public page.
                      startedAt:
                        type: string
                        format: date-time
                      resolvedAt:
                        anyOf:
                          - type: string
                            format: date-time
                          - type: 'null'
                      scheduledStartAt:
                        anyOf:
                          - type: string
                            format: date-time
                          - type: 'null'
                      scheduledEndAt:
                        anyOf:
                          - type: string
                            format: date-time
                          - type: 'null'
                      createdAt:
                        type: string
                        format: date-time
                      updatedAt:
                        type: string
                        format: date-time
                      updates:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              type: string
                              format: uuid
                            state:
                              enum:
                                - investigating
                                - identified
                                - monitoring
                                - resolved
                                - scheduled
                                - in_progress
                                - completed
                              type: string
                              description: >-
                                Incidents move through investigating,
                                identified, monitoring and resolved; maintenance
                                through scheduled, in_progress and completed.
                            message:
                              type: string
                              description: Markdown message shown on the public page.
                            visibility:
                              enum:
                                - draft
                                - published
                              type: string
                              description: >-
                                draft: visible only to the project's members.
                                published: shown on the public page.
                            publishedAt:
                              anyOf:
                                - type: string
                                  format: date-time
                                - type: 'null'
                            createdAt:
                              type: string
                              format: date-time
                            impacts:
                              type: array
                              items:
                                type: object
                                properties:
                                  surfaceId:
                                    type: string
                                    format: uuid
                                  surfaceKey:
                                    type: string
                                  surfaceName:
                                    type: string
                                  impact:
                                    anyOf:
                                      - enum:
                                          - degraded_performance
                                          - partial_outage
                                          - major_outage
                                          - under_maintenance
                                        type: string
                                        description: How a report affects a surface.
                                      - type: 'null'
                                    description: >-
                                      The impact, or null when the surface
                                      recovered in this update.
                                required:
                                  - surfaceId
                                  - surfaceKey
                                  - surfaceName
                                  - impact
                          required:
                            - id
                            - state
                            - message
                            - visibility
                            - publishedAt
                            - createdAt
                            - impacts
                        description: Every update, drafts included, oldest first.
                    required:
                      - id
                      - statusPageId
                      - kind
                      - title
                      - state
                      - visibility
                      - startedAt
                      - resolvedAt
                      - scheduledStartAt
                      - scheduledEndAt
                      - createdAt
                      - updatedAt
                      - updates
                required:
                  - report

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.