List integration deliveries
const url = 'https://api.getsitecontrol.com/v1/sites/1/integrations/example/deliveries?limit=50&created_since=2026-04-15T12%3A00%3A00Z&order=oldest';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.getsitecontrol.com/v1/sites/1/integrations/example/deliveries?limit=50&created_since=2026-04-15T12%3A00%3A00Z&order=oldest' \ --header 'Authorization: Bearer <token>'Delivery records of one integration created in a time window: current status, attempts, response code, our own reason, the stored answer and, for webhook and zapier, each HTTP request (attempt_history). Call it for the records behind a count of get_integration_stats, or with response_id for one form response. Form values are never included.
What a record proves: succeeded means our side finished without an error. It does not prove that a contact was created at the destination, and with reason empty_url or conditions_failed nothing was sent at all. A 2xx status_code means the destination accepted that request, nothing more. accepted_with_redirect (302 or 303): the destination accepted it and answered with a redirect, as forms usually do; the attempt’s location says where. failed does not prove that nothing arrived: a timed-out request may still have. pending has not finished and promises no retry time. The integration’s settings now do not explain an older record.
Oldest first by creation time, then id; order=newest gives the latest first. Statuses are current, not a snapshot: to follow changes, read a time window again and merge by id. While next_cursor is set, pass it as cursor with the same created_since, created_before, status, response_id and order; without created_before, every page reads up to its own now. created_since is checked against the last 31 × 24 hours on every request, later pages included.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Integration id from list_integrations, such as webhook:12
Integration id from list_integrations, such as webhook:12
Query Parameters
Section titled “Query Parameters”next_cursor of the previous page; omit for the first
next_cursor of the previous page; omit for the first
Items per page
Items per page
Created at or after this moment; last 31 × 24 hours; without an offset, taken as UTC; a plain date means its start
Created at or after this moment; last 31 × 24 hours; without an offset, taken as UTC; a plain date means its start
Created before this moment; without an offset, taken as UTC; a plain date means its start; default now. A moment later than now is taken as now. At most 31 × 24 hours after created_since
Created before this moment; without an offset, taken as UTC; a plain date means its start; default now. A moment later than now is taken as now. At most 31 × 24 hours after created_since
Only deliveries in one of these current statuses; repeat for several
Only deliveries in one of these current statuses; repeat for several
Only deliveries of this form response, by its id; a deleted response matches nothing
Only deliveries of this form response, by its id; a deleted response matches nothing
Order of the items: oldest first (default) or newest first; asc and desc mean the same
Order of the items: oldest first (default) or newest first; asc and desc mean the same
Responses
Section titled “Responses”object
object
Opaque id, unique within this integration; do not parse
Current status of a delivery. pending: queued, set aside or being sent,
not finished, with no promised retry time; succeeded: finished without an
error, which does not prove that a request was sent or that the destination
kept the data; failed: stopped with an error, which does not prove that
nothing arrived; cancelled: dropped by our side before sending, see
reason; it does not prove that nothing was sent earlier.
What a succeeded or failed record proves about the send, read from its own status, status_code and reason; settings as they are now are not consulted. null while pending and when cancelled. A finished record is final: the sender does not try it again, a new form response is the way to send again. Not the vocabulary of an attempt’s outcome, which describes one HTTP request
Recorded attempts; the sender may reset this counter, so it is not a count of HTTP requests
Id of the form response the delivery carries; null when there is none or the response was deleted
HTTP status the destination last answered with, 100 to 599; null without an HTTP answer
Our own outcome, when there is one: empty_url the URL came out empty and conditions_failed the mapping conditions were not met, both with nothing sent, even under status succeeded; targeting_not_matched, cooldown, empty_input_data, skipped, cancelled (with status cancelled), no_response_recorded (no answer was stored). Vocabulary may grow
Stored text of the outcome: the destination’s answer or our error, cut to 1000 characters; null when succeeded
When the delivery was created; lists and statistics select by it
Last time the record was written; not when a request finished
HTTP requests in order. Null: no per-attempt history was kept, as for every service and older webhook records; it does not mean nothing was sent. Empty: not tried yet
object
1 for the first request of a delivery
How long the request took; null when unknown
How this one request ended: accepted, retryable, rate_limited, rejected, gone or unknown; vocabulary may grow. Not the vocabulary of the delivery’s outcome, which is the evidence of the whole record
HTTP status the destination answered with
The destination’s Location header, as stored; redirects are not followed
Short error text of the request, when it recorded one
{ "items": [ { "status": "pending", "outcome": "accepted_by_destination" } ]}Headers
Section titled “Headers”API version the response was produced for
Request id, echoed from the request when valid
Limit of the tightest bucket
Requests left in its window
End of its window, epoch seconds
The documented shape of every error body on the versioned surface.
object
object
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example", "reason": "example", "next": "example", "request_id": "example", "errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ], "metadata": {}}Headers
Section titled “Headers”API version the response was produced for
Request id, echoed from the request when valid
Limit of the tightest bucket
Requests left in its window
End of its window, epoch seconds
The documented shape of every error body on the versioned surface.
object
object
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example", "reason": "example", "next": "example", "request_id": "example", "errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ], "metadata": {}}Headers
Section titled “Headers”API version the response was produced for
Request id, echoed from the request when valid
Limit of the tightest bucket
Requests left in its window
End of its window, epoch seconds
Authentication scheme: Bearer
The documented shape of every error body on the versioned surface.
object
object
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example", "reason": "example", "next": "example", "request_id": "example", "errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ], "metadata": {}}Headers
Section titled “Headers”API version the response was produced for
Request id, echoed from the request when valid
Limit of the tightest bucket
Requests left in its window
End of its window, epoch seconds
integration_not_found: no such integration on the site, or its widget is deleted
The documented shape of every error body on the versioned surface.
object
object
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example", "reason": "example", "next": "example", "request_id": "example", "errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ], "metadata": {}}Headers
Section titled “Headers”API version the response was produced for
Request id, echoed from the request when valid
Limit of the tightest bucket
Requests left in its window
End of its window, epoch seconds
validation_failed: a malformed parameter, created_since older than 31 × 24 hours, created_before before created_since, or a window over 31 × 24 hours. invalid_cursor: the cursor is damaged or was issued for other parameters
The documented shape of every error body on the versioned surface.
object
object
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example", "reason": "example", "next": "example", "request_id": "example", "errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ], "metadata": {}}Headers
Section titled “Headers”API version the response was produced for
Request id, echoed from the request when valid
Limit of the tightest bucket
Requests left in its window
End of its window, epoch seconds
The documented shape of every error body on the versioned surface.
object
object
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example", "reason": "example", "next": "example", "request_id": "example", "errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ], "metadata": {}}Headers
Section titled “Headers”API version the response was produced for
Request id, echoed from the request when valid
Limit of the tightest bucket
Requests left in its window
End of its window, epoch seconds
Seconds until the bucket refills
temporarily_unavailable: the delivery records could not be read in time, or limits cannot be enforced; retry later. The heavy request is spent all the same
The documented shape of every error body on the versioned surface.
object
object
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example", "reason": "example", "next": "example", "request_id": "example", "errors": [ { "loc": [ "example" ], "msg": "example", "type": "example" } ], "metadata": {}}Headers
Section titled “Headers”API version the response was produced for
Request id, echoed from the request when valid
Limit of the tightest bucket
Requests left in its window
End of its window, epoch seconds