Skip to content

Get an event subscription delivery

GET
https://api.getsitecontrol.com/v1/sites/{site_id}/event-subscriptions/{event_subscription_id}/deliveries/{delivery_id}
curl --request GET \
--url https://api.getsitecontrol.com/v1/sites/1/event-subscriptions/1/deliveries/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>'

One delivery with the request as sent and every attempt: status code, outcome, error and the first 16 KB of the receiver’s answer. In the request, URL query values, Authorization, Cookie and secret headers read ***. accepted means the receiver answered 2xx, 302 or 303, not that it processed the event.

FieldDescription
site_id
required
Site Id
integer
event_subscription_id
required
Event Subscription Id

Event subscription id from list_event_subscriptions

integer
>= 1 < 9223372036854776000

Event subscription id from list_event_subscriptions

delivery_id
required
Delivery Id

Delivery id from list_event_subscription_deliveries or test_event_subscription; the receiver got it as the webhook-id header

string format: uuid

Delivery id from list_event_subscription_deliveries or test_event_subscription; the receiver got it as the webhook-id header

Successful Response

Media typeapplication/json
EventSubscriptionDeliveryDetail
object
FieldDescription
id
required
Id

Delivery id, sent as the webhook-id header: the same on every retry, new on a redelivery

string format: uuid
event_id
required
Event Id

id of the event in the payload: the same for every event subscription and every redelivery of the event

string
event_type
Event Type

Null once the event is purged

string
nullable
is_test
required
Is Test

True for a delivery of test_event_subscription

boolean
status
required
EventSubscriptionDeliveryStatus

Pending: waiting for an attempt or being sent; succeeded: accepted by the receiver; failed: given up, see outcome; cancelled: dropped before sending because the event subscription was deleted, switched off or saved since, or its URL host changed.

string
Allowed values: pending succeeded failed cancelled
outcome
Outcome

How a finished delivery ended. accepted: the receiver answered 2xx, 302 or 303, which is not proof it processed the event; rejected: another 4xx, or 301, 307, 308 and other 3xx (the receiver moved, see the attempt’s location), not retried; gone: 410; retry_exhausted: every retry failed; expired: no time left for a retry; rate_limited: the receiver’s 429 pause ran past the deadline; invalid_request: the request could not be built, e.g. a template failed on the event (last_error says why); private_network_block: the host resolved to a private address; cancelled: see status. More values may appear

string
nullable
attempts
required
Attempts

Requests sent so far

integer
status_code
Status Code

HTTP status of the last attempt’s answer; null without an answer

integer
nullable
last_error
Last Error

What went wrong last, e.g. HTTP 500 or render failed: ...

string
nullable
created_at
required
Created At
string format: date-time
next_attempt_at
Next Attempt At

When the next attempt is due; null once finished

string format: date-time
nullable
completed_at
Completed At

When it finished; null while pending

string format: date-time
nullable
redelivery_of
Redelivery Of

The delivery this one redelivers

string format: uuid
nullable
request
Request

The request as stored, masked

object
FieldDescription
method
required
Method
string
url
required
Url

With placeholders filled; in the journal query values read ***

string
content_type
Content Type

Content-Type sent

string
nullable
headers
required
Headers

Headers set on the event subscription; secret ones read ***, and in the journal Authorization and Cookie too. The webhook-* signature headers are added when sending

object
FieldDescription
key
additional properties
string
body
Body

The body as sent, as text

string
nullable
attempt_history
required
Attempt History

Every attempt, the first one first

Array<object>
EventSubscriptionDeliveryAttempt
object
FieldDescription
number
required
Number

1 for the first request of a delivery

integer
started_at
required
Started At
string format: date-time
finished_at
Finished At
string format: date-time
nullable
duration_ms
Duration Ms
integer
nullable
outcome
Outcome

Accepted: 2xx, 302 or 303; retryable: 408, 5xx, a timeout or a network error, may be tried again; rate_limited: 429; rejected: another 4xx, or 301, 307, 308 and other 3xx; gone: 410. More values may appear

string
nullable
status_code
Status Code

HTTP status of the receiver’s answer; null without an answer

integer
nullable
response_content_type
Response Content Type
string
nullable
response_body
Response Body

The first 16 KB of the receiver’s answer

string
nullable
is_response_truncated
required
Is Response Truncated

True when the answer was longer than response_body

boolean
retry_after
Retry After

The receiver’s Retry-After header, honoured for the next try

string
nullable
location
Location

The receiver’s Location header; redirects are not followed

string
nullable
error
Error

What went wrong, e.g. HTTP 500 or a network error

string
nullable

Example

{
"status": "pending"
}
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

Media typeapplication/problem+json

event_subscription_not_found: no event subscription with this id on the site; delivery_not_found: no delivery with this id in the event subscription’s journal; site_not_found: no such site

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

Validation failed

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

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

Temporarily unavailable; retry later

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