Events

Poll the event feed

The same events your webhooks receive, oldest first. Read-only: walking it acknowledges nothing. Filters combine.

get/events

Request

  • Base URL: https://api.layout.link/v1
  • URL: https://api.layout.link/v1/events
  • Auth: HTTP bearer

Query parameters

cursorstring

nextCursor from a previous page. Continues that walk.

afterstring

An event_id you already handled, or a nextCursor: the page starts with the next event after it. Pass the last event_id you processed to catch up.

sincestring date-time

Only events Layout recorded at or after this time.

order_idstring

Only this order's events.

user_idstring

Only this person's events, by the usr_ id the payload carries.

event'order.building' | 'order.carted' | 'order.placing' | 'order.placed' | 'order.failed' | 'order.unconfirmed' | 'order.needs_approval' | 'order.challenge' | 'order.updated'

Only this event type.

limitinteger

Default 50.

Headers

Layout-Version'2026-10-01'

The API version you code against. Optional; without it you get 2026-10-01, the current version. Layout answers with the version it used.

Response

A page of events.

nextCursorstring nullable required

Null at the end. To resume later, pass the last event_id as after.

Example response

{
  "events": [
    {
      "event_id": "evt_87228f5aa7b9_placed",
      "delivery_id": "dl_351eacf74201",
      "order": {
        "id": "ord_7c21e4b9a0d3",
        "store": "Layout test kitchen",
        "store_address": "1 Sandbox Way, San Francisco, CA 94107",
        "currency": "usd"
      },
      "user": {
        "id": "usr_4b8e9a01c2d3"
      },
      "occurred_at": "2026-10-01T17:01:05Z",
      "sent_at": "2026-09-13T10:14:03Z"
    }
  ]
}

Changes

No recorded changes to this operation across all 1 revision of this API.