List your webhooks

Overview

See every active subscription for your partner.

Use this to check what's set up, or to find a subscription's id.

You'll need a partner token.

Returns each subscription with its URL, type, filter, and status, newest first. Deleted subscriptions aren't listed. The signing secret isn't included; use Show the current secret for that.

Prerequisites

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

GET /api/v1/partner/webhooks

Authentication

Partner token

  • Only partner users can call it; other tokens get 403.
  • Lists only your own partner's subscriptions.

Rate limit

This endpoint has no rate limit.

Request parameters

None.

Request body

None.

Request payload

None.

Response body

The payload is inside data.

FieldTypeDescription
dataarray of objectsYour subscriptions, newest first. Empty when you have none.
data[].idintegerThe subscription's id (webhookSubscriptionId).
data[].partner_company_idintegerYour partner id.
data[].labelstringYour name for the subscription.
data[].webhook_urlstringWhere deliveries are sent.
data[].eventsarray of strings or nullThe event filter. null: all immediate events. Always null on a batch subscription.
data[].payload_modestringfull (the review, who did it, and the history entry) or minimal (event name and ids only). Always full on a batch subscription.
data[].delivery_kindstringimmediate (each event as it happens) or batch (one cache_invalidation ping per location per interval).
data[].batch_interval_hoursinteger or nullHours between batches: 1, 2, 4, 6 or 12. null on an immediate subscription.
data[].delivery_labelstringThe delivery type in words: immediate, hourly batch or every N hours.
data[].last_batch_dispatched_atstring or nullWhen the last batch was sent (ISO 8601). Set to the creation time for a new batch subscription; null on an immediate one.
data[].is_activebooleanWhether deliveries are being sent.
data[].hmac_secret_fingerprintstringThe first 16 characters of the SHA-256 hash of the signing secret, so you can tell which secret is current. The secret itself is never returned here.
data[].last_succeeded_atstring or nullWhen a delivery last succeeded (ISO 8601), or null.
data[].last_failed_atstring or nullWhen a delivery last failed (ISO 8601), or null.
data[].last_failure_reasonstring or nullWhy the last delivery failed, or null.
data[].consecutive_failure_countintegerFailed deliveries in a row since the last success.
data[].created_atstringWhen the subscription was created (ISO 8601).
data[].updated_atstringWhen it last changed (ISO 8601).

Response payload

{
  "data": {
    "data": [
      {
        "id": 4,
        "partner_company_id": 5,
        "label": "Nightly refresh",
        "webhook_url": "https://partner.example.com/hooks/sau-batch",
        "events": null,
        "payload_mode": "full",
        "delivery_kind": "batch",
        "batch_interval_hours": 4,
        "delivery_label": "every 4 hours",
        "last_batch_dispatched_at": "2026-06-16T14:00:00+00:00",
        "is_active": true,
        "hmac_secret_fingerprint": "335b947fe611b6b2",
        "last_succeeded_at": "2026-06-16T14:00:02+00:00",
        "last_failed_at": null,
        "last_failure_reason": null,
        "consecutive_failure_count": 0,
        "created_at": "2026-06-16T10:30:00+00:00",
        "updated_at": "2026-06-16T10:30:00+00:00"
      },
      {
        "id": 3,
        "partner_company_id": 5,
        "label": "Production webhook",
        "webhook_url": "https://partner.example.com/hooks/sau",
        "events": [
          "review_pull_connected",
          "review_pull_disconnected",
          "usage.limit_reached"
        ],
        "payload_mode": "full",
        "delivery_kind": "immediate",
        "batch_interval_hours": null,
        "delivery_label": "immediate",
        "last_batch_dispatched_at": null,
        "is_active": true,
        "hmac_secret_fingerprint": "587647e874083b23",
        "last_succeeded_at": "2026-06-16T10:27:30+00:00",
        "last_failed_at": null,
        "last_failure_reason": null,
        "consecutive_failure_count": 0,
        "created_at": "2026-06-16T10:23:23+00:00",
        "updated_at": "2026-06-16T10:23:23+00:00"
      }
    ]
  }
}

Examples

Success payload

See Response payload.

Error payload

403 Not a Partner token

{
  "message": "Only partner-admin users can manage webhook subscriptions.",
  "status": "error",
  "errors": []
}

500 Server error

{
  "message": "Server Error"
}
StatusMeaning
200Your subscriptions.
401The token is missing, expired or invalid.
403The token isn't a Partner token.
500Unexpected server error.

Example request

curl --request GET \
  --url "https://production-api.shoutaboutus.com/api/v1/partner/webhooks" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json'

Did this page help you?