Skip to content

API reference

Webhooks

Manage the endpoints that receive signed events (the same ones as Developers, Webhooks). The signing secret is returned once, on create and on rotate.

Endpoints

GET/webhookswebhooks:read

List endpoints.

curl https://api.sellhidden.com/v1/webhooks \
  -H "Authorization: Bearer hsk_live_…"
200 OKjson
{ "ok": true, "webhooks": [ { "id": "clx…", "url": "https://example.com/hooks", "label": "Fulfilment", "events": [ "order.paid" ], "active": true, "consecutiveFailures": 0, "secretHint": "whsec_1a2b…", "lastDelivery": { … }, "deliveryCount": 42, "createdAt": "…" } ], "limit": 5 }

POST/webhookswebhooks:writeIdempotency-Key201

Create an endpoint. Public https URLs only. Counts against the plan's endpoint limit (403 plan_limit).

Body
BodyTypeDescription
urlrequiredType: stringhttps URL.
eventsrequiredType: string[]Event names (see Webhooks, Events), or wildcards like order.* or *.
labelType: stringUp to 60 characters.
curl -X POST https://api.sellhidden.com/v1/webhooks \
  -H "Authorization: Bearer hsk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "url": "https://example.com/hooks/hidden",
    "events": [
      "order.paid",
      "order.delivered"
    ],
    "label": "Fulfilment"
  }'
201 Createdjson
{ "ok": true, "webhook": { "id": "clx…", "url": "…", "events": [ "order.paid", "order.delivered" ], "active": true, "secret": "whsec_…", … } }

GET/webhooks/{id}webhooks:read

Get an endpoint.

curl https://api.sellhidden.com/v1/webhooks/ID \
  -H "Authorization: Bearer hsk_live_…"

PATCH/webhooks/{id}webhooks:write

Update an endpoint.

Body
BodyTypeDescription
urlType: string
labelType: string
eventsType: string[]
activeType: booleanSwitch it on again after it was disabled for failures.
resetFailuresType: booleanReset the consecutive failure counter.
curl -X PATCH https://api.sellhidden.com/v1/webhooks/ID \
  -H "Authorization: Bearer hsk_live_…" \
  -H "Content-Type: application/json" \
  -d '{"active":true,"resetFailures":true}'

DELETE/webhooks/{id}webhooks:write

Delete an endpoint.

curl -X DELETE https://api.sellhidden.com/v1/webhooks/ID \
  -H "Authorization: Bearer hsk_live_…"

POST/webhooks/{id}/rotate-secretwebhooks:writeIdempotency-Key

Rotate the secret. Returns the new secret once. Deliveries are signed with it from now on.

curl -X POST \
  https://api.sellhidden.com/v1/webhooks/ID/rotate-secret \
  -H "Authorization: Bearer hsk_live_…" \
  -H "Idempotency-Key: $(uuidgen)"

POST/webhooks/{id}/testwebhooks:write

Send a test event. A signed webhook.test delivery (10 per endpoint per minute). The response carries the delivery row with the status code your endpoint returned.

curl -X POST \
  https://api.sellhidden.com/v1/webhooks/ID/test \
  -H "Authorization: Bearer hsk_live_…"

GET/webhooks/{id}/deliverieswebhooks:read

Delivery log.

Query parameters
Query parametersTypeDescription
statusType: ok | failed
limitType: 1..100Page size. Default 25.
cursorType: stringnextCursor from the previous page.
curl https://api.sellhidden.com/v1/webhooks/ID/deliveries \
  -H "Authorization: Bearer hsk_live_…"

Get help

Send us the endpoint, the request or delivery id and the response you got. Security findings go through responsible disclosure. Live platform status is on the support page.

See also