Get one webhook

Overview

Get a single subscription's details.

Use this to check a subscription's settings.

You'll need the subscription id.

Returns the subscription. The signing secret isn't included.

Prerequisites

Base URL

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

Endpoint

GET /api/v1/partner/webhooks/{webhookSubscriptionId}

Authentication

Partner token

  • Only partner users can call it; other tokens get 403.
  • Only your own partner's subscriptions: any other id, including another partner's, gets 404.

Rate limit

This endpoint has no rate limit.

Request parameters

ParameterInTypeRequiredDescription
webhookSubscriptionIdpathintegerYesThe subscription's id, from List your webhooks.

Request body

None.

Request payload

None.

Response body

The payload is inside data.

FieldTypeDescription
dataobjectThe subscription.
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"
    }
  }
}

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": []
}

404 Subscription not found

{
  "message": "Subscription not found.",
  "status": "error",
  "errors": []
}

500 Server error

{
  "message": "Server Error"
}
StatusMeaning
200The subscription.
401The token is missing, expired or invalid.
403The token isn't a Partner token.
404No subscription with this id belongs to your partner.
500Unexpected server error.

Example request

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

Did this page help you?