List my subscriptions

Overview

List every active (non-soft-deleted) webhook subscription owned by the caller's partner company, newest first. Raw HMAC secret material is never returned — only the fingerprint.

Prerequisites

  • A bearer token. Callable with Partner tokens.

Base URL

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

Endpoint

GET /api/v1/partner/webhooks

Authentication

  • Requires a bearer token in the Authorization: Bearer <bearer-token> header.
  • Who can call it: Partner tokens.
  • The controller calls requirePartnerCompanyId, which 401s if unauthenticated and 403s unless request.user.person.company.bundle_id === 1 (partner-admin).
  • The endpoint scopes rows to that resolved partner_company_id.

Rate limit

  • No rate limit.

Request

  • No path/query/body params.

Response

  • data.data[].id (int)
  • data.data[].partner_company_id (int)
  • data.data[].label (string)
  • data.data[].webhook_url (string)
  • data.data[].events (array|null) — null = wildcard (all events)
  • data.data[].payload_mode (string) — full | minimal; defaults to full
  • data.data[].delivery_kind (string) — immediate | batch
  • data.data[].batch_interval_hours (int|null) — null on immediate subs
  • data.data[].delivery_label (string) — human label, e.g. immediate or every 4 hours
  • data.data[].last_batch_dispatched_at (string ISO-8601|null)
  • data.data[].is_active (bool)
  • data.data[].hmac_secret_fingerprint (string)
  • data.data[].last_succeeded_at (string ISO-8601|null)
  • data.data[].last_failed_at (string ISO-8601|null)
  • data.data[].last_failure_reason (string|null)
  • data.data[].consecutive_failure_count (int)
  • created_at / updated_at (string ISO-8601)

200 Success · 200

{ "data": { "data": [
  {
    "id": 1,
    "partner_company_id": 5,
    "label": "Review-site connection",
    "webhook_url": "https://example.com/hooks/review-events",
    "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": "5373187189f86daf",
    "last_succeeded_at": "2026-06-15T13:41:47+00:00",
    "last_failed_at": null,
    "last_failure_reason": null,
    "consecutive_failure_count": 0,
    "created_at": "2026-06-11T11:30:50+00:00",
    "updated_at": "2026-06-15T13:41:47+00:00"
  }
] } }

Errors

StatusMeaning
401The bearer token is missing, expired or invalid
500Unexpected server error

Example request

curl --request GET \
  --url "https://production-api.shoutaboutus.com/api/v1/partner/webhooks" \
  --header 'Authorization: Bearer {{bearerToken}}' \
  --header 'Accept: application/json'

Did this page help you?