Treasure Data · AsyncAPI Specification
Treasure Data Webhooks
Version
View Spec
View on GitHub
Customer Data PlatformCDPBig DataData WarehouseHivePrestoEnterpriseArtificial IntelligenceMarketingAnalyticsAsyncAPIWebhooksEvents
AsyncAPI Specification
name: Treasure Data Event and Webhook Surface
description: >-
Treasure AI publishes no AsyncAPI document. It does document a real event surface in both directions —
inbound event ingestion through the Postback APIs and the Personalization Service, and outbound
webhook activation that streams customer data to a third-party endpoint in real time, optionally with
cryptographic signature verification. This artifact catalogues that surface as documented; nothing here
is inferred beyond what the provider publishes.
specificationVersion: '0.1'
generated: '2026-08-13'
method: searched
source: >-
https://docs.treasure.ai/int/webhook-output-streaming-integration,
https://docs.treasure.ai/int/ss-webhook-streaming-export-integration,
https://docs.treasure.ai/apis/postback/quickstart,
https://docs.treasure.ai/apis/postback-v2,
openapi/treasure-data-postback-api-openapi.yml,
openapi/treasure-data-postback-api-v2-openapi.yml,
openapi/treasure-data-personalization-api-openapi.yml
asyncapi_spec: null
asyncapi_published: false
outbound_webhooks:
supported: true
model: activation
note: >-
Treasure AI does not emit platform lifecycle webhooks (no "job.completed" or "segment.updated" event
to subscribe to). Outbound HTTP is configured as an activation destination inside a real-time journey,
so the customer chooses the endpoint, headers and payload rather than receiving a fixed event schema.
integrations:
- name: Webhook Output Streaming Integration
docs: https://docs.treasure.ai/int/webhook-output-streaming-integration
direction: outbound
trigger: real-time triggered activation inside a Real-time Journey
configuration:
- {field: URL prefix, note: 'set on the Authentication; every activation using it must match this baseURL'}
- {field: API Key, note: 'referenced in headers, URL or body as {{auth.api_key}}'}
- {field: endpoint URL, note: per-activation}
- {field: custom headers, note: 'per-activation, maximum 32'}
- {field: output payload, note: per-activation}
limitations:
- OAuth 2.0 is not supported
- Duplicate request headers are not detected
- Request payloads cannot exceed 250 KB
- Maximum 32 custom request headers
- RT 2.0 triggered activation does not support PII hiding
- name: Realtime Secure Signed Webhook Streaming Export Integration
docs: https://docs.treasure.ai/int/ss-webhook-streaming-export-integration
direction: outbound
security: cryptographic signature verification on the delivered payload
trigger: real-time activation workflow
inbound_events:
supported: true
note: >-
The ingestion side is a synchronous HTTP POST API rather than a broker, which is why no AsyncAPI
document exists. It is nonetheless the event surface for every SDK.
endpoints:
- name: Postback API
spec: openapi/treasure-data-postback-api-openapi.yml
base: https://in.treasuredata.com
operations: 1
auth: none declared in spec (write key travels in the path/payload)
used_by: [JavaScript SDK, iOS SDK, Android SDK, React Native SDK, Cordova SDK]
docs: https://docs.treasure.ai/apis/postback/quickstart
- name: Postback API v2
spec: openapi/treasure-data-postback-api-v2-openapi.yml
base: https://{region}.records.in.treasuredata.com
path: /postback/v3/event/{database_name}/{table_name}
operations: 1
auth: [X-TD-Write-Key, 'Authorization: TD1 ...']
errors: [400, 403, 413]
docs: https://docs.treasure.ai/apis/postback-v2
- name: Personalization Service
spec: openapi/treasure-data-personalization-api-openapi.yml
base: https://us01.p13n.in.treasuredata.com
operations: 1
purpose: >-
Ingest single events and request personalization offers from real-time engines.
versioning: 'Accept: application/vnd.treasuredata.v1+json'
errors: [400, 429, 500]
streaming_import:
name: Streaming / Stream Import API
host_prefix: api-import
format: gzipped msgpack
used_by: [td-agent, TD Toolbelt, Fluentd collector, most client libraries]
docs: https://docs.treasure.ai/apis
third_party_webhook_ingestion:
note: >-
Several import integrations receive webhooks from other platforms into Treasure AI rather than out of
it — Branch Metrics, mParticle, Shopify streaming, LINE OA streaming and Zapier. These are connector
configurations, not a Treasure AI event contract.
examples:
- https://docs.treasure.ai/int/shopify-streaming-import-integration
- https://docs.treasure.ai/int/mparticle-import-integration
- https://docs.treasure.ai/int/branch-metrics-import-integration
- https://docs.treasure.ai/int/zapier-import-integration
gaps:
- >-
No AsyncAPI document, no event catalogue, and no subscribable platform events. A customer cannot be
notified that a query job finished, a segment refreshed or a workflow attempt failed except by
polling the REST APIs.
- >-
The outbound webhook payload is entirely customer-defined, so there is no schema to publish — which
is exactly why an AsyncAPI would help: it could describe the envelope, the signature scheme and the
delivery guarantees rather than the body.