Subscriptions API
Manage which webhooks we deliver to and on what topics.
POST /v1/subscriptions
Create a webhook subscription.
curl https://api.aiactradar.com/v1/subscriptions \
-H "Authorization: Bearer $AIACTRADAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"webhook_url": "https://your-app.example/webhooks/aiactradar",
"topics": ["gpai", "high-risk"],
"source_filter": ["aioffice","aiboard","eurlex"],
"severity_min": "medium",
"language": "en"
}' Response includes webhook_secret — shown once:
{
"subscription": {
"id": "sub_…",
"webhook_url": "...",
"webhook_secret": "abc123… (64 hex chars)",
"topics": ["gpai", "high-risk"],
"source_filter": ["aioffice","aiboard","eurlex"],
"severity_min": "medium",
"language": "en",
"enabled": true,
"created_at": 1714000000000
},
"note": "webhook_secret is shown only once. Store it now to verify HMAC signatures.",
"disclaimer": "Information only — not legal advice."
} GET /v1/subscriptions
List your active subscriptions.
DELETE /v1/subscriptions/{id}
Soft-delete (sets enabled = 0). The record is kept for
audit and so duplicate creation doesn't collide.
POST /v1/subscriptions/{id}/test
Send a synthetic test webhook to your URL. The payload uses
severity:"info" and source:"test", signed with
your real secret. Use this during onboarding to verify your receiver.
curl -X POST https://api.aiactradar.com/v1/subscriptions/$SUB_ID/test \
-H "Authorization: Bearer $AIACTRADAR_API_KEY" Tier limits
| Tier | Active subscriptions |
|---|---|
| Indie | 1 |
| Team | 5 |
| GPAI | 25 |
| Embedded | 200 |