A new card print has been published, of any game.
Deduplicate on the `svix-id` header: it is the delivery id. Not sent for the first catalogue of a game in a language: that import is silent, and every print published after it is announced.
Deduplicate on the svix-id header: it is the delivery id. Not sent for the first catalogue of a game in a language: that import is silent, and every print published after it is announced.
svix-id*stringThe delivery id. This is the value rule 2 asks you to deduplicate on.
svix-timestamp*stringUnix seconds at which the delivery was signed. Reject one outside the tolerance you choose.
svix-signature*stringSpace-separated v1,<base64> signatures over {svix-id}.{svix-timestamp}.{raw body}. Secret rotation may produce multiple signatures; accept the delivery if any signature matches.
application/json- body
type*stringcreated_at*string^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$date-timedata*Identifiers only. The event never carries the card.
Any 2xx acknowledges the delivery. Every other status fails, and redirects are not followed. Respond within 15s; a slower response also fails. A failed delivery is retried seven times for eight total attempts. Each delay starts after the previous attempt: 5s, 5m, 30m, 2h, 5h, 10h and 10h. The first and last attempts are about 27.6 hours apart. After the final attempt, the message is marked Failed and Rarity is notified, but the consumer is not. No consumer-side replay or drain queue remains, so recover the gap through GET /changes. An endpoint that fails for five days is disabled automatically.
{ "type": "card.created", "created_at": "2019-08-24T14:15:22Z", "data": { "id": "string", "game": "one_piece" }}{ "svix-id": "msg_2aBcDeFgHiJkLmNoPqRsTuVwXy", "svix-timestamp": "1787193600", "svix-signature": "v1,g0hM9SsE+OTPJTGt/tmIKtSyZlE3uFJELVlNIOLJ1OE="}List stable-id migrations GET
Append-only ledger of merged and deleted card ids, ordered by `(performed_at, old_id)`. A merge names its replacement; a delete has `new_id: null`. Responses use `no-store` so an edge cache cannot delay newly recorded migrations.
Register a webhook subscription POST
Registers an endpoint and returns its signing secret, **once**. Store the secret from this response. No endpoint returns it again. The URL must be an absolute `https` URL on a public host. Registration rejects private, loopback and link-local addresses with `invalid_webhook_url`. The webhook backend separately checks the resolved address at delivery time. Registration performs its own check so an invalid endpoint returns a readable 400 instead of silently receiving no deliveries.