Scope3 · AsyncAPI Specification

Scope3 Webhooks

Version

View Spec View on GitHub CompanyEnterpriseAdvertisingCarbon EmissionsSustainabilityAdTechMeasurementArtificial IntelligenceAgenticAdCPMCPProgrammaticMedia BuyingPublishingAsyncAPIWebhooksEvents

AsyncAPI Specification

Raw ↑
generated: '2026-08-13'
method: searched
source: openapi/_original/scope3-buyer-openapi-original.yml, https://docs.interchange.io/v2/reference/public-callback-url-requirements
spec_type: Webhooks
surface: >-
  Scope3 Interchange webhook subscriptions (buyer API) plus AdCP async status callbacks on the
  agentic platform
description: >-
  The Interchange Buyer API ships a real, first-class webhook-subscription resource with three
  published operations and an HMAC-style shared secret. Beyond that registry, the platform is
  event-driven over AdCP: long-running work (media-buy activation, discovery, syndication)
  reports status via callbacks with a documented polling fallback, and the `scope3` npm SDK
  ships a WebhookServer class for handling AdCP events.
subscription_api:
  base: https://api.interchange.io/api/v2/buyer
  spec: openapi/_original/scope3-buyer-openapi-original.yml
  operations:
  - {operationId: createWebhookSubscription, method: POST, path: /webhook-subscriptions, summary: Register a webhook subscription}
  - {operationId: listWebhookSubscriptions, method: GET, path: /webhook-subscriptions, summary: List webhook subscriptions}
  - {operationId: deleteWebhookSubscription, method: DELETE, path: '/webhook-subscriptions/{id}', summary: Delete a webhook subscription}
  registration_contract:
    url: {type: string, format: uri, maxLength: 2048, required: true}
    secret: {type: string, minLength: 16, maxLength: 256, required: true}
    eventTypes: {type: array, minItems: 1, required: true}
  callback_requirements: https://docs.interchange.io/v2/reference/public-callback-url-requirements
event_types:
  note: >-
    The published enum on createWebhookSubscription.eventTypes carries exactly one value today.
    Recorded as published; no additional event names were invented.
  enum:
  - discovery.revision
async_status_areas:
  note: >-
    Async surfaces that report completion via callback or polling, captured from the published
    buyer/storefront skill.md guides, the rate-limits page and the SDK README. These are
    documented status transitions, not a published event-name registry.
  areas:
  - media-buy status transitions (pending -> active, active -> paused)
  - discovery / discover-products completion
  - ADCP comply-check completion
  - syndication status (audiences, event sources, catalogs to AdCP agents)
  - creative-review / approval-queue updates (storefront persona)
polling_fallback:
  supported: true
  guidance: https://docs.interchange.io/v2/reference/rate-limits
  cadences:
  - {endpoint: 'GET /campaigns/:id/media-buy-status', cadence: 30s minimum}
  - {endpoint: 'GET /discovery/:id/discover-products', cadence: 5-10s while pending, backoff: 15s after one minute}
  - {endpoint: 'GET /campaigns/:id after POST /execute', cadence: 15-30s}
  note: Scope3 recommends webhooks where available to remove the need to poll.
sdk_support:
  server_class: WebhookServer
  package: npm scope3
  see: packages/scope3-packages.yml
notifications_api:
  note: >-
    Distinct from webhooks — an in-platform notification inbox with its own operations
    (listNotifications, readNotification, readAllNotifications, acknowledgeNotification) in both
    the buyer and storefront specs.
no_asyncapi_document: true
notes: >-
  Scope3 publishes no machine-readable AsyncAPI document on any host; probes of /asyncapi.yaml
  and the docs event pages found none, and none was fabricated. The webhook catalog above is
  derived from the provider's own OpenAPI and documentation. Upgraded from the 2026-07-21
  version, which predated discovery of the Interchange specs and recorded only the AdCP event
  areas without the subscription API, the registration contract, or the published event enum.
measurement_apis:
  event_surface: none
  note: >-
    The Carbon Calculator and AI Impact Measurement APIs are request/response only and publish
    no webhook or event surface.