For the complete documentation index, see llms.txt. This page is also available as Markdown.

Notices

Manage incidents, maintenance events, and info notices

List notices

get
/status_pages/{subdomain}/notices
Authorizations
AuthorizationstringRequired

Organization API key — issue one via the Rails console (management UI coming soon)

Path parameters
subdomainstringRequired

Status page subdomain (e.g. acme-status)

Query parameters
notice_typestring · enumOptional

Filter by notice type

Possible values:
statusstringOptional

Filter by status (e.g. investigating, resolved, scheduled)

pageinteger · min: 1OptionalDefault: 1
per_pageinteger · min: 1 · max: 100OptionalDefault: 20
Responses
200

OK

application/json
get/status_pages/{subdomain}/notices
GET /api/v1/status_pages/{subdomain}/notices HTTP/1.1
Host: next.statuspal.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "notice_type": "incident",
      "title": "text",
      "status": "text",
      "severity": "major",
      "lifecycle": "pending",
      "published": true,
      "starts_at": "2026-01-01T00:00:00.000Z",
      "ends_at": "2026-01-01T00:00:00.000Z",
      "latest_update": {
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "status": "text",
        "body": "text",
        "posted_at": "2026-01-01T00:00:00.000Z",
        "service_statuses": [
          {
            "service_slug": "text",
            "service_name": "text",
            "container_slug": "text",
            "container_name": "text",
            "status": "ok"
          }
        ]
      },
      "created_at": "2026-01-01T00:00:00.000Z",
      "updated_at": "2026-01-01T00:00:00.000Z"
    }
  ],
  "meta": {
    "current_page": 1,
    "per_page": 1,
    "total_count": 1,
    "total_pages": 1
  }
}

Create a notice

post
/status_pages/{subdomain}/notices

Creates a notice. Optionally include initial_update to attach the first timeline entry in the same request — this is the recommended approach for opening an incident or scheduling a maintenance window.

Authorizations
AuthorizationstringRequired

Organization API key — issue one via the Rails console (management UI coming soon)

Path parameters
subdomainstringRequired

Status page subdomain (e.g. acme-status)

Body
notice_typestring · enumRequiredPossible values:
titlestring · max: 255Required
severitystring · enum · nullableOptionalPossible values:
publishedbooleanOptionalDefault: false
starts_atstring · date-timeOptional

Required for incident and maintenance types.

ends_atstring · date-time · nullableOptional
Responses
201

Created

application/json
post/status_pages/{subdomain}/notices
POST /api/v1/status_pages/{subdomain}/notices HTTP/1.1
Host: next.statuspal.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 376

{
  "notice_type": "incident",
  "title": "API Latency Degradation",
  "severity": "major",
  "starts_at": "2030-01-15T14:00:00Z",
  "initial_update": {
    "status": "investigating",
    "body": "We are investigating elevated API response times.",
    "service_statuses": [
      {
        "service_slug": "api",
        "container_slug": "eu-region",
        "status": "major"
      },
      {
        "service_slug": "api",
        "container_slug": "us-region",
        "status": "minor"
      }
    ]
  }
}
{
  "data": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "notice_type": "incident",
    "title": "text",
    "status": "text",
    "severity": "major",
    "lifecycle": "pending",
    "published": true,
    "starts_at": "2026-01-01T00:00:00.000Z",
    "ends_at": "2026-01-01T00:00:00.000Z",
    "latest_update": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "status": "text",
      "body": "text",
      "posted_at": "2026-01-01T00:00:00.000Z",
      "service_statuses": [
        {
          "service_slug": "text",
          "service_name": "text",
          "container_slug": "text",
          "container_name": "text",
          "status": "ok"
        }
      ]
    },
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z",
    "updates": [
      {
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "status": "text",
        "body": "text",
        "posted_at": "2026-01-01T00:00:00.000Z",
        "service_statuses": [
          {
            "service_slug": "text",
            "service_name": "text",
            "container_slug": "text",
            "container_name": "text",
            "status": "ok"
          }
        ]
      }
    ]
  }
}

Get a notice

