Quickstart: API (Solo and up)

Create an endpoint, capture a webhook, and read it back: three calls, about five minutes.

On the Free plan, or just prefer the dashboard? Use the dashboard quickstart.

You'll need an API key, created on the API keys page in the app. Keys are shown once at creation; put yours in an environment variable:

export WV_KEY="wv_live_…"

1. Create an endpoint

curl -s https://app.webhookvault.net/api/v1/endpoints \
  -H "Authorization: Bearer $WV_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"quickstart"}'

The response includes the endpoint's capture url, which is the address you give to webhook senders:

{
  "id": "01a06dca-5b36-738e-9e82-67af4d06bc31",
  "name": "quickstart",
  "url": "https://in.webhookvault.net/hook/01a06dca-5b36-738e-9e82-67af4d06bc31",
  "isActive": true,
  "storedRequestCount": 0
}

2. Send it a webhook

Any HTTP client works. Here's a stand-in for the provider you'll wire up later:

curl -s -X POST "https://in.webhookvault.net/hook/<your-endpoint-id>" \
  -H "Content-Type: application/json" \
  -d '{"type":"order.created","order":{"id":"ord_123","total":4900}}'

The 200 you get back is the vault's word that the request is stored.

3. Read it back

curl -s "https://app.webhookvault.net/api/v1/endpoints/<your-endpoint-id>/requests" \
  -H "Authorization: Bearer $WV_KEY"
{
  "items": [
    {
      "id": 1,
      "method": "POST",
      "receivedAt": "2026-09-04T21:14:03.2Z",
      "headers": { "Content-Type": "application/json", "User-Agent": "curl/8.17.0" },
      "body": "{\"type\":\"order.created\",\"order\":{\"id\":\"ord_123\",\"total\":4900}}",
      "delivery": { "state": "NotAttempted" }
    }
  ],
  "totalCount": 1
}

That's the whole loop. Open the same endpoint in the dashboard and you'll see the request in the explorer, live, with new arrivals streaming in as they land.

Where next?

On this page