Better Stack Status Pages API
Manage public and private status pages
Manage public and private status pages
openapi: 3.0.3
info:
title: Better Stack Escalation Policies Status Pages API
description: Better Stack is a comprehensive infrastructure monitoring and observability platform combining uptime monitoring, log management, incident management, and status pages. The API covers both the Uptime (on-call, monitors, heartbeats, status pages) and Telemetry (logs, metrics, sources, dashboards, alerts) product areas.
version: v2
contact:
name: Better Stack Support
url: https://betterstack.com/docs/
x-generated-from: documentation
servers:
- url: https://uptime.betterstack.com/api/v2
description: Better Stack Uptime API v2
- url: https://uptime.betterstack.com/api/v3
description: Better Stack Uptime API v3 (incidents, policies)
- url: https://betterstack.com/api/v2
description: Better Stack Telemetry API v2
security:
- bearerAuth: []
tags:
- name: Status Pages
description: Manage public and private status pages
paths:
/status-pages:
get:
operationId: listStatusPages
summary: Better Stack List Status Pages
description: Returns a paginated list of all status pages.
tags:
- Status Pages
parameters:
- name: team_name
in: query
description: Filter by team name when using a global API token.
required: false
schema:
type: string
example: my-team
responses:
'200':
description: Paginated list of status pages.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusPageListResponse'
examples:
ListStatusPages200Example:
summary: Default listStatusPages 200 response
x-microcks-default: true
value:
data:
- id: '700010'
type: status_page
attributes:
company_name: Acme Corp
company_website: https://acme.com
subdomain: acme
custom_domain: status.acme.com
timezone: UTC
aggregate_state: operational
theme: light
created_at: '2025-03-01T00:00:00Z'
updated_at: '2026-04-01T00:00:00Z'
pagination:
first: https://uptime.betterstack.com/api/v2/status-pages?page=1
last: https://uptime.betterstack.com/api/v2/status-pages?page=1
prev: null
next: null
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
post:
operationId: createStatusPage
summary: Better Stack Create Status Page
description: Creates a new status page.
tags:
- Status Pages
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StatusPageCreateRequest'
examples:
CreateStatusPageRequestExample:
summary: Default createStatusPage request
x-microcks-default: true
value:
company_name: Acme Corp
company_website: https://acme.com
subdomain: acme
timezone: UTC
responses:
'201':
description: Status page created successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusPageSingleResponse'
examples:
CreateStatusPage201Example:
summary: Default createStatusPage 201 response
x-microcks-default: true
value:
data:
id: '700010'
type: status_page
attributes:
company_name: Acme Corp
company_website: https://acme.com
subdomain: acme
timezone: UTC
aggregate_state: operational
created_at: '2026-04-19T10:00:00Z'
updated_at: '2026-04-19T10:00:00Z'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/status-pages/{id}:
get:
operationId: getStatusPage
summary: Better Stack Get Status Page
description: Returns a single status page by ID.
tags:
- Status Pages
parameters:
- name: id
in: path
required: true
description: The unique identifier of the status page.
schema:
type: string
example: '700010'
responses:
'200':
description: Status page details.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusPageSingleResponse'
examples:
GetStatusPage200Example:
summary: Default getStatusPage 200 response
x-microcks-default: true
value:
data:
id: '700010'
type: status_page
attributes:
company_name: Acme Corp
company_website: https://acme.com
subdomain: acme
custom_domain: status.acme.com
timezone: UTC
aggregate_state: operational
theme: light
created_at: '2025-03-01T00:00:00Z'
updated_at: '2026-04-01T00:00:00Z'
'404':
description: Status page not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
patch:
operationId: updateStatusPage
summary: Better Stack Update Status Page
description: Updates an existing status page.
tags:
- Status Pages
parameters:
- name: id
in: path
required: true
description: The unique identifier of the status page.
schema:
type: string
example: '700010'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StatusPageUpdateRequest'
examples:
UpdateStatusPageRequestExample:
summary: Default updateStatusPage request
x-microcks-default: true
value:
company_name: Acme Corp Updated
theme: dark
responses:
'200':
description: Status page updated successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/StatusPageSingleResponse'
examples:
UpdateStatusPage200Example:
summary: Default updateStatusPage 200 response
x-microcks-default: true
value:
data:
id: '700010'
type: status_page
attributes:
company_name: Acme Corp Updated
theme: dark
updated_at: '2026-04-19T10:00:00Z'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
delete:
operationId: deleteStatusPage
summary: Better Stack Delete Status Page
description: Deletes an existing status page.
tags:
- Status Pages
parameters:
- name: id
in: path
required: true
description: The unique identifier of the status page.
schema:
type: string
example: '700010'
responses:
'204':
description: Status page deleted successfully.
'404':
description: Status page not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
schemas:
StatusPageUpdateRequest:
title: Status Page Update Request
description: Request body for updating a status page (all fields optional).
type: object
properties:
company_name:
type: string
description: New company name.
example: Acme Corp Updated
custom_domain:
type: string
description: New custom domain.
example: status.acme.com
theme:
type: string
enum:
- light
- dark
description: New theme.
example: dark
StatusPageSingleResponse:
title: Status Page Single Response
description: Single status page response.
type: object
properties:
data:
$ref: '#/components/schemas/StatusPageObject'
StatusPageAttributes:
title: Status Page Attributes
description: Attributes of a status page.
type: object
properties:
company_name:
type: string
description: Name of the company displayed on the status page.
example: Acme Corp
company_website:
type: string
format: uri
description: URL of the company website.
example: https://acme.com
subdomain:
type: string
description: Subdomain for the status page (yourname.betteruptime.com).
example: acme
custom_domain:
type: string
nullable: true
description: Custom domain for the status page.
example: status.acme.com
timezone:
type: string
description: Timezone for the status page.
example: UTC
theme:
type: string
description: UI theme for the status page.
enum:
- light
- dark
example: light
aggregate_state:
type: string
description: Overall operational state across all monitored resources.
enum:
- operational
- degraded_performance
- partial_outage
- major_outage
- maintenance
- downtime
example: operational
created_at:
type: string
format: date-time
description: When the status page was created.
example: '2025-03-01T00:00:00Z'
updated_at:
type: string
format: date-time
description: When the status page was last updated.
example: '2026-04-01T00:00:00Z'
ErrorResponse:
title: Error Response
description: Standard error response.
type: object
properties:
errors:
type: array
description: List of error details.
items:
type: object
properties:
title:
type: string
description: Human-readable error title.
example: Unauthorized
detail:
type: string
description: Detailed error message.
example: Invalid API token
StatusPageCreateRequest:
title: Status Page Create Request
description: Request body for creating a status page.
type: object
required:
- company_name
- subdomain
properties:
company_name:
type: string
description: Company name displayed on the page.
example: Acme Corp
company_website:
type: string
format: uri
description: Company website URL.
example: https://acme.com
subdomain:
type: string
description: Subdomain slug.
example: acme
timezone:
type: string
description: Timezone for the page.
example: UTC
theme:
type: string
enum:
- light
- dark
description: Page theme.
example: light
StatusPageListResponse:
title: Status Page List Response
description: Paginated list of status pages.
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/StatusPageObject'
pagination:
$ref: '#/components/schemas/Pagination'
Pagination:
title: Pagination
description: Pagination links for list responses following JSON:API specification.
type: object
properties:
first:
type: string
format: uri
description: URL of the first page.
example: https://uptime.betterstack.com/api/v2/monitors?page=1
last:
type: string
format: uri
description: URL of the last page.
example: https://uptime.betterstack.com/api/v2/monitors?page=5
prev:
type: string
format: uri
nullable: true
description: URL of the previous page, or null.
example: null
next:
type: string
format: uri
nullable: true
description: URL of the next page, or null.
example: https://uptime.betterstack.com/api/v2/monitors?page=2
StatusPageObject:
title: Status Page Object
description: A single status page resource.
type: object
properties:
id:
type: string
description: Unique identifier.
example: '700010'
type:
type: string
description: Resource type.
example: status_page
attributes:
$ref: '#/components/schemas/StatusPageAttributes'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Bearer token authentication. Use a global API token or a team-scoped Uptime API token obtained from Better Stack Settings → API tokens.