API reference · Webhooks
Create a subscription
POST
https://goblins-call-api.onrender.com/v1/webhooksRegisters a URL that receives events from every call in your workspace. This is the only response that carries the signing secret in full.
Needs a workspace API key.
Body
urlstringRequiredWhere events are delivered, as a POST with a JSON body. Must be a public address.
eventsstring[]Requiredat least 1The event types to receive, or ["*"] for all of them.
descriptionstringOptionalup to 200 charsA label for your own reference.
enabledbooleanOptionaldefault truefalse keeps the subscription without delivering to it.
secretstringOptionalat least 16 charsYour own signing secret. One is generated when this is left out.
Errors
400The body failed validation. details lists each field and what is wrong with it.
400URL_NOT_ALLOWEDThe URL is not a public http(s) address.
Every request can also answer 401, 429 and 500: see Errors.
Notes
- Store the secret before moving on; later reads return it masked.
- For one agent’s calls only, set
webhookUrlon the agent. For one call only, sendwebhookswhen starting it.
curl -X POST "https://goblins-call-api.onrender.com/v1/webhooks" \
-H "Authorization: Bearer $CRACKLE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-app.com/webhooks/crackle",
"events": [
"call.ended"
]
}'Response · 201 Created
{
"webhook": {
"id": "wh_3f9a1c2b7d4e5f60",
"userId": "usr_8c1d2e3f4a5b",
"url": "https://your-app.com/webhooks/crackle",
"events": ["call.ended"],
"enabled": true,
"secret": "whsec_9c4f1e7a2b6d8035f1a9c2e4b7d60813a5f2c9e1b4d7a630",
"createdAt": "2026-10-11T08:31:10.000Z",
"updatedAt": "2026-10-11T08:31:10.000Z"
}
}