# List all data events

> 🚧
Please note that you can only 'list' events that are less than 90 days old. Event counts and summaries will still include your events older than 90 days but you cannot 'list' these events individually if they are older than 90 days

The events belonging to a customer can be listed by sending a GET request to `https://api.intercom.io/events` with a user or lead identifier along with a `type` parameter. The identifier parameter can be one of `user_id`, `email`, `intercom_user_id` or `anonymous_id`. The `type` parameter value must be `user` or `lead`.
- `https://api.intercom.io/events?type=user&user_id={user_id}`
- `https://api.intercom.io/events?type=user&email={email}`
- `https://api.intercom.io/events?type=user&intercom_user_id={id}` (this call can be used to list leads)

When `type` is `lead`, a `user_id` you send is matched against the lead's anonymous id instead.
The `email` parameter value should be [url encoded](http://en.wikipedia.org/wiki/Percent-encoding) when sending.
You can optionally define the result page size as well with the `per_page` parameter.
Requires the `read_events` or `write_events` OAuth scope.

Endpoint: GET /events
Version: 2.18
Security: bearerAuth

## Query parameters:

  - `filter` (object, required)

  - `type` (string, required)
    The value must be `user` or `lead`.

  - `per_page` (integer)
    The number of events to return per page.

  - `since` (integer)
    Only return events created after this time, as a Unix timestamp in milliseconds. Take the value from the `since` link in the `pages` object of a previous response.

  - `before` (integer)
    Only return events created before this time, as a Unix timestamp in milliseconds. Take the value from the `next` link in the `pages` object of a previous response.

  - `summary` (boolean)
    Set to `true` (or `1`) to return an event summary (`event.summary`) instead of the list of events. Omit for the paginated event list (`event.list`).

## Header parameters:

  - `Intercom-Version` (string)

## Response 200 fields (application/json):

  - `type` (string)
    The type of the object
    Enum: "event.list"

  - `events` (array)
    A list of data events

  - `events.type` (string)
    The type of the object
    Enum: "event"

  - `events.event_name` (string, required)
    The name of the event that occurred. This is presented to your App's admins when filtering and creating segments - a good event name is typically a past tense 'verb-noun' combination, to improve readability, for example `updated-plan`.
    Example: invited-friend

  - `events.created_at` (integer, required)
    The time the event occurred as a UTC Unix timestamp
    Example: 1671028894

  - `events.user_id` (string)
    Your identifier for the user.
    Example: 314159

  - `events.id` (string)
    Your identifier for a lead or a user.
    Example: 8a88a590-e1c3-41e2-a502-e0649dbf721c

  - `events.intercom_user_id` (string)
    The Intercom identifier for the user.
    Example: 63a0979a5eeebeaf28dd56ba

  - `events.email` (string)
    An email address for your user. An email should only be used where your application uses email to uniquely identify users.
    Example: frodo.baggins@example.com

  - `pages` (object)
    Pagination

  - `pages.next` (string)
    Example: https://api.intercom.io/events?per_page=2&before=1389913941064&intercom_user_id=63a0979a5eeebeaf28dd56ba&type=user"

  - `pages.since` (string)
    Example: https://api.intercom.io/events?intercom_user_id=63a0979a5eeebeaf28dd56ba&type=user&since=1389913941065

  - `email` (string)
    The email address of the user
    Example: Sam.Sung@example.com

  - `intercom_user_id` (string)
    The Intercom user ID of the user
    Example: 63a0979a5eeebeaf28dd56ba

  - `user_id` (string)
    The user ID of the user
    Example: 62b997f288e14803c5006932

  - `events` (array)
    A summary of data events

  - `events.name` (string)
    The name of the event
    Example: placed-order

  - `events.first` (string)
    The first time the event was sent
    Example: 2014-01-16T23:12:21.000+00:00

  - `events.last` (string)
    The last time the event was sent
    Example: 2014-01-16T23:12:21.000+00:00 

  - `events.count` (integer)
    The number of times the event was sent
    Example: 1

  - `events.description` (string)
    The description of the event
    Example: A user placed an order

## Response 401 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (any, required)
    A string indicating the kind of error, used to further qualify the HTTP response code. A few request validation errors send an HTTP status code as an integer here instead, for example `422`.
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

## Response 404 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (any, required)
    A string indicating the kind of error, used to further qualify the HTTP response code. A few request validation errors send an HTTP status code as an integer here instead, for example `422`.
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

## Response 422 fields (application/json):

  - `type` (string, required)
    The type is error.list
    Example: error.list

  - `request_id` (string)
    Example: f93ecfa8-d08a-4325-8694-89aeb89c8f85

  - `errors` (array, required)
    An array of one or more error objects

  - `errors.code` (any, required)
    A string indicating the kind of error, used to further qualify the HTTP response code. A few request validation errors send an HTTP status code as an integer here instead, for example `422`.
    Example: unauthorized

  - `errors.message` (string)
    Optional. Human readable description of the error.
    Example: Access Token Invalid

