> ## Documentation Index
> Fetch the complete documentation index at: https://developer.audienceful.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List Automation Events

> Lists the custom automation events your workspace has defined.

Requires the `events:read` scope. These are the named triggers a workspace defines (e.g. `signed_up`, `purchased`) — the events you can fire with [Trigger Event](/api-reference/automations/event), along with the payload properties each one declares. Results are cursor-paginated and ordered by name.

### Query parameters

<ParamField query="page_size" type="number" default="100">
  The number of events to return per page.
</ParamField>

<ParamField query="cursor" type="string">
  The pagination cursor from a previous response's `next_cursor`. See [Pagination](/pagination).
</ParamField>

### Response

<ResponseField name="data" type="array">
  The page of custom event definitions.

  <Expandable title="properties">
    <ResponseField name="id" type="string">
      The event's unique id.
    </ResponseField>

    <ResponseField name="name" type="string">
      The event name you pass when triggering it.
    </ResponseField>

    <ResponseField name="triggered_count" type="number">
      How many times this event has been triggered.
    </ResponseField>

    <ResponseField name="properties" type="array">
      The payload properties this event declares.

      <Expandable title="properties">
        <ResponseField name="name" type="string">
          The property name.
        </ResponseField>

        <ResponseField name="type" type="string">
          The property's data type.
        </ResponseField>

        <ResponseField name="required" type="boolean">
          Whether the property is required when triggering the event.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="created_at" type="string">
      The datetime (UTC) the event was created.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="has_more" type="boolean">
  Whether more events exist after this page.
</ResponseField>

<ResponseField name="next_cursor" type="string or null">
  The cursor to pass as `?cursor=` to fetch the next page.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --location --request GET 'https://api.audienceful.com/v2/automations/events' \
  --header 'Content-Type: application/json' \
  --header 'X-Api-Key: <your-api-key>'
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.audienceful.com/v2/automations/events"
  headers = {
      "Content-Type": "application/json",
      "X-Api-Key": "<your-api-key>",
  }

  response = requests.get(url, headers=headers)
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.audienceful.com/v2/automations/events", {
    method: "GET",
    headers: {
      "Content-Type": "application/json",
      "X-Api-Key": "<your-api-key>",
    },
  });
  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={null}
  {
    "data": [
      {
        "id": "aB3xY7dKvQk6HNNtduqrX9",
        "name": "signed_up",
        "triggered_count": 42,
        "properties": [
          { "name": "plan", "type": "string", "required": false }
        ],
        "created_at": "2026-07-04T12:00:00Z"
      }
    ],
    "has_more": false,
    "next_cursor": null
  }
  ```
</ResponseExample>
