Skip to content

Get maintenance mode

The platform.maintenance.get operation: GET /api/v1/platform/maintenance in the REST API and the platform_maintenance_get tool in the MCP server.

GET/api/v1/platform/maintenance

Whether maintenance mode is on (docs/runbooks/restore-drill.md), and who switched it last, when and why. While it is on, every request answers 503 with Retry-After (except the health endpoint and the platform console's maintenance page) and the job runner does nothing. Platform admins and support staff.

At a glance

  • REST: GET /api/v1/platform/maintenance
  • MCP tool: platform_maintenance_get
  • Operation ID: platform.maintenance.get
  • Scope: Platform
  • Permission: platform:read
  • Risk tier: read
  • Dry run: Not supported
  • Idempotency: Not needed (read only)
  • Modes: Test and live
  • Authentication: API key with the platform:read scope
  • Since: M13

Request

Query parameters

This operation takes no query parameters.

Response

200 OK with a JSON object:

FieldTypeDescription
object"platform_maintenance"
onbooleanWhile on, requests answer 503 and job runner passes do nothing.
reasonstring or nullWhy it was last switched.
sincedate-time or nullWhen it was last switched (null: never).
bystring or nullWho switched it last: a user (usr_…) or a system actor.
retryAfterSecondsintegerWhat Retry-After says to callers while it is on.

Examples

Off, after a restore drill

HTTP
GET /api/v1/platform/maintenance
Authorization: Bearer or_test_…

Response (200):

JSON
{
  "object": "platform_maintenance",
  "on": false,
  "reason": "Restore finished and verified; production points at the restored cluster.",
  "since": "2026-11-03T09:00:00.000Z",
  "by": "usr_01m5wvkry1e6w94sjxgme33fsa",
  "retryAfterSeconds": 120
}

Errors

CodeHTTP statusWhenWhat to do
permission_denied403You aren't platform staff with read access to the platform console.Ask an organization owner or admin for a role or scope that allows this action.

It can also return these common errors: validation_failed, api_version_unsupported, authentication_required, api_key_invalid, resource_not_found, dry_run_not_supported, rate_limited, internal_error.