Webhook Events
Campaign created
A campaign was created.
postWebhookcampaign.created
Headers
webhook-idstring required
Example:whevt_A1b2C3d4E5f6
The event id; the same on every retry of this event. Dedupe on it.
webhook-timestampstring required
Example:1790332496
Unix seconds of this delivery attempt (re-signed on every retry). Reject values more than 5 minutes off.
webhook-signaturestring required
Example:v1,K5oZfzN95Z9UVu1EsfQmfVNQhnkZ2pj9o9NDN/H/pI4=
Space-separated v1,<base64 HMAC-SHA256 of "<webhook-id>.<webhook-timestamp>.<body>"> signatures, one per active signing secret (two during a rotation). Verify with any Standard Webhooks library.
Payload
Example payload
{
"data": {
"campaign": {
"timeZone": "UTC",
"videoTargetUnit": "videos",
"spec": {
"currency": "USD",
"schedule": {
"interval": "month",
"intervalCount": 1,
"anchor": "rolling",
"startsOn": "2026-10-01",
"timeZone": "UTC"
},
"videoTarget": 30,
"videoTargetUnit": "videos",
"briefId": "orgbrief_RwmraAffhMt9",
"payouts": {
"fixedSalary": {
"id": "rule_A1b2C3d4E5f6"
},
"basePayouts": [
{
"id": "rule_A1b2C3d4E5f6",
"perVideo": 10,
"steps": [
{
"id": "rule_A1b2C3d4E5f6",
"perVideo": 45
}
],
"minViews": 1000,
"platforms": [
"tiktok",
"instagram"
],
"conditions": {
"match": "all",
"items": [
{
"field": "contentType",
"operator": "is",
"values": [
"slideshow"
]
},
{
"field": "views",
"operator": "atLeast",
"value": 10000
}
]
},
"scope": "per_creative",
"creatives": "once"
}
],
"cpmPayouts": [
{
"scope": "per_video",
"creatives": "bestInWindow",
"platforms": [
"tiktok",
"instagram"
],
"conditions": {
"match": "all",
"items": [
{
"field": "contentType",
"operator": "is",
"values": [
"slideshow"
]
},
{
"field": "views",
"operator": "atLeast",
"value": 10000
}
]
},
"tiers": [
{
"id": "rule_A1b2C3d4E5f6",
"to": 100000,
"rate": 1
}
]
}
],
"flatBonuses": [
{
"scope": "per_video",
"creatives": "bestInWindow",
"mode": "highest",
"platforms": [
"tiktok",
"instagram"
],
"conditions": {
"match": "all",
"items": [
{
"field": "contentType",
"operator": "is",
"values": [
"slideshow"
]
},
{
"field": "views",
"operator": "atLeast",
"value": 10000
}
]
},
"tiers": [
{
"id": "rule_A1b2C3d4E5f6",
"to": 100000,
"amount": 50
}
]
}
],
"baseCap": {
"id": "rule_A1b2C3d4E5f6"
},
"performanceCap": {
"id": "rule_A1b2C3d4E5f6"
},
"eligibility": {
"windowDays": 31,
"publicationScope": "include_earlier"
}
}
}
}
}
}Response
Any 2xx within 15 seconds acknowledges the event. Anything else, a timeout or a redirect is retried (10 attempts over about 3 days); 410 disables the endpoint.
Changes
Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.