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

# Send events

> Record a batch of events from one device.

Events are stored and acknowledged right away. Flows evaluate them shortly
after, so a `202` means "safely stored", not "flows have run".

## Body

**device** `object` *required*

The [device](https://docs.pushnotif.ai/api/overview.md#the-device-object) the events came from.

**events** `object[]` *required*

Up to 500 events.

**event**

**event\_id** `string` *required*

Your unique id for this event, at most 128 characters. Sending the same
id again is counted as a duplicate, not a second event, so retries are
safe.

**name** `string` *required*

At most 128 characters. Names starting with `$` are reserved.

**properties** `object`

Any JSON object, at most 32 KB. Types are kept exactly as sent: a flow
comparing `score >= 80` matches `80`, not `"80"`.

**occurred\_at** `string | number` *required*

ISO 8601 string or epoch milliseconds. A time in the future is clamped to
now.

**build\_environment** `string`

`sandbox` for development builds, `production` otherwise. Lets the
dashboard separate your own test traffic from real users.

## Response

**accepted** `number`

Events newly stored.

**duplicates** `number`

Events whose `event_id` was already stored, and so ignored.

```bash cURL theme={null}
curl https://api.pushnotif.ai/v1/events \
  -H "Authorization: Bearer pna_..." \
  -H "Content-Type: application/json" \
  -d '{
    "device": {
      "install_id": "6f1c...",
      "timezone": "America/New_York"
    },
    "events": [{
      "event_id": "0b8e2f4a-...",
      "name": "quiz_finished",
      "properties": { "score": 92, "passed": true },
      "occurred_at": "2026-11-03T15:04:05Z"
    }]
  }'
```

```json 202 theme={null}
{ "accepted": 1, "duplicates": 0 }
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.