---
title: "Read one webhook"
method: GET
path: "/api/v1/webhooks/{id}"
tags: ["Outcomes"]
---

# Read one webhook

`GET /api/v1/webhooks/{id}`

## Request

- Base URL: `https://www.upgradeagent.ai`
- URL: `https://www.upgradeagent.ai/api/v1/webhooks/{id}`
- Auth: one of:
  - OAuth 2 (authorization code, authorization URL `https://www.upgradeagent.ai/api/oauth/authorize`, token URL `https://www.upgradeagent.ai/api/oauth/token`, scopes: `mcp`)
  - HTTP bearer

## Path parameters

- `id` string, required

## Response `200`

The webhook (no secret).

- Webhook
  - `id` string, required
  - `url` string, required
  - `events` string[], required
  - `quoteId` string, nullable, required: Bound quote, or null for all of the caller's quotes.
  - `active` boolean, required: False once auto-disabled after 20 consecutive failed deliveries.
  - `createdAt` string, required
  - `lastDeliveryAt` string, nullable, required: Last successful (2xx) delivery.
  - `failureCount` integer, required: Consecutive failed deliveries.

## Other responses

- `401`: Missing, invalid, expired, or revoked bearer token. The WWW-Authenticate challenge points at the OAuth protected-resource metadata.
- `404`: Unknown webhook, or owned by another caller.
- `429`: Per-caller rate limit exceeded.

---

[API](https://skmtc.dev/upgradeagent/apis/upgrade-agent-rest-api.md) · [All operations](https://skmtc.dev/upgradeagent/apis/upgrade-agent-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/upgradeagent/apis/upgrade-agent-rest-api/revisions/fbed715712c1?raw)
