EvoHub Docs Sign in

Status API › Maintenance

Schedule maintenance

Use with AI
View as MarkdownThis page as plain text, for pasting into an AI tool Open in ClaudeAsk Claude questions about this page Open in ChatGPTAsk ChatGPT questions about this page
Connect to Cursor / VS Code / ClaudeSearch and read these docs from your AI tool (MCP server)

MCP server URL

https://docs-dev.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs-docs https://docs-dev.evohub.io/mcp

Claude (claude.ai and Claude Desktop): Settings → Connectors → Add custom connector, and paste the URL above.

Claude Desktop — claude_desktop_config.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs-dev.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

{
  "mcpServers": {
    "evohub-docs-docs": {
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs-docs": {
      "type": "http",
      "url": "https://docs-dev.evohub.io/mcp"
    }
  }
}
POST/api/v1/pages/{pageID}/maintenances

Schedules a maintenance window on the page. title, scheduled_start and scheduled_end are required. With a body, confirmed subscribers who follow an affected component (or the whole page) are mailed.

Permission (API-key scope): status:maintenance:write.

Authorization

Any one of:

Parameters

Path parameters

  • pageID string (uuid) required
    The status page's id (a UUID).
    Example: 3f6c2a1e-8b4d-4f7a-9c21-5d0e7a9b1c42

Request body required

Content type: application/json

Type: object

  • title string required
  • body string
  • status MaintenanceStatus
    One of: scheduled in_progress completed
  • scheduled_start string (date-time) required
  • scheduled_end string (date-time) required
  • affected_component_ids array of string (uuid)
    Create only; ignored on update. Components of this page; any other id is skipped.
  • managed_in ManagedIn
    Create only; ignored on update.
    One of: oncall status_page

Responses

201

The window.

Content type: application/json

Type: object

  • data Maintenance required
    Show Maintenance properties
    • id string (uuid) required
    • org_id string required
    • page_id string (uuid) required
    • title string required
    • body string required
    • status MaintenanceStatus required
      One of: scheduled in_progress completed
    • scheduled_start string (date-time) required
    • scheduled_end string (date-time) required
    • created_at string (date-time) required
    • updated_at string (date-time) required
    • managed_in ManagedIn required
      One of: oncall status_page
    • affected_component_ids array of string (uuid) required
    • updates array of MaintenanceUpdate required
      Show MaintenanceUpdate properties
      • id string (uuid)
      • maintenance_id string (uuid)
      • status MaintenanceStatus
        One of: scheduled in_progress completed
      • body string
      • created_at string (date-time)
  • success boolean required
    Value: true

400

A field is missing or invalid (VALIDATION_ERROR); the message names it, or the body is not valid (INVALID_BODY).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      This request's id, also in X-Request-ID.

401

No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      This request's id, also in X-Request-ID.

403

The key lacks the scope this endpoint needs (FORBIDDEN).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      This request's id, also in X-Request-ID.

404

No such page (PAGE_NOT_FOUND, or NOT_FOUND for a page the caller cannot see).

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      This request's id, also in X-Request-ID.

429

Too many requests (RATE_LIMITED). Wait Retry-After seconds.

Headers

  • Retry-After integer
    Seconds to wait.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      This request's id, also in X-Request-ID.

500

Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.

Content type: application/json

Type: Error

  • error object required
    • code string required
      Machine-readable code. Branch on this.
    • message string required
      Human-readable explanation.
    • request_id string
      This request's id, also in X-Request-ID.

Example request

curl -X POST 'https://evohub.io/api/v1/pages/3f6c2a1e-8b4d-4f7a-9c21-5d0e7a9b1c42/maintenances' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <TOKEN>' \
  -d '{
  "body": "Expect up to five minutes of read-only mode.",
  "title": "Database upgrade",
  "managed_in": "status_page",
  "scheduled_end": "2026-10-13T00:00:00Z",
  "scheduled_start": "2026-10-12T22:00:00Z",
  "affected_component_ids": [
    "a7c1e3f5-2b4d-4c6e-8f0a-1b3d5f7a9c2e"
  ]
}'

Last updated