# Uptime API

Version 1.0 · OpenAPI 3.1.0

Manage EvoHub Uptime from scripts and CI: create and change monitors,
pause them, read their check history, uptime and SLA figures, mute alerts
for planned work, and route alerts to notification channels.

**Authentication.** Every endpoint except the heartbeat ping takes an
EvoHub API key, sent as `Authorization: Bearer evohub_…` or as
`X-API-Key: evohub_…`. Each operation names the scope the key needs in
its description and in `x-evohub-permission`. A missing or invalid key
gets **401**; a valid key without the scope gets **403**, never 401. See
the API overview, API keys and scopes, and Errors pages.

**Responses.** A successful answer carries its result in `data`. The
analytics endpoint also sends `"success": true`. Errors carry an `error`
object with a machine-readable `code`. Timestamps are RFC 3339 in UTC.

**Teams.** A monitor either belongs to the whole organization (`team_id`
is `""`) or to one team. A request sees the organization-wide monitors
plus those of the teams it is in; an organization key scoped to a team
sees that team's. A monitor the caller cannot see answers **404**
`MONITOR_NOT_FOUND`, exactly like one that does not exist.

**Heartbeat pings.** `/ping/{token}` is not an API-key endpoint: the
token in the URL is the credential, so a cron job can call it with a bare
`curl`.

## Servers

- `https://evohub.io`

## Authentication

- `bearerKey`: HTTP Bearer — An EvoHub API key (`evohub_…`) as a bearer token.
- `headerKey`: API key in the header `X-API-Key` — An EvoHub API key (`evohub_…`).

## Monitors

Create, read, change, pause and delete monitors.

- [GET /api/v1/monitors](https://docs-dev.evohub.io/uptime/list-monitors.md): List monitors
- [POST /api/v1/monitors](https://docs-dev.evohub.io/uptime/create-monitor.md): Create a monitor
- [GET /api/v1/monitors/attention](https://docs-dev.evohub.io/uptime/list-monitors-needing-attention.md): List monitors that need attention
- [GET /api/v1/monitors/{id}](https://docs-dev.evohub.io/uptime/get-monitor.md): Get a monitor
- [DELETE /api/v1/monitors/{id}](https://docs-dev.evohub.io/uptime/delete-monitor.md): Delete a monitor
- [PATCH /api/v1/monitors/{id}](https://docs-dev.evohub.io/uptime/update-monitor.md): Update, pause or resume a monitor

## Checks and uptime

A monitor's check results, outages and uptime figures.

- [GET /api/v1/monitors/{id}/checks](https://docs-dev.evohub.io/uptime/list-monitor-checks.md): List a monitor's checks
- [GET /api/v1/monitors/{id}/incidents](https://docs-dev.evohub.io/uptime/list-monitor-incidents.md): List a monitor's outages
- [GET /api/v1/monitors/{id}/uptime](https://docs-dev.evohub.io/uptime/get-monitor-uptime.md): Get a monitor's uptime
- [GET /api/v1/monitors/{id}/uptime/daily](https://docs-dev.evohub.io/uptime/get-monitor-daily-uptime.md): Get a monitor's uptime per day

## Analytics

Uptime, latency and SLA across every monitor you can see.

- [GET /api/v1/uptime/analytics](https://docs-dev.evohub.io/uptime/get-uptime-analytics.md): Get uptime analytics

## Silence

Mute alerts for the whole organization or for one monitor's maintenance window.

- [GET /api/v1/silence](https://docs-dev.evohub.io/uptime/get-organization-silence.md): Get the organization's silence
- [PUT /api/v1/silence](https://docs-dev.evohub.io/uptime/set-organization-silence.md): Silence all alerts
- [DELETE /api/v1/silence](https://docs-dev.evohub.io/uptime/clear-organization-silence.md): End the silence
- [GET /api/v1/monitors/{id}/silence](https://docs-dev.evohub.io/uptime/get-monitor-silence.md): Get a monitor's silence window
- [PUT /api/v1/monitors/{id}/silence](https://docs-dev.evohub.io/uptime/set-monitor-silence.md): Silence a monitor for a window
- [DELETE /api/v1/monitors/{id}/silence](https://docs-dev.evohub.io/uptime/clear-monitor-silence.md): Clear a monitor's silence window

## Notification channels

Where alerts go besides On-Call, and which monitors use each channel.

- [GET /api/v1/notification-channels](https://docs-dev.evohub.io/uptime/list-notification-channels.md): List notification channels
- [POST /api/v1/notification-channels](https://docs-dev.evohub.io/uptime/create-notification-channel.md): Create a notification channel
- [GET /api/v1/notification-channels/chat-apps](https://docs-dev.evohub.io/uptime/list-chat-app-channels.md): List chat app channels
- [DELETE /api/v1/notification-channels/{id}](https://docs-dev.evohub.io/uptime/delete-notification-channel.md): Delete a notification channel
- [GET /api/v1/monitors/{id}/channels](https://docs-dev.evohub.io/uptime/list-monitor-channels.md): List a monitor's channels
- [POST /api/v1/monitors/{id}/channels/{chId}](https://docs-dev.evohub.io/uptime/link-channel-to-monitor.md): Link a channel to a monitor
- [DELETE /api/v1/monitors/{id}/channels/{chId}](https://docs-dev.evohub.io/uptime/unlink-channel-from-monitor.md): Unlink a channel from a monitor

## Weekly summary

The weekly uptime summary email.

- [GET /api/v1/uptime-digest](https://docs-dev.evohub.io/uptime/get-weekly-summary-settings.md): Get the weekly summary settings
- [PUT /api/v1/uptime-digest](https://docs-dev.evohub.io/uptime/set-weekly-summary-enabled.md): Turn the weekly summary on or off
- [PUT /api/v1/uptime-digest/me](https://docs-dev.evohub.io/uptime/set-my-weekly-summary-subscription.md): Subscribe or unsubscribe yourself
- [POST /api/v1/uptime-digest/preview](https://docs-dev.evohub.io/uptime/send-weekly-summary-preview.md): Email yourself a preview

## Audit log

Who changed what in Uptime.

- [GET /api/v1/uptime-audit-logs](https://docs-dev.evohub.io/uptime/list-uptime-audit-logs.md): List Uptime audit log entries

## Heartbeat pings

The URL a heartbeat monitor's job calls.

- [GET /ping/{token}](https://docs-dev.evohub.io/uptime/ping-heartbeat.md): Ping a heartbeat monitor
- [POST /ping/{token}](https://docs-dev.evohub.io/uptime/ping-heartbeat-post.md): Ping a heartbeat monitor (POST)
- [HEAD /ping/{token}](https://docs-dev.evohub.io/uptime/ping-heartbeat-head.md): Ping a heartbeat monitor (HEAD)
