> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fortary.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Ping webhook

<Info>
  **Pre-release** — contact your Fortary account team for access.
</Info>

<Warning>
  **Illustrative reference.** These examples show the shape of the API and are provided for early evaluation while it is still being finalized. Field names and response details may change before the API is released. A complete reference, generated directly from the live API, will replace these examples once it is available.
</Warning>

Sends a synchronous, signed test `POST` to the webhook's endpoint and returns the live outcome inline. Requires the `webhook:manage` scope.

The ping uses the same signing and delivery rules as real deliveries, but it is not an event: nothing is recorded in the event log or delivery history. Pings **work while the webhook is disabled** — use one to verify a fixed endpoint before re-enabling — but not on a deleted webhook. Rate-limited to \~6 pings per minute per webhook.

## Request

```bash theme={null}
curl -X POST https://customer-api.fortary.io/v1/webhooks/whs_9b2f4e1a7c/ping \
  -H "Authorization: Bearer fort_..."
```

## Response

```json theme={null}
{
  "result": "2xx",
  "httpStatus": 200,
  "latencyMs": 87,
  "bodySnippet": null,
  "retryAfterSeconds": null
}
```

* **`result`** — `2xx`, `3xx`, `4xx`, `5xx`, `timeout`, `conn_error`, or `ssrf_blocked` (the URL resolved to a disallowed address).
* **`httpStatus`** — the response status, or `null` when no response was received.
* **`latencyMs`** — round-trip time of the attempt.
* **`bodySnippet`** — up to 1 KB of your endpoint's response body, or `null`.
* **`retryAfterSeconds`** — parsed from your `Retry-After` header when present.

Errors follow the standard [error envelope](/api/concepts/errors).
