Uptimely Scheduled Maintenances API

Scheduled maintenance windows and their current state.

GitHub OpenAPI

Operations 1

GET /v1/scheduled-maintenances List scheduled maintenances #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/getuptimely-com:getuptimely-com-scheduled-maintenances-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

getuptimely-com-scheduled-maintenances-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Uptimely Scheduled Maintenances API
  version: 0.1.0
  description: 'The public Uptimely REST API — uptime monitoring, incidents, alerts and status pages for people and agents. Authenticate with an `uptimely_live_` API key via `Authorization: Bearer`.'
  contact:
    name: Uptimely support
    url: https://getuptimely.com
    email: support@devino.ca
servers:
- url: https://app.getuptimely.com
  description: Production
security:
- bearerAuth: []
tags:
- name: Scheduled Maintenances
  description: Scheduled maintenance windows and their current state.
paths:
  /v1/scheduled-maintenances:
    get:
      operationId: listScheduledMaintenances
      summary: List scheduled maintenances
      description: Lists the project's scheduled maintenance windows, newest window first, cursor-paginated.
      tags:
      - Scheduled Maintenances
      security:
      - bearerAuth: []
      x-scopes:
      - maintenance:read
      x-entitlement: public_api_read
      x-idempotent: false
      x-meter:
        metric: API_CALLS
        cost: 1
      parameters:
      - in: query
        name: limit
        schema:
          default: 25
          description: Maximum number of items to return (1-100).
          example: 25
          type: integer
          minimum: 1
          maximum: 100
        description: Maximum number of items to return (1-100).
      - in: query
        name: after
        schema:
          description: Opaque cursor from a previous page's `next_cursor` — omit for the first page. Reusing a cursor with DIFFERENT query parameters (e.g. a different `limit`) answers 400 `validation_failed`.
          type: string
        description: Opaque cursor from a previous page's `next_cursor` — omit for the first page. Reusing a cursor with DIFFERENT query parameters (e.g. a different `limit`) answers 400 `validation_failed`.
      responses:
        '200':
          description: One page of maintenance windows.
          headers:
            x-request-id:
              required: true
              description: Unique id for this request — present on EVERY response; quote it in support requests.
              schema:
                type: string
                description: Unique id for this request — present on EVERY response; quote it in support requests.
            RateLimit-Policy:
              description: IETF draft-11 quota policies, e.g. `"per-key-minute";q=300;w=60, "api-calls-period";q=100000;w=2678400`.
              schema:
                description: IETF draft-11 quota policies, e.g. `"per-key-minute";q=300;w=60, "api-calls-period";q=100000;w=2678400`.
                type: string
            RateLimit:
              description: 'IETF draft-11 current-window state of the primary policy: remaining requests (`r`) and seconds to reset (`t`).'
              schema:
                description: 'IETF draft-11 current-window state of the primary policy: remaining requests (`r`) and seconds to reset (`t`).'
                type: string
            X-RateLimit-Limit:
              description: Primary-window request allowance.
              schema:
                description: Primary-window request allowance.
                type: string
            X-RateLimit-Remaining:
              description: Requests remaining in the primary window.
              schema:
                description: Requests remaining in the primary window.
                type: string
            X-RateLimit-Reset:
              description: Unix epoch seconds when the primary window resets.
              schema:
                description: Unix epoch seconds when the primary window resets.
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledMaintenanceList'
        '400':
          description: Malformed request — `validation_failed` (see `errors`).
          headers:
            x-request-id:
              required: true
              description: Unique id for this request — present on EVERY response; quote it in support requests.
              schema:
                type: string
                description: Unique id for this request — present on EVERY response; quote it in support requests.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '401':
          description: Missing or invalid credentials — `missing_credentials`, `invalid_api_key` or `invalid_token`.
          headers:
            x-request-id:
              required: true
              description: Unique id for this request — present on EVERY response; quote it in support requests.
              schema:
                type: string
                description: Unique id for this request — present on EVERY response; quote it in support requests.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '403':
          description: Authenticated but denied — `insufficient_scope`, `feature_not_enabled` or `unsupported_credential_type`.
          headers:
            x-request-id:
              required: true
              description: Unique id for this request — present on EVERY response; quote it in support requests.
              schema:
                type: string
                description: Unique id for this request — present on EVERY response; quote it in support requests.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '429':
          description: Over a limit — `rate_limited` (per-key burst, or the lower per-key ceiling that list/history/export endpoints share; retry after `Retry-After`) or `quota_exhausted` (monthly plan allowance; resets at month start).
          headers:
            x-request-id:
              required: true
              description: Unique id for this request — present on EVERY response; quote it in support requests.
              schema:
                type: string
                description: Unique id for this request — present on EVERY response; quote it in support requests.
            RateLimit-Policy:
              description: IETF draft-11 quota policies, e.g. `"per-key-minute";q=300;w=60, "api-calls-period";q=100000;w=2678400`.
              schema:
                description: IETF draft-11 quota policies, e.g. `"per-key-minute";q=300;w=60, "api-calls-period";q=100000;w=2678400`.
                type: string
            RateLimit:
              description: 'IETF draft-11 current-window state of the primary policy: remaining requests (`r`) and seconds to reset (`t`).'
              schema:
                description: 'IETF draft-11 current-window state of the primary policy: remaining requests (`r`) and seconds to reset (`t`).'
                type: string
            X-RateLimit-Limit:
              description: Primary-window request allowance.
              schema:
                description: Primary-window request allowance.
                type: string
            X-RateLimit-Remaining:
              description: Requests remaining in the primary window.
              schema:
                description: Requests remaining in the primary window.
                type: string
            X-RateLimit-Reset:
              description: Unix epoch seconds when the primary window resets.
              schema:
                description: Unix epoch seconds when the primary window resets.
                type: string
            Retry-After:
              description: Seconds until the exceeded window resets.
              schema:
                description: Seconds until the exceeded window resets.
                type: string
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
        '500':
          description: Unexpected server error — `internal_error`; quote `request_id` when reporting.
          headers:
            x-request-id:
              required: true
              description: Unique id for this request — present on EVERY response; quote it in support requests.
              schema:
                type: string
                description: Unique id for this request — present on EVERY response; quote it in support requests.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/Problem'
