---
title: "Track an anonymous event"
method: POST
path: "/api/v1/events"
tags: ["Track Events"]
---

# Track an anonymous event

`POST /api/v1/events`

An anonymous event represents a person you haven't identified yet. When you identify a person, you can set their `anonymous_id` attribute. If [event merging](https://fly.customer.io/workspaces/last/settings/merge_options) is turned on in your workspace, and the attribute matches the `anonymous_id` in one or more events that were logged within the last 30 days, we associate those events with the person. If you associate an event with a person within 72 hours of the timestamp on the event, you can trigger automations from the event.

There are three possible event `type` values: `page`, `screen` and `event`. Page and screen events represent website page views and mobile app screen views respectively; the `name` for these event types is intended to be the page or screen a person visited or viewed. Any other event, is given the `event` type.

**Note**: Avoid using names with leading or trailing spaces, because you can't reference event names with leading or trailing spaces in automations, etc. In workspaces created after September 21, 2021, we trim leading and trailing spaces from event names automatically to fix this issue.

## Request body

- union — An event attributed to an unknown person. If you provide an `anonymous_id` with the event, you can associate the event with a person later (using the anonymous ID).
  - object
    - `anonymous_id` string — An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable.
    - `name` string, required — The name of the event. This is how you'll reference the event in automations or segments.
    - `id` string, ulid — A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID.
    - `type` 'event' | 'page' | 'screen' — Sets the event type. If your event isn't a `page` or `screen` type event, we automatically set this property to `event`.
    - `timestamp` integer — The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.
    - `data` object — Additional event data you can reference in Liquid or use to set customer attributes. You can include `from_address` and `reply_to`, but an event only triggers an automation if you associate it with a person within 72 hours.
      - `from_address` string, email — The address you want to trigger messages from, overriding the `from` field in emails triggered by the event.
      - `reply_to` string — The address that receives replies for the message, if applicable.
  - object
    - `anonymous_id` string — An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable.
    - `name` string, required — The name of the event. In general, this should be the URL of the page a person visited, making it easy to segment your audience or trigger automations using this event. Make sure you trim leading and trailing spaces from this field.
    - `id` string, ulid — A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID.
    - `type` 'page', required — Indicates that the event represents a page view. See ["page view" events](/integrations/data-in/connections/javascript/legacy-js/events/#page-view-events), for more information.
    - `timestamp` integer — The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.
    - `data` object — Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).
  - object
    - `anonymous_id` string — An identifier for an anonymous event, like a cookie. If set as an attribute on a person, any events bearing the same anonymous value are associated with this person. This value must be unique and is not reusable.
    - `name` string, required — The screen or deep link path the person viewed, so you can segment your audience or trigger automations from this event. Trim any leading and trailing spaces.
    - `id` string, ulid — A [ULID](https://github.com/ulid/spec) we use to deduplicate events. If an event repeats a value we've already received, we ignore the duplicate. Our Python and Ruby libraries don't pass this ID.
    - `type` 'screen', required — Indicates that the event represents a mobile screen view. You can also capture screen events directly with [our iOS SDK](/integrations/sdk/ios/track-events/#screen-view-events).
    - `timestamp` integer — The unix timestamp when the event took place. If you don't provide this value, we use the date-time when we receive the event.
    - `data` object — Additional information that you might want to reference in a message using liquid or use to set attributes on your customer (referenced by `customer_id`).

## Response `200`

A successful request returns an empty object response.

## Other responses

- `400` — Invalid or malformed request.
- `401` — Unauthorized request. Make sure that you provided the right credentials.

---

[API](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference.md) · [All operations](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/customer/customer-io-journeys-api-reference/revisions/5da2740beeb5/schema)
