List events

GET/v1/events

Secret key — sk_… or sk_test_… · Base URL https://api.volanea.com

The event log (system and custom events), newest first, cursor-paginated. Requires a secret key.

Query parameters

  • cursorstring

    Pagination cursor — an OPAQUE token. Take the `nextCursor` from the previous page and send it back unchanged. Do not parse it, do not coerce it to a number, and do not construct one: the format is `<unixMs>.<objectId>` today and may change. A cursor that cannot be parsed is rejected with 422 `validation_error` rather than silently restarting at page one.

  • limitinteger

    Page size (1–200, default 50).

  • namestring

    Filter by exact event name.

  • contactIdstring

    Filter to one contact.

Response

A page of events.

  • dataobject[]required
    • eventIdstringrequired
    • projectIdstring
    • contactIdstring | null
    • emailIdstring | null
    • namestringrequired

      System events use reserved prefixes ("email.", "contact.", "segment.", "workflow."); everything else is yours.

    • dataobject | null
    • createdAtdate-timerequired
  • nextCursorstring | nullrequired

    Opaque token. Pass back as `cursor` verbatim to fetch the next page; `null` when there are no more rows.

Errors

Every failure returns the standard envelope — branch on `code`, never on the wording of `error`.

  • 401Missing or invalid API key.
  • 422Request validation failed (code `validation_error`, 422).

Request

curl https://api.volanea.com/v1/events?cursor=value&limit=50 \
  -H "Authorization: Bearer sk_..."

Response

200 · application/json

{
  "success": true,
  "data": {
    "data": [
      {
        "eventId": "<eventId>",
        "projectId": "<projectId>",
        "contactId": "con_5e90",
        "emailId": "em_1c4f",
        "name": "Welcome",
        "data": {},
        "createdAt": "2026-01-01T09:00:00.000Z"
      }
    ],
    "nextCursor": "<nextCursor>"
  }
}

92 endpoints · OpenAPI document