StackAdapt · AsyncAPI Specification

Stackadapt Webhooks

Version

View Spec View on GitHub Programmatic AdvertisingDigital AdvertisingCampaign ManagementAdTechDSPDemand-Side PlatformNative AdvertisingDisplay AdvertisingVideo AdvertisingConnected TVAudience TargetingReal-Time BiddingConversion TrackingPerformance ReportingAsyncAPIEvents

AsyncAPI Specification

stackadapt-webhooks.yml Raw ↑
generated: '2026-08-13'
method: derived
source: graphql/stackadapt-schema.graphql
spec_type: none
note: >-
  StackAdapt publishes NO AsyncAPI document — /asyncapi.yaml and /asyncapi.json were not served
  on any host, and no event catalogue page is publicly crawlable. It does, however, ship a real
  first-party webhook surface, and that surface is fully described by the GraphQL schema already
  captured in this repo: a Webhook entity, a WebhookEvent enum, a webhooks query and three
  management mutations. Everything below is read from that SDL. Nothing is invented — in
  particular, no payload schema is recorded, because the schema describes the SUBSCRIPTION
  object and not the body StackAdapt POSTs to the subscriber URL.

surface: webhooks
transport: https
delivery: outbound HTTP POST to a subscriber-supplied URL

events:
- name: CAMPAIGN_CREATION
  title: Campaign Creation
  description: Fired when a campaign is created.
  source: 'graphql/stackadapt-schema.graphql#WebhookEvent'
- name: CAMPAIGN_UPDATES
  title: Campaign Updates
  description: Fired when a campaign is updated.
  source: 'graphql/stackadapt-schema.graphql#WebhookEvent'
- name: CREATIVE_CREATION
  title: Creative Creation
  description: Fired when a creative is created.
  source: 'graphql/stackadapt-schema.graphql#WebhookEvent'

event_count: 3

subscription_object:
  type: Webhook
  source: 'graphql/stackadapt-schema.graphql#Webhook'
  fields:
  - {name: id, type: 'ID!', description: ID of the webhook}
  - {name: name, type: 'String!', description: Name of the webhook}
  - {name: event, type: 'WebhookEvent!', description: Event type of webhook}
  - {name: url, type: 'String!', description: 'URL that the webhook will be sent to. Must start with https://'}
  - {name: active, type: 'Boolean!', description: Whether the webhook is active}
  - {name: disableMail, type: 'Boolean!', description: Whether to disable the mail delivery when webhook is present, if applicable}
  - {name: createdAt, type: 'ISO8601DateTime!'}
  - {name: updatedAt, type: 'ISO8601DateTime!'}

management:
  list: 'Query.webhooks -> WebhookConnection (Relay cursor pagination, totalCount)'
  create: 'Mutation.createWebhook(input: CreateWebhookInput!): CreateWebhookPayload!'
  update: 'Mutation.updateWebhook(input: UpdateWebhookInput!): UpdateWebhookPayload!'
  delete: 'Mutation.deleteWebhook(input: DeleteWebhookInput!): DeleteWebhookPayload!'
  source: graphql/stackadapt-schema.graphql

transport_requirements:
  https_only: true
  evidence: 'CreateWebhookInput.url — "The url that the webhook send to. Must start with https://."'

related_event_surfaces:
- name: Data Hub Webhook API
  graphql_field: 'Query.dataHubWebhookApi / Mutation.dataHubWebhookApi'
  input: DataHubWebhookApiUpsertDataHubProfilesRequestInput
  direction: inbound
  note: >-
    An INBOUND webhook receiver, not an outbound event feed — a namespace for pushing profile
    records into StackAdapt Data Hub. Recorded here for completeness because the name collides
    with the outbound webhook surface above.
- name: Pixel passbacks
  graphql_field: 'Pixel.passbacks -> PixelPassbackConnection, Pixel.passbackValues'
  direction: outbound
  note: >-
    Passback parameters returned when a pixel fires, configured as macro key/value pairs
    (PixelPassbackInput). A server-to-server callback mechanism distinct from the webhook
    subscription surface above.

gaps:
- No AsyncAPI document is published.
- >-
  No payload schema, signing/verification scheme, retry policy, delivery-ordering guarantee or
  replay mechanism is publicly documented. docs.stackadapt.com disallows all crawlers, so if
  StackAdapt documents any of these, it is not publicly readable.
- >-
  Only three event types exist, all creation/update notifications on campaigns and creatives.
  There is no delivery, spend, budget-pacing, conversion or approval event, so an agent cannot
  be driven by StackAdapt state changes — it must poll the reporting queries.

Work with this as data

Every AsyncAPI spec here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for asyncapi

4 MCP tools reach this
  • find_asyncapisBrowse and filter every AsyncAPI spec in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This AsyncAPI spec
curl "https://apis.io/api/v1/asyncapis/stackadapt-webhooks"
All asyncapi
curl "https://apis.io/api/v1/asyncapis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.