components:
  schemas:
    ProblemNext:
      type: object
      properties:
        tool:
          type: string
          description: Name of the MCP tool to call next.
          example: request_scopes
        args:
          description: Arguments to pass to that tool.
          type: object
          propertyNames:
            type: string
          additionalProperties: {}
      required:
      - tool
      additionalProperties: false
      description: The MCP tool that resolves a problem, with its arguments.
    Problem:
      type: object
      properties:
        type:
          type: string
          description: URI identifying the problem class; resolves to its docs page.
          example: https://getuptimely.com/docs/api/problems/validation-failed
        title:
          type: string
          description: Short human-readable summary of the problem class. Never parse it — switch on `code`.
        status:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
          description: HTTP status code, duplicated from the response.
          example: 400
        detail:
          description: Human-readable explanation specific to this occurrence.
          type: string
        code:
          type: string
          enum:
          - missing_credentials
          - invalid_api_key
          - invalid_token
          - unsupported_credential_type
          - insufficient_scope
          - feature_not_enabled
          - validation_failed
          - resource_not_found
          - rate_limited
          - quota_exhausted
          - idempotency_key_reused
          - idempotency_in_progress
          - internal_error
          description: Stable machine-readable problem code — the value SDKs branch on.
        request_id:
          type: string
          description: The x-request-id of the failing request — quote it in support requests.
        errors:
          description: Field-level failures (present on validation_failed).
          type: array
          items:
            $ref: '#/components/schemas/FieldError'
        next:
          description: The MCP tool that resolves this problem (present on insufficient_scope and quota_exhausted).
          $ref: '#/components/schemas/ProblemNext'
      required:
      - type
      - title
      - status
      - code
      - request_id
      additionalProperties: false
      description: RFC 9457 problem document with the Uptimely `code` extension.
    ScheduledMaintenance:
      type: object
      properties:
        id:
          type: string
          description: Stable opaque maintenance id.
        title:
          type: string
          description: Maintenance window title.
        description:
          description: Optional longer description.
          type:
          - string
          - 'null'
        state:
          type: object
          properties:
            name:
              type: string
            color:
              type:
              - string
              - 'null'
          required:
          - name
          - color
          additionalProperties: false
          description: Current window state, e.g. "Scheduled", "Ongoing", "Completed".
        starts_at:
          type: string
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          format: date-time
          description: Window start, ISO-8601 UTC.
        ends_at:
          type: string
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          format: date-time
          description: Window end, ISO-8601 UTC.
        created_at:
          type: string
          pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
          format: date-time
          description: Creation time, ISO-8601 UTC.
      required:
      - id
      - title
      - description
      - state
      - starts_at
      - ends_at
      - created_at
      additionalProperties: false
      description: A scheduled maintenance window and its current state.
    FieldError:
      type: object
      properties:
        pointer:
          type: string
          description: RFC 6901 JSON Pointer to the offending request field.
          example: /name
        code:
          type: string
          description: Machine-readable per-field validation code.
          example: invalid_type
        message:
          type: string
          description: Human-readable explanation for this field.
      required:
      - pointer
      - code
      - message
      additionalProperties: false
      description: A single field-level validation failure.
    ScheduledMaintenanceList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ScheduledMaintenance'
          description: The current page of results.
        has_more:
          type: boolean
          description: True when another page exists after this one.
        next_cursor:
          description: Opaque cursor for the next page (pass as `after`); null on the last page.
          type:
          - string
          - 'null'
      required:
      - data
      - has_more
      - next_cursor
      additionalProperties: false
      description: One page of maintenance windows, newest window first.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An `uptimely_live_` project API key (Settings → API Keys).
x-provenance:
  method: harvested
  publisher: Uptimely
  source: https://getuptimely.com/openapi.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)