Skip to content

List integration deliveries

GET
https://api.getsitecontrol.com/v1/sites/{site_id}/integrations/{integration_id}/deliveries
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.

FieldDescription
site_id
required
Site Id
integer
integration_id
required
Integration Id

Integration id from list_integrations, such as webhook:12

string
/^(?:service|webhook|zapier):[1-9][0-9]{0,9}$(?![\s\S])/

Integration id from list_integrations, such as webhook:12

FieldDescription
cursor
Cursor

next_cursor of the previous page; omit for the first

string

next_cursor of the previous page; omit for the first

limit
Limit

Items per page

integer
default: 50 >= 1 <= 100

Items per page

created_since
required
Created Since

Created at or after this moment; last 31 × 24 hours; without an offset, taken as UTC; a plain date means its start

string format: date-time

Created at or after this moment; last 31 × 24 hours; without an offset, taken as UTC; a plain date means its start

created_before
Created Before

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

string format: date-time

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

status

Only deliveries in one of these current statuses; repeat for several

Array<string>
<= 4 items
Allowed values: pending succeeded failed cancelled

Only deliveries in one of these current statuses; repeat for several

response_id
Response Id

Only deliveries of this form response, by its id; a deleted response matches nothing

integer
> 0

Only deliveries of this form response, by its id; a deleted response matches nothing

order

Order of the items: oldest first (default) or newest first; asc and desc mean the same

string
Allowed values: oldest newest

Order of the items: oldest first (default) or newest first; asc and desc mean the same

Successful Response

Media typeapplication/json
IntegrationDeliveryPage
object
FieldDescription
items
required
Items
Array<object>
IntegrationDelivery
object
FieldDescription
id
required
Id

Opaque id, unique within this integration; do not parse

string
status
required
IntegrationDeliveryStatus

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.

string
Allowed values: pending succeeded failed cancelled
outcome

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

string
Allowed values: accepted_by_destination accepted_with_redirect not_sent finished_unconfirmed rejected_by_destination refused_not_retried failed_no_http_status failed_other
attempts
required
Attempts

Recorded attempts; the sender may reset this counter, so it is not a count of HTTP requests

integer
response_id
Response Id

Id of the form response the delivery carries; null when there is none or the response was deleted

integer
nullable
status_code
Status Code

HTTP status the destination last answered with, 100 to 599; null without an HTTP answer

integer
nullable
reason
Reason

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

string
nullable
message
Message

Stored text of the outcome: the destination’s answer or our error, cut to 1000 characters; null when succeeded

string
nullable <= 1000 characters
created_at
required
Created At

When the delivery was created; lists and statistics select by it

string format: date-time
updated_at
required
Updated At

Last time the record was written; not when a request finished

string format: date-time
attempt_history
Attempt History

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

Array<object>
nullable
IntegrationDeliveryAttempt
object
FieldDescription
number
required
Number

1 for the first request of a delivery

integer
started_at
required
Started At
string format: date-time
duration_ms
Duration Ms

How long the request took; null when unknown

integer
nullable
outcome
Outcome

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

string
nullable
status_code
Status Code

HTTP status the destination answered with

integer
nullable
location
Location

The destination’s Location header, as stored; redirects are not followed

string
nullable
error
Error

Short error text of the request, when it recorded one

string
nullable <= 255 characters
next_cursor
Next Cursor
string
nullable

Example

{
"items": [
{
"status": "pending",
"outcome": "accepted_by_destination"
}
]
}
FieldDescription
GSC-Version
string

API version the response was produced for

X-Request-Id
string

Request id, echoed from the request when valid

X-RateLimit-Limit
integer

Limit of the tightest bucket

X-RateLimit-Remaining
integer

Requests left in its window

X-RateLimit-Reset
integer

End of its window, epoch seconds

Unsupported GSC-Version

Media typeapplication/problem+json
Problem

The documented shape of every error body on the versioned surface.

object
FieldDescription
type
required
Type
string
title
required
Title
string
status
required
Status
integer
detail
Detail
string
nullable
instance
required
Instance
string
reason
Reason
string
nullable
next
Next
string
nullable
request_id
required
Request Id
string
errors
Errors
Array<object>
nullable
ValidationIssue
object
FieldDescription
loc
required
Loc
Array
msg
required
Msg
string
type
required
Type
string
metadata
Metadata
object

Example · Generated

{
"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": {}
}
FieldDescription
GSC-Version
string

API version the response was produced for

X-Request-Id
string

Request id, echoed from the request when valid

X-RateLimit-Limit
integer

Limit of the tightest bucket

X-RateLimit-Remaining
integer

Requests left in its window

X-RateLimit-Reset
integer

End of its window, epoch seconds

Missing or invalid API key or access token

Media typeapplication/problem+json
Problem

The documented shape of every error body on the versioned surface.

object
FieldDescription
type
required
Type
string
title
required
Title
string
status
required
Status
integer
detail
Detail
string
nullable
instance
required
Instance
string
reason
Reason
string
nullable
next
Next
string
nullable
request_id
required
Request Id
string
errors
Errors
Array<object>
nullable
ValidationIssue
object
FieldDescription
loc
required
Loc
Array
msg
required
Msg
string
type
required
Type
string
metadata
Metadata
object

