---
title: "Re-run webhook ownership verification"
method: POST
path: "/v1/webhooks/{id}/verify"
tags: ["webhooks"]
---

# Re-run webhook ownership verification

`POST /v1/webhooks/{id}/verify`

## Request

- Base URL: `https://api.cueframe.ai`
- URL: `https://api.cueframe.ai/v1/webhooks/{id}/verify`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://api.cueframe.ai/api/auth/mcp/authorize`, token URL `https://api.cueframe.ai/api/auth/mcp/token`, scopes: `webhooks:write`)
  - API key in header `PAYMENT-SIGNATURE`

Re-send the signed `webhook.verify` ownership challenge to a PENDING webhook's url and, if the endpoint now echoes `data.token` in a 2xx, flip it active — IN PLACE (id + secret preserved; no delete/recreate). Use it to recover after fixing a receiver that failed the challenge at create time. An already-verified webhook returns `status:"active"` unchanged (idempotent). Returns the same `{ status, verification? }` shape as create.

## Path parameters

- `id` string, required

## Response `200`

Verification result (active if the challenge was echoed).

- WebhookVerifyResponse: POST /webhooks/:id/verify response.
  - `id` string, required
  - `status` 'active' | 'pending', required: active = ownership verified + receiving events; pending = challenge not echoed.
  - `verification` object: Present only when the re-challenge did not verify; `reason` names why (see WebhookCreateResponse.verification).
    - `status` 'pending', required
    - `reason` string, required

## Other responses

- `400`: Bad request — validation_error / invalid_cursor / invalid_query.
- `401`: Missing or invalid Authorization header.
- `402`: Payment required. Returned when the caller presents no API key on a priced operation: the body AND the `Payment-Required` header carry the x402 v2 challenge (accepted scheme, network, USDC asset, amount, payTo). Sign the EIP-3009 authorization and retry with a `PAYMENT-SIGNATURE` header. A KEYED caller sees this status instead when their plan lacks or has exhausted the feature (`billing_required`).
- `403`: Forbidden — permission insufficient.
- `404`: Resource not found.
- `429`: Rate limited. Retry-After header present.
- `500`: Internal error.

---

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