https://webhooks.lumeus.dev and a Mainnet
key for Mainnet subscriptions.
List and read
Response (200, example values, trimmed)
limit, 1 to 500); pass
next_cursor back as cursor for the next page. Deleted subscriptions are left
out unless you pass include_deleted=true. GET /v1/subscriptions/{id}
returns one subscription with its ETag header, plus free_quota on a Free
endpoint and paid (plan, endpoint limit and use, credits per delivery) on a
paid one.
Version and request headers
Every change (PATCH, DELETE, key rotation, tests and replays) needs two
headers:
Retrying with the same key, ETag and body returns the original result without
applying the change twice. Reusing a key with a different body returns
409.
After a 412, read the subscription again and decide whether your change still
applies.
This shell function reads the current ETag; the examples below use it:
Pause or resume
Response (200, example values, subscription trimmed)
in_flight_attempts) can still
reach your receiver. state takes only active or paused (anything else
returns 400; use DELETE to remove an endpoint). Send {"state":"active"} to resume; matching restarts at
the current ledger.
Update filters or the target
PATCH only the fields you change. Omitted ornull fields keep their value, an
empty string clears a filter ("asset": ""), and "event_types": [] widens
the subscription to every decoded event type.
pending_policy decides what happens to deliveries already queued under the
old target or filters:
Move to a new receiver and drop what is queued for the old one:
effective_checkpoint. New filters are validated as on create: invalid values
return 400, and likely typos in event_types add a warnings array. A PATCH
that changes nothing returns 200 with the same version, and an empty body
returns 400.
Rotate a signing key
Response (200, example values)
secret at once; a retry does not return it again. For 24 hours, until
previous_valid_until, every delivery is signed with both keys (see
key rotation). Deploy the new secret next to
the old one, then remove the old one. A second rotation during the overlap
returns 409. To end the overlap early, after your receiver uses the new
secret:
Delete
200 with effective_state: "deleted" and:
- cancels deliveries not yet attempted (they are never charged);
- deletes the endpoint’s test history;
- removes its signing secrets;
- frees its place under your plan’s endpoint count (or your Free endpoint).
GET /v1/subscriptions/{id} still returns the deleted subscription, and a later
change returns 410.
Webhook keys
whk_ keys are managed with the same API (or in the dashboard under
Webhooks > Webhook keys):
An organization holds at most 20 active keys per network; past that, create
returns
409.
Limits
Over a limit you get
429 with RateLimit headers. See
Rate limits and Errors.