Registry Monitors
Registry Monitors
Create company monitors for German registry mirror changes and receive Svix-compatible webhooks. Monitor routes are direct API routes, not enrichments, because the create response returns a one-time signing secret.
[!WARNING]
Registry monitor routes require the German registry feature flag and are disabled by default.
Create Monitor
POST /api/registry/monitors
Authorization: Bearer eak_...
Content-Type: application/json
{
"subject_type": "company",
"company_id": "DE-HRB-F1103-267645",
"callback_url": "https://your-app.example/webhooks/registry"
}
Only company monitors are supported. Person monitors return 422.
Callback URLs are validated with SSRF protection. The validated URL, host, port, and resolved IP are stored and reused for delivery with IP pinning.
Created (201)
{
"data": {
"id": 123,
"company_id": "DE-HRB-F1103-267645",
"callback_url": "https://your-app.example/webhooks/registry",
"callback_resolved_ip": "93.184.216.34",
"callback_resolved_host": "your-app.example",
"callback_resolved_port": 443,
"status": "active",
"signing_secret_redacted": "whsec_********",
"signing_secret": "whsec_..."
}
}
Store signing_secret immediately. It is returned only on create and is encrypted at rest.
List Monitors
GET /api/registry/monitors
Authorization: Bearer eak_...
List responses redact the signing secret.
Delete Monitor
DELETE /api/registry/monitors/{monitor_id}
Authorization: Bearer eak_...
Returns 204 and does not charge credits.
Webhook Signing
Deliveries include Svix-compatible headers:
svix-id
svix-timestamp
svix-signature
The signature payload is:
{svix-id}.{svix-timestamp}.{raw-json-body}
The signature value is:
v1,{base64(hmac_sha256(signature_payload, base64_decode(secret_without_whsec_prefix)))}
Retry Schedule
Failed deliveries retry after:
10s, 30s, 120s, 300s, 1800s, 7200s, 21600s, 86400s
After the schedule is exhausted, the delivery is marked dead_letter.
Pricing
- Create monitor: 50 credits.
- List monitors: 0 credits.
- Delete monitor: 0 credits.