API reference
Destinations
Every Destinations endpoint in the Catchook API.
Generated from Catchook API 0.1.0 · OpenAPI 3.1.0 ·openapi.json
get/endpoints/{endpointId}/destinations
List an endpoint's destinations
Path parameters
endpointIdrequiredstringmin length 1
Query parameters
pageoptionalintegerdefault 1 · min 1
limitoptionalintegerdefault 50 · min 1 · max 100
Request
curl -X GET https://api.catchook.com/endpoints/{endpointId}/destinations \
-H "Authorization: Bearer $CATCHOOK_API_KEY"200List of destinations
datarequiredobject[]data[].idrequiredstringdata[].endpoint_idrequiredstringdata[].org_idrequiredstringdata[].namerequiredstringdata[].receiver_urlrequiredstringdata[].forward_original_signaturerequiredbooleandata[].statusrequired"active" | "paused" | "disabled"data[].retry_max_attemptsrequirednumberdata[].retry_backoffrequired"exponential" | "linear" | "fixed"data[].rate_limit_maxrequirednumbernullable
data[].rate_limit_windowrequired"second" | "minute" | "hour" | "day" | nullnullable
data[].created_atrequiredstringdata[].updated_atrequiredstringdata[].deleted_atrequiredstringnullable
paginationrequiredobjectpagination.pagerequirednumberpagination.limitrequirednumberpagination.totalrequirednumberpagination.total_pagesrequirednumberpagination.has_nextrequiredbooleanpagination.has_prevrequiredbooleantimestamprequiredstring404Endpoint not found
errorrequiredobjecterror.coderequiredstringerror.messagerequiredstringtimestamprequiredstringpost/endpoints/{endpointId}/destinations
Create a destination
A new destination starts receiving within a minute: takes up to 60 seconds to affect deliveries: the delivery service caches destination configuration, and that cache expires rather than being purged.
Path parameters
endpointIdrequiredstringmin length 1
Request body
namerequiredstringmin length 1
receiver_urlrequiredstring · uriMust be https and public — private/link-local hosts are rejected
forward_original_signatureoptionalbooleanretry_max_attemptsoptionalintegerDefault: 5, max: 10 (bounded by the delivery queue's own retry ceiling)
min 0 · max 10
retry_backoffoptional"exponential" | "linear" | "fixed"rate_limit_maxoptionalintegerMax deliveries per window, null = unlimited
min 1 · nullable
rate_limit_windowoptional"second" | "minute" | "hour" | "day" | nullnullable
Request
curl -X POST https://api.catchook.com/endpoints/{endpointId}/destinations \
-H "Authorization: Bearer $CATCHOOK_API_KEY" \
-H "Content-Type: application/json" \ \
-d '{ … }'201The created destination
datarequiredobjecttimestamprequiredstring404Endpoint not found
errorrequiredobjecterror.coderequiredstringerror.messagerequiredstringtimestamprequiredstringget/destinations/{id}
Get a destination
Path parameters
idrequiredstringmin length 1
Request
curl -X GET https://api.catchook.com/destinations/{id} \
-H "Authorization: Bearer $CATCHOOK_API_KEY"200The destination
datarequiredobjectdata.idrequiredstringdata.endpoint_idrequiredstringdata.org_idrequiredstringdata.namerequiredstringdata.receiver_urlrequiredstringdata.forward_original_signaturerequiredbooleandata.statusrequired"active" | "paused" | "disabled"data.retry_max_attemptsrequirednumberdata.retry_backoffrequired"exponential" | "linear" | "fixed"data.rate_limit_maxrequirednumbernullable
data.rate_limit_windowrequired"second" | "minute" | "hour" | "day" | nullnullable
data.created_atrequiredstringdata.updated_atrequiredstringdata.deleted_atrequiredstringnullable
timestamprequiredstring404Destination not found
errorrequiredobjecterror.coderequiredstringerror.messagerequiredstringtimestamprequiredstringpatch/destinations/{id}
Update a destination
Takes up to 60 seconds to affect deliveries: the delivery service caches destination configuration, and that cache expires rather than being purged.
Path parameters
idrequiredstringmin length 1
Request body
nameoptionalstringmin length 1
receiver_urloptionalstring · uriMust be https and public — private/link-local hosts are rejected
forward_original_signatureoptionalbooleanretry_max_attemptsoptionalintegerDefault: 5, max: 10 (bounded by the delivery queue's own retry ceiling)
min 0 · max 10
retry_backoffoptional"exponential" | "linear" | "fixed"rate_limit_maxoptionalintegerMax deliveries per window, null = unlimited
min 1 · nullable
rate_limit_windowoptional"second" | "minute" | "hour" | "day" | nullnullable
Request
curl -X PATCH https://api.catchook.com/destinations/{id} \
-H "Authorization: Bearer $CATCHOOK_API_KEY" \
-H "Content-Type: application/json" \ \
-d '{ … }'200The updated destination
datarequiredobjectdata.idrequiredstringdata.endpoint_idrequiredstringdata.org_idrequiredstringdata.namerequiredstringdata.receiver_urlrequiredstringdata.forward_original_signaturerequiredbooleandata.statusrequired"active" | "paused" | "disabled"data.retry_max_attemptsrequirednumberdata.retry_backoffrequired"exponential" | "linear" | "fixed"data.rate_limit_maxrequirednumbernullable
data.rate_limit_windowrequired"second" | "minute" | "hour" | "day" | nullnullable
data.created_atrequiredstringdata.updated_atrequiredstringdata.deleted_atrequiredstringnullable
timestamprequiredstring404Destination not found
errorrequiredobjecterror.coderequiredstringerror.messagerequiredstringtimestamprequiredstringdelete/destinations/{id}
Delete a destination (soft delete)
Path parameters
idrequiredstringmin length 1
Request
curl -X DELETE https://api.catchook.com/destinations/{id} \
-H "Authorization: Bearer $CATCHOOK_API_KEY"204Destination deleted
404Destination not found
errorrequiredobjecterror.coderequiredstringerror.messagerequiredstringtimestamprequiredstringpost/destinations/{id}/pause
Pause a destination
Takes up to 60 seconds to affect deliveries: the delivery service caches destination configuration, and that cache expires rather than being purged.
Path parameters
idrequiredstringmin length 1
Request
curl -X POST https://api.catchook.com/destinations/{id}/pause \
-H "Authorization: Bearer $CATCHOOK_API_KEY"200The paused destination
datarequiredobjectdata.idrequiredstringdata.endpoint_idrequiredstringdata.org_idrequiredstringdata.namerequiredstringdata.receiver_urlrequiredstringdata.forward_original_signaturerequiredbooleandata.statusrequired"active" | "paused" | "disabled"data.retry_max_attemptsrequirednumberdata.retry_backoffrequired"exponential" | "linear" | "fixed"data.rate_limit_maxrequirednumbernullable
data.rate_limit_windowrequired"second" | "minute" | "hour" | "day" | nullnullable
data.created_atrequiredstringdata.updated_atrequiredstringdata.deleted_atrequiredstringnullable
timestamprequiredstring404Destination not found
errorrequiredobjecterror.coderequiredstringerror.messagerequiredstringtimestamprequiredstringpost/destinations/{id}/resume
Resume a paused destination
Takes up to 60 seconds to affect deliveries: the delivery service caches destination configuration, and that cache expires rather than being purged.
Path parameters
idrequiredstringmin length 1
Request
curl -X POST https://api.catchook.com/destinations/{id}/resume \
-H "Authorization: Bearer $CATCHOOK_API_KEY"200The resumed destination
datarequiredobjectdata.idrequiredstringdata.endpoint_idrequiredstringdata.org_idrequiredstringdata.namerequiredstringdata.receiver_urlrequiredstringdata.forward_original_signaturerequiredbooleandata.statusrequired"active" | "paused" | "disabled"data.retry_max_attemptsrequirednumberdata.retry_backoffrequired"exponential" | "linear" | "fixed"data.rate_limit_maxrequirednumbernullable
data.rate_limit_windowrequired"second" | "minute" | "hour" | "day" | nullnullable
data.created_atrequiredstringdata.updated_atrequiredstringdata.deleted_atrequiredstringnullable
timestamprequiredstring404Destination not found
errorrequiredobjecterror.coderequiredstringerror.messagerequiredstringtimestamprequiredstringpost/destinations/{id}/rotate-secret
Regenerate the catchook_secret used to sign deliveries
Deliveries are signed with the old secret until this takes effect, so give a receiver both for a minute — or expect a window of rejected deliveries. Takes up to 60 seconds to affect deliveries: the delivery service caches destination configuration, and that cache expires rather than being purged.
Path parameters
idrequiredstringmin length 1
Request
curl -X POST https://api.catchook.com/destinations/{id}/rotate-secret \
-H "Authorization: Bearer $CATCHOOK_API_KEY"200The new secret
datarequiredobjecttimestamprequiredstring404Destination not found
errorrequiredobjecterror.coderequiredstringerror.messagerequiredstringtimestamprequiredstring