EvoHub DocsEvoHub Docs Sign in

End a maintenance window

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.evohub.io/mcp

Claude Code

claude mcp add --transport http evohub-docs https://docs.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": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://docs.evohub.io/mcp"
      ]
    }
  }
}

Cursor — ~/.cursor/mcp.json

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

VS Code — .vscode/mcp.json

{
  "servers": {
    "evohub-docs": {
      "type": "http",
      "url": "https://docs.evohub.io/mcp"
    }
  }
}
POST/api/v1/maintenance-windows/{id}/complete

Ends the window and keeps it as completed history: paging resumes, the uptime silences are cleared and the status-page maintenance is marked completed. Completing a completed window changes nothing.

The body is optional. ended_at records when the work actually finished, for a window closed after the fact; it must be between the window's start and now (else 400 INVALID_ENDED_AT). Without it the window ends now. The status page dates its closing update at the same time.

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

Authorization

Any one of:

Parameters

Path parameters

  • id string required
    The maintenance window's id.
    Example: c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f

Request body

Content type: application/json

Type: object

  • ended_at string (date-time)
    When the work finished. Between the window's start and now.

Responses

200

The window.

Content type: application/json

Type: object

  • data MaintenanceWindow required
    Show MaintenanceWindow properties
    • id string
    • org_id string
    • title string
    • body string
      What the maintenance does.
    • starts_at string (date-time)
    • ends_at string (date-time)
    • created_by string
    • created_at string (date-time)
    • ended_at string (date-time)
      Set when the window was ended early.
    • silence_oncall boolean
      Whether paging is held back during the window.
  • success boolean required
    Value: true

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
      The request's X-Request-ID. Quote it to support.

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
      The request's X-Request-ID. Quote it to support.

404

No maintenance window with this id in your organization (NOT_FOUND).

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
      The request's X-Request-ID. Quote it to support.

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
      The request's X-Request-ID. Quote it to support.

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
      The request's X-Request-ID. Quote it to support.

Example request

curl -X POST 'https://evohub.io/api/v1/maintenance-windows/c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f/complete' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer <TOKEN>' \
  -d '{
  "ended_at": "2026-10-13T00:00:00Z"
}'