Webhooks
Generated from LinkSnap's own code: every route in this area, what it takes and how to call it.
List endpoints (never includes the secret).
GET /api/v1/webhooks
Example
curl -X GET "https://linksnap.forjio.com/api/v1/webhooks" \
-H "Authorization: ApiKey lsk_live_<your API key>"
Create endpoint — returns the whsec_ secret once.
POST /api/v1/webhooks
Body
| Field |
Type |
Required |
Notes |
events |
any |
no |
|
url |
any |
no |
|
Example
curl -X POST "https://linksnap.forjio.com/api/v1/webhooks" \
-H "Authorization: ApiKey lsk_live_<your API key>" \
-H "Content-Type: application/json" \
-d '{"events":null,"url":null}'
Remove endpoint.
DELETE /api/v1/webhooks/{id}
Path parameters
| Name |
Type |
Required |
Notes |
id |
string |
yes |
|
Example
curl -X DELETE "https://linksnap.forjio.com/api/v1/webhooks/:id" \
-H "Authorization: ApiKey lsk_live_<your API key>"
Pause / resume delivery, or edit the endpoint's url / events.
PATCH /api/v1/webhooks/{id}
Pause / resume delivery, or edit the endpoint's url / events. The
signing secret is never touched by an edit.
Path parameters
| Name |
Type |
Required |
Notes |
id |
string |
yes |
|
Body
| Field |
Type |
Required |
Notes |
active |
any |
no |
|
events |
any |
no |
|
url |
any |
no |
|
Example
curl -X PATCH "https://linksnap.forjio.com/api/v1/webhooks/:id" \
-H "Authorization: ApiKey lsk_live_<your API key>" \
-H "Content-Type: application/json" \
-d '{"active":null,"events":null,"url":null}'
List webhook deliveries.
GET /api/v1/webhooks/deliveries
List webhook deliveries. Newest first: one row per event per endpoint, with
its status (pending, succeeded, failed), attempt count, next retry, the body
sent and every attempt made (attemptLog). Filter by subscriptionId,
status or type; page with limit (1-100, default 20) and meta.cursor
while meta.hasMore.
Query parameters
| Name |
Type |
Required |
Notes |
cursor |
any |
no |
|
limit |
any |
no |
|
status |
any |
no |
|
subscriptionId |
any |
no |
|
type |
any |
no |
|
Example
curl -X GET "https://linksnap.forjio.com/api/v1/webhooks/deliveries" \
-H "Authorization: ApiKey lsk_live_<your API key>"
Get a webhook delivery, with every attempt made at it.
GET /api/v1/webhooks/deliveries/{id}
Path parameters
| Name |
Type |
Required |
Notes |
id |
string |
yes |
|
Example
curl -X GET "https://linksnap.forjio.com/api/v1/webhooks/deliveries/:id" \
-H "Authorization: ApiKey lsk_live_<your API key>"
Retry a webhook delivery.
POST /api/v1/webhooks/deliveries/{id}/retry
Retry a webhook delivery. Queues one more attempt now at a failed delivery
(or sends a succeeded one again); it goes out within a few seconds — read it
back with GET /webhooks/deliveries/{id}. 202 with the delivery pending;
409 ALREADY_QUEUED when it is pending already, 409 ENDPOINT_DISABLED when
its endpoint is off.
Path parameters
| Name |
Type |
Required |
Notes |
id |
string |
yes |
|
Example
curl -X POST "https://linksnap.forjio.com/api/v1/webhooks/deliveries/:id/retry" \
-H "Authorization: ApiKey lsk_live_<your API key>"
The event catalogue: every type LinkSnap sends, with what fires it — the dashboard's event picker renders from this.
GET /api/v1/webhooks/event-types
The event catalogue: every type LinkSnap sends, with what fires it — the
dashboard's event picker renders from this.
Example
curl -X GET "https://linksnap.forjio.com/api/v1/webhooks/event-types" \
-H "Authorization: ApiKey lsk_live_<your API key>"