---
title: "Deprecated: get the legacy single webhook configured for a monitor"
method: GET
path: "/api/v1/monitors/{monitorID}/webhook"
deprecated: true
---

# Deprecated: get the legacy single webhook configured for a monitor

`GET /api/v1/monitors/{monitorID}/webhook`

## Request

- Base URL: `https://api.uptimemonitoring.com`
- URL: `https://api.uptimemonitoring.com/api/v1/monitors/{monitorID}/webhook`
- Auth: HTTP bearer

> **Deprecated.**

Deprecated alias (issue #212). Backed by recipients: returns the
lowest-id webhook-type recipient currently attached to this
monitor, in the legacy `{id, monitor_id, url, secret, created_at}`
shape, `secret` included. Prefer `GET /api/v1/recipients` /
`GET /api/v1/monitors/{monitorID}/recipients`. Kept for one
release for pre-#212 client compatibility.

## Path parameters

- `monitorID` integer, required

## Response `200`

Webhook

- Webhook: Configured notification endpoint. The signed JSON body for an HTTP attempt contains `event`, `monitor_id`, `account_id`, `occurred_at`, `delivery_id`, `attempt`, plus `reason`/`monitor_name`/`monitor_url` when non-empty. Since issue #165, the body also carries `collapsed_transitions` (integer) when a delivery superseded one or more earlier transitions for the same monitor+webhook pair — e.g. a down→up→down→up flap against a slow-to-recover subscriber can collapse to a survivor carrying `collapsed_transitions: 3`. The field is omitted entirely (not sent as 0) when nothing was collapsed, so existing subscribers see a byte-identical body to before this field existed.
  - `id` integer
  - `monitor_id` integer
  - `url` string, uri
  - `secret` string: HMAC-SHA256 signing secret. Prefix `whs_live_`.
  - `created_at` string, date-time

## Other responses

- `404`: Monitor or webhook not found
- `429`: Per-account dispatcher rate limit exceeded (200 requests/minute). The `Retry-After` header gives the integer seconds until at least one token has refilled. The `X-RateLimit-*` trio reflects the bucket whose rejection produced this response — usually the global 200/min cap; on `POST /api/v1/monitors` a 429 may instead reflect the per-route 20/min creation limit.

---

[API](https://skmtc.dev/uptimemonitoring/apis/uptimemonitoring-com-api.md) · [All operations](https://skmtc.dev/uptimemonitoring/apis/uptimemonitoring-com-api/llms.txt) · [OpenAPI document](https://skmtc.dev/uptimemonitoring/apis/uptimemonitoring-com-api/revisions/ddcb2a8bc70f?raw)