get
/status_pages/{subdomain}/notices/{notice_id}
Authorizations
AuthorizationstringRequired

Organization API key — issue one via the Rails console (management UI coming soon)

Path parameters
subdomainstringRequired

Status page subdomain (e.g. acme-status)

notice_idstring · uuidRequired
Responses
200

OK

application/json
get/status_pages/{subdomain}/notices/{notice_id}
GET /api/v1/status_pages/{subdomain}/notices/{notice_id} HTTP/1.1
Host: next.statuspal.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "notice_type": "incident",
    "title": "text",
    "status": "text",
    "severity": "major",
    "lifecycle": "pending",
    "published": true,
    "starts_at": "2026-01-01T00:00:00.000Z",
    "ends_at": "2026-01-01T00:00:00.000Z",
    "latest_update": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "status": "text",
      "body": "text",
      "posted_at": "2026-01-01T00:00:00.000Z",
      "service_statuses": [
        {
          "service_slug": "text",
          "service_name": "text",
          "container_slug": "text",
          "container_name": "text",
          "status": "ok"
        }
      ]
    },
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z",
    "updates": [
      {
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "status": "text",
        "body": "text",
        "posted_at": "2026-01-01T00:00:00.000Z",
        "service_statuses": [
          {
            "service_slug": "text",
            "service_name": "text",
            "container_slug": "text",
            "container_name": "text",
            "status": "ok"
          }
        ]
      }
    ]
  }
}

Delete a notice

delete
/status_pages/{subdomain}/notices/{notice_id}
Authorizations
AuthorizationstringRequired

Organization API key — issue one via the Rails console (management UI coming soon)

Path parameters
subdomainstringRequired

Status page subdomain (e.g. acme-status)

notice_idstring · uuidRequired
Responses
204

Deleted

No content

delete/status_pages/{subdomain}/notices/{notice_id}
DELETE /api/v1/status_pages/{subdomain}/notices/{notice_id} HTTP/1.1
Host: next.statuspal.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Update a notice

patch
/status_pages/{subdomain}/notices/{notice_id}

Updates notice metadata (title, severity, scheduled times, published flag). To move the status forward and add a timeline entry, use the Notice Updates resource.

Authorizations
AuthorizationstringRequired

Organization API key — issue one via the Rails console (management UI coming soon)

Path parameters
subdomainstringRequired

Status page subdomain (e.g. acme-status)

notice_idstring · uuidRequired
Body

Edits notice metadata only. Use the Notice Updates resource to change status.

titlestring · max: 255Optional
severitystring · enum · nullableOptionalPossible values:
publishedbooleanOptional
starts_atstring · date-timeOptional
ends_atstring · date-time · nullableOptional
Responses
200

OK

application/json
patch/status_pages/{subdomain}/notices/{notice_id}
PATCH /api/v1/status_pages/{subdomain}/notices/{notice_id} HTTP/1.1
Host: next.statuspal.io
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 128

{
  "title": "text",
  "severity": "major",
  "published": true,
  "starts_at": "2026-01-01T00:00:00.000Z",
  "ends_at": "2026-01-01T00:00:00.000Z"
}
{
  "data": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "notice_type": "incident",
    "title": "text",
    "status": "text",
    "severity": "major",
    "lifecycle": "pending",
    "published": true,
    "starts_at": "2026-01-01T00:00:00.000Z",
    "ends_at": "2026-01-01T00:00:00.000Z",
    "latest_update": {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "status": "text",
      "body": "text",
      "posted_at": "2026-01-01T00:00:00.000Z",
      "service_statuses": [
        {
          "service_slug": "text",
          "service_name": "text",
          "container_slug": "text",
          "container_name": "text",
          "status": "ok"
        }
      ]
    },
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z",
    "updates": [
      {
        "id": "123e4567-e89b-12d3-a456-426614174000",
        "status": "text",
        "body": "text",
        "posted_at": "2026-01-01T00:00:00.000Z",
        "service_statuses": [
          {
            "service_slug": "text",
            "service_name": "text",
            "container_slug": "text",
            "container_name": "text",
            "status": "ok"
          }
        ]
      }
    ]
  }
}

Last updated