Example · Generated

{
"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": {}
}
FieldDescription
GSC-Version
string

API version the response was produced for

X-Request-Id
string

Request id, echoed from the request when valid

X-RateLimit-Limit
integer

Limit of the tightest bucket

X-RateLimit-Remaining
integer

Requests left in its window

X-RateLimit-Reset
integer

End of its window, epoch seconds

WWW-Authenticate
string

Authentication scheme: Bearer

Access denied

Media typeapplication/problem+json
Problem

The documented shape of every error body on the versioned surface.

object
FieldDescription
type
required
Type
string
title
required
Title
string
status
required
Status
integer
detail
Detail
string
nullable
instance
required
Instance
string
reason
Reason
string
nullable
next
Next
string
nullable
request_id
required
Request Id
string
errors
Errors
Array<object>
nullable
ValidationIssue
object
FieldDescription
loc
required
Loc
Array
msg
required
Msg
string
type
required
Type
string
metadata
Metadata
object

Example · Generated

{
"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": {}
}
FieldDescription
GSC-Version
string

API version the response was produced for

X-Request-Id
string

Request id, echoed from the request when valid

X-RateLimit-Limit
integer

Limit of the tightest bucket

X-RateLimit-Remaining
integer

Requests left in its window

X-RateLimit-Reset
integer

End of its window, epoch seconds

integration_not_found: no such integration on the site, or its widget is deleted

Media typeapplication/problem+json
Problem

The documented shape of every error body on the versioned surface.

object
FieldDescription
type
required
Type
string
title
required
Title
string
status
required
Status
integer
detail
Detail
string
nullable
instance
required
Instance
string
reason
Reason
string
nullable
next
Next
string
nullable
request_id
required
Request Id
string
errors
Errors
Array<object>
nullable
ValidationIssue
object
FieldDescription
loc
required
Loc
Array
msg
required
Msg
string
type
required
Type
string
metadata
Metadata
object

Example · Generated

{
"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": {}
}
FieldDescription
GSC-Version
string

API version the response was produced for

X-Request-Id
string

Request id, echoed from the request when valid

X-RateLimit-Limit
integer

Limit of the tightest bucket

X-RateLimit-Remaining
integer

Requests left in its window

X-RateLimit-Reset
integer

End of its window, epoch seconds

Media typeapplication/problem+json

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

Problem

The documented shape of every error body on the versioned surface.

object
FieldDescription
type
required
Type
string
title
required
Title
string
status
required
Status
integer
detail
Detail
string
nullable
instance
required
Instance
string
reason
Reason
string
nullable
next
Next
string
nullable
request_id
required
Request Id
string
errors
Errors
Array<object>
nullable
ValidationIssue
object
FieldDescription
loc
required
Loc
Array
msg
required
Msg
string
type
required
Type
string
metadata
Metadata
object

Example · Generated

{
"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": {}
}
FieldDescription
GSC-Version
string

API version the response was produced for

X-Request-Id
string

Request id, echoed from the request when valid

X-RateLimit-Limit
integer

Limit of the tightest bucket

X-RateLimit-Remaining
integer

Requests left in its window

X-RateLimit-Reset
integer

End of its window, epoch seconds

Rate limited

Media typeapplication/problem+json
Problem

The documented shape of every error body on the versioned surface.

object
FieldDescription
type
required
Type
string
title
required
Title
string
status
required
Status
integer
detail
Detail
string
nullable
instance
required
Instance
string
reason
Reason
string
nullable
next
Next
string
nullable
request_id
required
Request Id
string
errors
Errors
Array<object>
nullable
ValidationIssue
object
FieldDescription
loc
required
Loc
Array
msg
required
Msg
string
type
required
Type
string
metadata
Metadata
object

Example · Generated

{
"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": {}
}
FieldDescription
GSC-Version
string

API version the response was produced for

X-Request-Id
string

Request id, echoed from the request when valid

X-RateLimit-Limit
integer

Limit of the tightest bucket

X-RateLimit-Remaining
integer

Requests left in its window

X-RateLimit-Reset
integer

End of its window, epoch seconds

Retry-After
integer

Seconds until the bucket refills

Media typeapplication/problem+json

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

Problem

The documented shape of every error body on the versioned surface.

object
FieldDescription
type
required
Type
string
title
required
Title
string
status
required
Status
integer
detail
Detail
string
nullable
instance
required
Instance
string
reason
Reason
string
nullable
next
Next
string
nullable
request_id
required
Request Id
string
errors
Errors
Array<object>
nullable
ValidationIssue
object
FieldDescription
loc
required
Loc
Array
msg
required
Msg
string
type
required
Type
string
metadata
Metadata
object

Example · Generated

{
"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": {}
}
FieldDescription
GSC-Version
string

API version the response was produced for

X-Request-Id
string

Request id, echoed from the request when valid

X-RateLimit-Limit
integer

Limit of the tightest bucket

X-RateLimit-Remaining
integer

Requests left in its window

X-RateLimit-Reset
integer

End of its window, epoch seconds