Webhooks
Webhooks
Get an HTTP request when new data lands.
Webhooks push events to your server as they happen: a new filing, an announcement, a finished transcript, or an alert rule firing. They need Pro+.
1. Register an endpoint
curl -X POST "https://api.q4.sa/v1/webhooks" \
-H "x-api-key: $Q4_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/q4/webhooks", "events": ["announcement.created"]}'The response includes a signing_secret, shown once.
2. Handle deliveries
We send a POST with a JSON body. Reply with any 2xx within 10 seconds, then do the work in the background.
{
"id": "evt_01JC8W3Y2Q",
"type": "announcement.created",
"created_at": "2026-11-03T04:02:11Z",
"data": {
"id": "ann_51Vb3k",
"symbol": "2222",
"title": "Saudi Aramco announces its interim financial results…"
}
}3. Verify the signature
Check the X-Q4-Signature header before trusting a delivery. See Signatures.
Retries
If you don't reply 2xx, we retry after 10 seconds, 1 minute, 10 minutes and 1 hour. After a day of failures the webhook is paused and we email you.
Deliveries can arrive more than once or out of order. Use the event id to skip duplicates.
