# Mass Push Notification API

Send push notifications to all of your users at once using our Send Mass Push Notification API.

## Prerequisites

1. **Create a free Native Notify account**

   Create a free [NativeNotify.com](https://app.nativenotify.com/sign-up-one)
   account to get your Native Notify App ID and App Token.

## Send Mass Push Notification API

Post to this URL:

```bash
https://app.nativenotify.com/api/notification
```

Use this POST body (replacing the 'dateSent' with your current date as a string):

```bash
{
    appId: app-id-number,
    appToken: "app-token-string",
    title: "Push title string",
    body: "Push message string",
    dateSent: "date string"
}
```

**Notes:**

- Push notifications will NOT work on an emulator/simulator. Push notifications only work on an actual device.
- If you are using a non-javascript based server language like Python, specify that this is an 'application/json' post type in your post header.

## Rich message fields

This endpoint also accepts Expo's modern message fields directly in the POST body — `subtitle`, `badge`, `ttl`, `expiration` (a unix timestamp), `interruptionLevel` (`'passive' | 'active' | 'timeSensitive' | 'critical'`), `categoryId`, `channelId`, `collapseId`, `contentAvailable`, `mutableContent`, and `sound` (a custom sound file name, or `false` for a silent push). They are validated up front — an invalid value returns `400` instead of failing per recipient at Expo — and passed through to every push message. See [Rich Notifications](/docs/rich-notifications) for the full list, plus the SDK helpers that send them for you.
