Events  /  List events

List events

GET/v1/events

Returns conversions newest first, optionally filtered. Events from all sites are merged unless you pass site_id. This is read-only; there is no endpoint to write an event.

Query parameters
site_id
string
Only events for this site.
flow_id
string
Only events for this flow.
email
string
Match a conversion's email (recent events only).
status
string
Match a delivery status (recent events only).
occurred_after
timestamp
Inclusive lower bound on occurred_at.
occurred_before
timestamp
Inclusive upper bound on occurred_at.
limit
integer
How many to return. Max 100 (lower than other lists).
starting_after
timestamp
Timestamp cursor (the next_cursor from the previous page).
Response fields
id
string
Prefixed identifier, e.g. evt_ab2c182b…. Guaranteed.
site_key
string
The site's public key (matches a site's site_key). Guaranteed.
occurred_at
timestamp | null
When the conversion fired in the browser. Guaranteed.
flow_name
string
The flow that produced the event. Passed through.
trigger
string
What fired it, e.g. form_submission. Passed through.
status
string
Delivery status: completed, failed, or queued. Passed through.
actions
array
Per-destination delivery results. Passed through.
Events page on a timestamp cursor, not an id. Pass the ISO 8601 next_cursor as starting_after to get the next (older) page; ending_before is not supported here.
GET/v1/events
curl "https://app.converly.io/api/v1/events?site_id=site_29Et…" \
  -H "Authorization: Bearer sk_live_…"
200 OK
{
  "data": [
    {
      "id": "evt_ab2c182b…",
      "site_key": "site_1VQH84sr",
      "occurred_at": "2026-06-30T12:04:11.412Z",
      "flow_name": "Demo bookings",
      "trigger": "form_submission",
      "status": "completed"
    }
  ],
  "has_more": true,
  "next_cursor": "2026-06-30T12:04:11.412Z"
}