Everything you need to capture, inspect, and replay webhooks via the WebhookVault REST API.
Authorization: Bearer wv_your_keyCreate an account and get an API key. No auth required.
curl -X POST https://webhookvault.anethoth.com/api/v1/signup \
-H "Content-Type: application/json" \
-d '{"email": "[email protected]"}'{
"api_key": "wv_aBcDeFgHiJkLmNoPqRsTuVwXyZ...",
"plan": "free",
"limits": {"endpoints": 2, "requests_per_day": 100, "retention_hours": 24},
"message": "Save your API key — it won't be shown again."
}Create a new webhook endpoint. Returns a unique URL to receive webhooks.
curl -X POST https://webhookvault.anethoth.com/api/v1/endpoints \
-H "Authorization: Bearer wv_your_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Stripe Webhooks",
"response_code": 200,
"response_body": "{\"received\": true}",
"forward_url": "http://localhost:3000/webhook"
}'{
"endpoint_id": "abc123xyz",
"url": "https://webhookvault.anethoth.com/hook/abc123xyz",
"inspect_url": "https://webhookvault.anethoth.com/inspect/abc123xyz",
"name": "Stripe Webhooks",
"response_code": 200,
"expires_at": "2026-04-22T12:00:00"
}name (string) Endpoint label (optional)
response_code (int) HTTP status to return (default: 200)
response_body (string) Body to return (default: {"ok": true})
response_content_type (string) Content-Type header (default: application/json)
forward_url (string) URL to forward requests to (paid plans only)List all your endpoints with request counts.
curl https://webhookvault.anethoth.com/api/v1/endpoints \ -H "Authorization: Bearer wv_your_key"
Delete an endpoint and all its captured requests.
curl -X DELETE https://webhookvault.anethoth.com/api/v1/endpoints/abc123xyz \ -H "Authorization: Bearer wv_your_key"
Receive a webhook. Accepts any HTTP method (GET, POST, PUT, PATCH, DELETE). No auth required — this is the URL you give to webhook providers.
POST https://webhookvault.anethoth.com/hook/abc123xyz
Content-Type: application/json
Stripe-Signature: t=1234,v1=...
{"type": "checkout.session.completed", "data": {...}}Returns the configured response code and body. Request is captured for inspection.
List captured requests for an endpoint. Most recent first.
curl https://webhookvault.anethoth.com/api/v1/endpoints/abc123xyz/requests?limit=20 \ -H "Authorization: Bearer wv_your_key"
{
"requests": [
{
"id": 1,
"method": "POST",
"path": "/",
"headers": {"content-type": "application/json", "stripe-signature": "t=..."},
"body": "{\"type\": \"checkout.session.completed\"}",
"content_type": "application/json",
"ip_address": "54.187.174.169",
"size_bytes": 342,
"received_at": "2026-04-15T12:00:00"
}
]
}Replay a captured request to a new URL. Sends the original method, headers, and body. Paid plans only.
curl -X POST https://webhookvault.anethoth.com/api/v1/endpoints/abc123xyz/requests/1/replay \
-H "Authorization: Bearer wv_your_key" \
-H "Content-Type: application/json" \
-d '{"url": "http://localhost:3000/webhook"}'{
"status": 200,
"headers": {"content-type": "application/json"},
"body": "{\"received\": true}"
}Create a Stripe checkout session to upgrade your plan.
curl -X POST https://webhookvault.anethoth.com/api/v1/checkout \
-H "Authorization: Bearer wv_your_key" \
-H "Content-Type: application/json" \
-d '{"plan": "starter"}'{
"checkout_url": "https://checkout.stripe.com/pay/cs_...",
"plan": "starter"
}