---
title: "Send a test delivery"
method: POST
path: "/api/v1/webhooks/{uuid}/test"
tags: ["Webhooks"]
---

# Send a test delivery

`POST /api/v1/webhooks/{uuid}/test`

## Request

- Base URL: `https://everypage.co`
- URL: `https://everypage.co/api/v1/webhooks/{uuid}/test`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://everypage.co/oauth/authorize`, token URL `https://everypage.co/oauth/token`, scopes: `webhooks:manage`)

Synchronously sends a sample `webhook.test` event through the real delivery path (same body format and signature) and reports the outcome. Fires regardless of any per-file scope - it is an endpoint-reachability check with a placeholder file. Rate-limited more tightly than the rest of the API (10 requests/minute per token).

## Response `200`

Test outcome (delivered may be false)

- object
  - `delivered` boolean
  - `status` integer: HTTP status your endpoint returned (0 if unreachable).
  - `latencyMs` integer
  - `error` string: Present when not delivered (coarse reason only).

## Other responses

- `401`: No or invalid API key, OAuth token, manage token or claim token (code `missing_token` or `invalid_token`).
- `403`: Not the owner (code `forbidden`), an OAuth token missing the required scope (`insufficient_scope`, with a `WWW-Authenticate` challenge naming it), a feature above your plan (`plan_required`), a plan limit reached such as file slots or the per-file asset cap (`forbidden`), or - on the two manage-token operations - a token acting at the free tier on a plan-gated field.
- `404`: Unknown id, or a file you do not own on routes where 404 replaces 403 (code `not_found`).
- `429`: Test rate limit exceeded (10 per minute per token) - or the general 120/min limit (code `rate_limited`).

---

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