Uptimely Scheduled Maintenances API
Scheduled maintenance windows and their current state.
Scheduled maintenance windows and their current state.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/getuptimely-com:getuptimely-com-scheduled-maintenances-api"
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.
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: 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)