List integrations
const url = 'https://api.getsitecontrol.com/v1/sites/1/integrations?failures_days=7&limit=50';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?failures_days=7&limit=50' \ --header 'Authorization: Bearer <token>'Integrations of the site: connected services, webhooks and Zapier, each with its widget, whether it is on now (is_active) and how many of its recent deliveries failed (failures). The starting point when form responses do not arrive somewhere: find the integration here, with has_failures=true for the failing ones, then read its setup with get_integration, its counts with get_integration_stats and its records with list_integration_deliveries. These operations only read: none of them resends, retries or tests a delivery.
Filters combine: every one given must match. Ordered by kind (service, webhook, zapier), then by number. Deleted integrations and those of deleted widgets are not listed. An empty list means nothing is connected in that scope; it does not prove that deliveries work. A page holds up to limit items; while next_cursor is set, pass it as cursor for the next page.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Query Parameters
Section titled “Query Parameters”Only integrations of this widget, id from list_widgets
Only integrations of this widget, id from list_widgets
Only integrations of this kind
Only integrations of this kind
Only connected services of this name, as in service, such as mailchimp; the other kinds are left out
Only connected services of this name, as in service, such as mailchimp; the other kinds are left out
True: only integrations that are on; false: only off
True: only integrations that are on; false: only off
True: only integrations with a delivery created in the last failures_days that is failed now; false: only those without one
True: only integrations with a delivery created in the last failures_days that is failed now; false: only those without one
Window of failures and has_failures: this many 24-hour days back from now
Window of failures and has_failures: this many 24-hour days back from now
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
Responses
Section titled “Responses”object
object
Integration id, the kind and a number, such as webhook:12
Service: a connected service such as Mailchimp or HubSpot; webhook: a request to a URL the site set up; zapier: a URL that Zapier or a similar automation platform subscribed.
Connected service, such as mailchimp; null for the other kinds
Name of the integration; null for webhook and zapier
List, audience or other place in the service the data goes to; null for webhook and zapier
Saved destination URL of a webhook or zapier; null for a service
Body format of a webhook: JSON or form-encoded; null otherwise
Widget whose responses it sends
object
Widget id, as in list_widgets
True: switched on now; false: switched off now. Says nothing about when it was switched
Recent deliveries, over the failures_days of the request
object
The counts cover deliveries created in this many last 24-hour days
Deliveries created in the window
Of them, the ones whose current status is failed
Last time one of the failed deliveries was updated; null when none failed
Last time any delivery of it was updated as succeeded, whenever it was created; null when none ever did. Succeeded alone does not prove the destination got the data, see a delivery’s outcome
{ "items": [ { "kind": "service", "format": "json" } ]}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
widget_not_found: no such widget on the site
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
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