Browse the docs
Endpoints
Create an endpoint
Create a webhook endpoint. The signing secret is returned once.
/api/v1/endpointscurl -X POST "https://inboundr.net/api/v1/endpoints" \
-H "Authorization: Bearer $INBOUNDR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "<name>",
"type": "<type>",
"url": "<url>",
"headers": {},
"timeoutSeconds": 1,
"maxAttempts": 1
}'Creates a webhook endpoint, or a Slack or Discord
notification endpoint (see type below). For a webhook, the response includes
a secret, prefixed whsec_, which is shown only once. Store it so you can
verify signatures. Slack and Discord
endpoints have no secret.
namestringbodyrequired
A label for the endpoint (1–100 chars).
typestringbodydefault webhook
webhook, slack or discord. Slack and Discord endpoints post a formatted
notification to url (the channel's incoming-webhook URL) instead of raw
JSON, and aren't signed. A fourth type, forward, relays mail to a mailbox;
it currently returns 403 because outbound sending is turned off.
urlstringbodyrequired
The delivery URL (http or https). It must resolve to a public host;
private and internal addresses are rejected. For slack and discord, it
must also be on that provider's incoming-webhook host.
headersobjectbody
Up to 10 custom headers sent with every delivery. Reserved headers
(Content-Type, X-Inboundr-*, X-Inbound-*, …) can't be overridden.
timeoutSecondsintegerbodydefault 10
Per-request timeout, 1–30 seconds.
maxAttemptsintegerbodydefault 5
Total attempts (first + retries), 1–10.
Example response
{
"id": "ep_123",
"name": "Production handler",
"url": "https://api.example.com/hooks/inbound",
"secret": "whsec_xxxxxxxxxxxxxxxxxxxxxxxx",
"headers": { "X-Team": "growth" },
"timeoutSeconds": 10,
"maxAttempts": 5,
"active": true,
"createdAt": "2026-07-20T10:00:00.000Z"
}secret now. It's only shown when the endpoint is created.