Retries & dead-letter queue

What we consider success

Any HTTP 2xx response within 10 seconds. Anything else (3xx, 4xx, 5xx, network error, timeout) is a delivery failure and triggers a retry.

Retry schedule

AttemptDelay since previous
1 (initial)
21 minute
34 minutes
416 minutes
564 minutes
64 hours
(none)moved to DLQ after 24h total

Dead-letter queue

After the 6th failed attempt, the delivery is moved to our DLQ and marked status: gave_up in the deliveries table. We do not auto-retry from the DLQ — but you can replay them.

# List your DLQ deliveries
curl 'https://api.aiactradar.com/v1/deliveries?status=gave_up' \
  -H "Authorization: Bearer $AIACTRADAR_API_KEY"

# (Replay endpoint coming in v1.1)

Idempotency

The same event.id may arrive multiple times across retries (and even on the first attempt if your endpoint times out after a partial response). Use delivery.id to deduplicate per-attempt, and event.id for end-to-end deduplication.

What kills your delivery rate

Disabling deliveries

If you need to pause without losing the subscription:

curl -X DELETE https://api.aiactradar.com/v1/subscriptions/$SUB_ID \
  -H "Authorization: Bearer $AIACTRADAR_API_KEY"

This soft-deletes (sets enabled = 0). Re-create the subscription to resume.