All webhooks
Broadcasts
Broadcast created
broadcast.createdFires when a new broadcast is created. The broadcast starts in `draft` or `scheduled` status — actual sending begins later and is accompanied by separate lifecycle events.
HTTP request
AISAR sends a signed POST request to your webhook_url:
http
POST {webhook_url}
Content-Type: application/json
X-AISAR-Signature: sha256=...
{
"event": "broadcast.created",
"event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
"timestamp": "2026-03-26T10:00:00.000000Z",
"company_id": 1,
"data": {
"broadcast": {
"id": 8,
"name": "March Promo",
"status": "draft",
"channels": [2, 5],
"created_at": "2026-03-26T10:00:00.000000Z"
}
}
}The X-AISAR-Signature header carries an HMAC-SHA256 signature of the request body — use it to verify the request came from AISAR.
Example payload
json
{
"event": "broadcast.created",
"event_id": "evt_01JXXXXXXXXXXXXXXXXXXXXX",
"timestamp": "2026-03-26T10:00:00.000000Z",
"company_id": 1,
"data": {
"broadcast": {
"id": 8,
"name": "March Promo",
"status": "draft",
"channels": [2, 5],
"created_at": "2026-03-26T10:00:00.000000Z"
}
}
}Payload fields
| Field | Type | Description |
|---|---|---|
broadcast.id | integer | Broadcast ID |
broadcast.name | string | Broadcast name |
broadcast.status | string | Broadcast status: `draft`, `scheduled`, `sending`, `completed`, `failed`, or `cancelled` |
broadcast.channels | array | IDs of the channels used for this broadcast |
broadcast.created_at | string | ISO 8601 creation timestamp |