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

Containers

Manage containers (regions, data centers, or environments) on a status page

List containers

get
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)

Responses
200

OK

application/json
get/status_pages/{subdomain}/containers
GET /api/v1/status_pages/{subdomain}/containers HTTP/1.1
Host: next.statuspal.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "slug": "text",
      "name": "text",
      "services": [
        {
          "slug": "text",
          "name": "text",
          "status": "ok"
        }
      ],
      "created_at": "2026-01-01T00:00:00.000Z",
      "updated_at": "2026-01-01T00:00:00.000Z"
    }
  ]
}

Create a container

post
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

Service membership is explicit. It can be set here, or from the service side via scope and containers on the service resource. Per-container service status is not set here — it is updated via notice updates or the operational dashboard.

namestring · max: 255Required
slugstringOptional

Optional URL-safe identifier. If omitted, it is auto-generated from name. If a non-unique value is provided, a numeric suffix is appended (e.g. eu-1).

servicesstring[]Optional

Slugs of the services to include in this container. A container must contain at least one service — an empty array, or a default that would resolve to none, returns 422. An unknown slug returns 422. Defaults to every container-scoped service on the status page. Listing a Global Service converts it to a Container Service scoped to this container.

Example: ["api","database"]
Responses
201

Created

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

{
  "name": "text",
  "slug": "text",
  "services": [
    "api",
    "database"
  ]
}
{
  "data": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "slug": "text",
    "name": "text",
    "services": [
      {
        "slug": "text",
        "name": "text",
        "status": "ok"
      }
    ],
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z"
  }
}

Get a container

get
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)

container_slugstringRequired

Container slug (auto-generated from name)

Responses
200

OK

application/json
get/status_pages/{subdomain}/containers/{container_slug}
GET /api/v1/status_pages/{subdomain}/containers/{container_slug} HTTP/1.1
Host: next.statuspal.io
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "data": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "slug": "text",
    "name": "text",
    "services": [
      {
        "slug": "text",
        "name": "text",
        "status": "ok"
      }
    ],
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z"
  }
}

Delete a container

delete

Deleting a container removes it from every service scoped to it. Any Container Service left in zero containers as a result automatically becomes a Global Service.

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)

container_slugstringRequired

Container slug (auto-generated from name)

Responses
204

Deleted

No content

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

No content

Update a container

patch
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)

container_slugstringRequired

Container slug (auto-generated from name)

Body
namestring · max: 255Optional
servicesstring[]Optional

Replaces the container's entire service membership. Services omitted from the list are excluded from this container. A container must keep at least one service — an empty array returns 422. Delete the container instead. An unknown slug returns 422. A Container Service left in zero containers as a result automatically becomes a Global Service (scope: global). Listing a Global Service converts it to a Container Service scoped to this container.

Example: ["api","database"]
Responses
200

OK

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

{
  "name": "text",
  "services": [
    "api",
    "database"
  ]
}
{
  "data": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "slug": "text",
    "name": "text",
    "services": [
      {
        "slug": "text",
        "name": "text",
        "status": "ok"
      }
    ],
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z"
  }
}

Last updated