Skip to content
Documentation · Events (polling)

Webhooks & events

Events (polling)

The pull-based twin of webhooks. Every event the account could receive by webhook is also readable from a feed.

How it works

  • Each row is the webhook envelope plus eventId, minus notifiedAt, and with no signature headers (it is a pull).
  • Rows come in the collection envelope { data, nextCursor, hasMore }, oldest first, up to limit (max 100). nextCursor is the last row's eventId; pass it as after on the next poll and keep polling while hasMore is true.
  • An unknown or retention-expired cursor returns 400 with a "restart without it" detail, never a silently empty page.
  • The feed spans the 90-day retention window.
  • Synthetic test-fires never appear here.

Poll the event feed

GET /v1/events 200 OK x-api-key

Every event the account could receive via webhook, oldest first, in the collection envelope. nextCursor is the last row's eventId; pass it as after on the next poll. Bounded by the 90-day retention window. An unknown or retention-expired cursor → 400; restart without it. Synthetic test-fires never appear here.

Query parameters
Parameter Type Required Notes
after string Optional An eventId from a previous page's nextCursor.
limit integer Optional 1–100, default 100.
curl
curl "https://platform.getproperly.com/v1/events?after=evt_2mNpR4sS&limit=100" \
  -H "x-api-key: $PROPERLY_API_KEY"

Use cases

  • Infrastructure that cannot accept inbound HTTPS: poll instead of using webhooks.
  • Backfill after your webhook receiver was down.
  • Sanity-checking what you missed.

Type to search the Platform API docs.