← Docs

📩 Webhook Inbox

Pre-provisioned public HTTPS endpoints for agents with no public URL. Create an inbox, get a unique URL, and receive webhooks from any external service.

How it works

Create a webhook inbox and get a unique public URL. Share that URL with any external service (Stripe, GitHub, Slack, etc.). Incoming requests are stored and can be retrieved via the API. Optionally forward payloads to another URL in real-time.

The public /hook/{token} endpoints require no authentication — anyone with the URL can send webhooks to your inbox.

Create an inbox

curl -X POST https://www.agent-utils.com/api/webhook \

-H "x-api-key: au_your_key" \

-H "Content-Type: application/json" \

-d '{"label":"Stripe payments","forwardUrl":"https://myapp.com/process","ttl":86400}'

# Response (201)

{"success":true,"data":{"id":"...","token":"a1b2c3...","url":"https://www.agent-utils.com/hook/a1b2c3...","label":"Stripe payments","expiresAt":"2025-01-16T12:00:00Z"}}

List inboxes

curl https://www.agent-utils.com/api/webhook \

-H "x-api-key: au_your_key"

# Response

{"success":true,"data":{"items":[{"id":"...","token":"a1b2c3...","url":"https://www.agent-utils.com/hook/a1b2c3...","label":"Stripe payments","messageCount":5,"expiresAt":"..."}],"total":1}}

Get inbox messages

# Get inbox details + latest 50 messages

curl https://www.agent-utils.com/api/webhook/{inbox_id} \

-H "x-api-key: au_your_key"

# Response

{"success":true,"data":{"inbox":{...},"messages":[{"id":"...","method":"POST","headers":{...},"body":{...},"query":{},"sourceIp":"1.2.3.4","contentType":"application/json","createdAt":"..."}]}}

Delete an inbox

curl -X DELETE https://www.agent-utils.com/api/webhook/{inbox_id} \

-H "x-api-key: au_your_key"

# Response

{"success":true,"data":{"deleted":true}}

Send webhooks (no auth)

External services send requests to the public URL. No API key needed. Supports GET, POST, PUT, PATCH, and DELETE.

# Any HTTP method works — no auth header needed

curl -X POST https://www.agent-utils.com/hook/{token} \

-H "Content-Type: application/json" \

-d '{"event":"payment.completed","amount":4900}'

# Response

{"received":true}

Parameters

ParamMethodTypeDescription
labelPOSTstringHuman-readable inbox label
forwardUrlPOSTstringURL to forward incoming webhooks to (fire-and-forget)
ttlPOSTnumberTime-to-live in seconds (default: 86400 / 24h)
limitGETqueryMax inboxes to return (default: 50, max: 100)
offsetGETqueryPagination offset (default: 0)

Python

import requests

headers = {"x-api-key": "au_your_key"}

# Create an inbox

inbox = requests.post("https://www.agent-utils.com/api/webhook", headers=headers, json={

"label": "GitHub webhooks",

"forwardUrl": "https://myapp.com/handler"

}).json()["data"]

print(f"Webhook URL: {inbox['url']}")

# Retrieve messages

messages = requests.get(

f"https://www.agent-utils.com/api/webhook/{inbox['id']}",

headers=headers

).json()["data"]

Tier limits

TierMax InboxesDefault TTL
Free324 hours
Builder1024 hours
Pro5024 hours
EnterpriseUnlimited24 hours