Read current delivery state
succeeded confirms receiver acknowledgement, not downstream business completion. pending/leased are not terminal. Inspect attempts and terminal_reason for failures.
succeeded confirms receiver acknowledgement, not downstream business completion. pending/leased are not terminal. Inspect attempts and terminal_reason for failures.
projectAPIKeyAuthorizationBearer <ch_dev_ or ch_live_ project API key>Read CASCADEHOOK_API_KEY from the local environment. Never print keys or headers. Scope is the project selected when the key was created.
delivery_id*stringuuidRead current delivery state
application/json- response
id*stringuuidproject_id*stringuuidevent_id*stringuuidendpoint_id*stringuuidstate*DeliveryState"pending""leased""succeeded""failed""canceled"attempt_count*integer0 <= valuecycle*integer0 <= valuecycle_started_at*stringdate-timeretry_deadline*stringdate-timenext_attempt_at*|date-timeterminal_reason*string|nullactive_attempt_id*|uuidactive_attempt_started_at*|date-timelease_expires_at*|date-timecreated_at*stringdate-timeupdated_at*stringdate-timecurl -X GET 'https://api.cascadehook.com/v1/deliveries/497f6eca-6276-4993-bfeb-53cbbbba6f08'{ "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "project_id": "405d8375-3514-403b-8c43-83ae74cfe0e9", "event_id": "a7a26ff2-e851-45b6-9634-d595f45458b7", "endpoint_id": "e9ce0d4f-d433-423d-9497-4c000544106c", "state": "pending", "attempt_count": 0, "cycle": 0, "cycle_started_at": "2019-08-24T14:15:22Z", "retry_deadline": "2019-08-24T14:15:22Z", "next_attempt_at": "2019-08-24T14:15:22Z", "terminal_reason": "string", "active_attempt_id": "b78ef144-8036-4e06-8451-5c86b5e7eb8e", "active_attempt_started_at": "2019-08-24T14:15:22Z", "lease_expires_at": "2019-08-24T14:15:22Z", "created_at": "2019-08-24T14:15:22Z", "updated_at": "2019-08-24T14:15:22Z"}Publish an event POST
Maximum 256 KiB envelope; exactly type and data. Same key/exact bytes within 24 hours returns the original receipt without fan-out again. Different bytes return 409 idempotency_conflict. Keys remain project-wide regardless of dev/live label; use only agreed test data.
List deliveries GET
Returns newest-first retained data. Unknown or repeated query parameters are rejected. Follow next_cursor until null; preserve filters. Omit cursor on the first page. To confirm a test, filter by BOTH the accepted event ID and the chosen endpoint ID. Poll at intervals of at least five seconds for at most 60 seconds; honor Retry-After.