Skip to content

Notification event delivered to a generic webhook service

POST

Sent by Praxrr (not served by it) to the URL of each enabled “Webhook” notification service subscribed to the event type. The body is serialized once and the optional signature covers those exact bytes. Any 2xx response acknowledges delivery; network errors, 408, 429 and 5xx are retried (up to 3 attempts total, honoring Retry-After up to 60 s). Custom headers configured on the service are also sent; they cannot override the headers documented here.

X-Praxrr-Event
required
string

Notification event type; equals type in the body.

X-Praxrr-Timestamp
string
/^\d+$/

Unix time in seconds when the request was signed. Present only when a signing secret is configured.

X-Praxrr-Signature
string
/^sha256=[0-9a-f]{64}$/

sha256= followed by the lowercase hex HMAC-SHA256 of "<X-Praxrr-Timestamp>.<raw body>", keyed with the service’s signing secret. Present only when a signing secret is configured.

Media typeapplication/json

Versioned JSON body POSTed by a Praxrr “Webhook” notification service for every subscribed event.

Headers sent with every request:

  • Content-Type: application/json
  • X-Praxrr-Event: <type> — the notification type (same as type in the body).

When the service has a signing secret configured, two more headers are sent:

  • X-Praxrr-Timestamp: <unix seconds>
  • X-Praxrr-Signature: sha256=<hex> — lowercase hex HMAC-SHA256 keyed with the secret over "<X-Praxrr-Timestamp>.<raw request body>". Verify against the exact received bytes and reject stale timestamps to prevent replay.

Transient failures (network errors, 408, 429, 5xx) are retried with the same id, so receivers can deduplicate on it.

object
version
required

Payload schema version. Incremented only on breaking changes.

integer
Allowed value: 1
id
required

Unique delivery id, reused across retries of the same request.

string format: uuid
type
required

Notification event type, e.g. sync.failed, drift.detected, upgrade.success.

string
severity
required

Severity derived from the event type (or set explicitly by the emitter).

string
Allowed values: info success warning error
title
required

Short human-readable title.

string
message
required

Human-readable message body (may be empty).

string
instanceId
required

Arr instance id the event relates to, or null when not instance-specific.

integer | null
instanceName
required

Arr instance name, or null when not instance-specific.

string | null
arrType
required

Arr application type (e.g. radarr, sonarr), or null when not instance-specific.

string | null
occurredAt
required

ISO 8601 timestamp of when the event occurred.

string format: date-time

Delivery acknowledged. Any 2xx status is treated as success; the response body is ignored.