---
title: "Send a test webhook"
method: POST
path: "/v1/alerts/{id}/test-webhook"
tags: ["Alerts", "tier:standard"]
---

# Send a test webhook

`POST /v1/alerts/{id}/test-webhook`

## Request

- Base URL: `https://api.particle.pro`
- URL: `https://api.particle.pro/v1/alerts/{id}/test-webhook`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Sends a synthetic `alert.match.created` payload to every active webhook connection attached to this alert, so you can verify your endpoint end to end — receipt, signature, and parsing — without waiting for a real match. The payload is byte-for-byte shaped like a live delivery and carries this alert's real id, title, kind, and first watched entity, but its match content is illustrative sample data and the envelope is flagged `test: true` so your handler can skip real side effects. Nothing is persisted — a test never appears in the alert's delivery log. Returns one result per connection the test was POSTed to: whether the endpoint accepted the POST, its status code, and any error. Channels whose connection has been deleted are skipped and don't appear in the results. A down or non-2xx endpoint is reported as `delivered: false` rather than failing the request. Returns 422 when the alert has no active webhook connection — either none is configured, or every configured connection has been deleted.

## Path parameters

- `id` string, required: Alert ID

## Headers

- `Idempotency-Key` string

## Response `200`

OK

- AlertTestWebhookResult
  - `deliveries` AlertTestWebhookDelivery[], nullable, required: One entry per active webhook connection the test was POSTed to, in the order attempted. A channel whose connection has been deleted is skipped and does not appear here.
    - `delivered` boolean, required: True when the endpoint acknowledged with a 2xx status.
    - `duration_ms` integer: Round-trip time for the POST in milliseconds.
    - `error` string: Failure reason when delivered is false — the endpoint's non-2xx status or the transport error.
    - `status_code` integer: HTTP status the endpoint returned. Absent on a transport-level failure (timeout, connection refused, or a blocked non-public address).
    - `url` string, required: The destination the test payload was POSTed to.
    - `webhook_connection_id` string, required

## Other responses

- `default`: Error

---

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