GET /v1/events.
What you receive
- Etsy’s payload, unchanged. Each event carries what Etsy sent in
data, byte for byte: todayevent_type,resource_urlandshop_id. Alura adds nothing to it and doesn’t keep a list of event types, so a type Etsy adds tomorrow reaches you too. - Your shops only. An event reaches a workspace only when its shop is connected to that workspace.
- From your first endpoint on. Alura stores an event for your workspace when one of your enabled endpoints wants it. History starts with your first endpoint, and covers the event types and shops your endpoints subscribe to.
- 30 days. Events are kept for 30 days.
resource_url points at Etsy’s own API, which needs an Etsy app. Read the same data from Alura instead: for an order.* event, the order with GET /v1/workspace/orders/{id}, taking the receipt ID from the end of resource_url.
Scopes
Order events reveal that an order exists, so they also need
orders:read: on the key that subscribes an endpoint to *, order.* or any order. type, or changes, tests or rotates such an endpoint, and on the key that reads them with GET /v1/events. A workspace owner or admin can create a key with these scopes.
Create an endpoint
An endpoint is an HTTPS URL on a public host (notlocalhost or a private address) with the event types it wants: * for every type, an exact type such as order.paid, or a prefix such as order.*. Add shop_ids to limit it to some of your connected shops. The answer carries the endpoint’s signing secret (whsec_...) once, so store it then. A workspace has at most 10 endpoints. Events start reaching a new endpoint within about 30 seconds of creating it (or enabling it, or connecting a shop).
status to disabled with PATCH /v1/webhooks/{id}. Events that arrive while it is disabled aren’t stored for it, retries still queued for it are cancelled, and enabling it again doesn’t replay them.
Deliveries
AluraPOSTs each event to every enabled endpoint that wants it, usually within a few seconds of Etsy’s notification. Any 2xx answer counts as delivered. Anything else, no answer within 15 seconds, or a redirect counts as a failure, and Alura retries 5 seconds, 5 minutes, 30 minutes, 2 hours, 5 hours, 10 hours and 10 hours later: 8 attempts over 27 hours and 35 minutes. Every attempt carries the same webhook-id header, the event’s ID.
- Every attempt is listed.
GET /v1/webhooks/{id}/deliveriesshows the last 30 days of attempts, newest first, with the HTTP status your endpoint answered (never its body), how long it took, anerrorwhen there was no usable answer, and when the next retry is due.
When an endpoint keeps failing
When an endpoint keeps failing
After 5 days without a successful delivery and at least 20 failed attempts, Alura disables the endpoint:
status becomes disabled with disabled_reason: "failing". Fix it, then set status back to enabled with PATCH /v1/webhooks/{id}. Missed events aren’t replayed to the endpoint; read them with GET /v1/events.Public addresses only
Public addresses only
Alura resolves your endpoint’s host before each attempt and connects only when every address it resolves to is public. Private, loopback, link-local and cloud metadata addresses are refused, and the attempt’s
error is address_refused.Read events
GET /v1/events lists your events newest first. Filter by type (exact or a prefix such as order.*), shop_id and created_after, and page with cursor. After an outage on your side, this is how you catch up.
created_at is when Alura received the event from Etsy. Etsy retries a delivery it isn’t sure arrived, and Alura stores each Etsy message once per workspace, so a retry never shows up twice.
Webhook endpoints, deliveries and events are free and REST only: AI assistants don’t get them as MCP tools.