Send a push to every registered device with POST /api/notification.
Send to every device
POST https://app.nativenotify.com/api/notification
{
"appId": 12345,
"appToken": "yourAppToken",
"title": "Fresh bread at 7am",
"body": "The bakery opens early today.",
"dateSent": "9-24-2026 3:05PM"
}
appId and appToken are in your Native Notify dashboard. The inbox shows dateSent exactly as sent, so use the M-D-YYYY H:MMAM form. Add pushData for tap data (Push data & taps).
Expo's rich fields go in the same body: subtitle, badge, ttl, expiration (a unix timestamp), interruptionLevel, categoryId, channelId, collapseId, contentAvailable, mutableContent and sound. See Rich notifications.
Content-Type
Send JSON with Content-Type: application/json. fetch and server languages like Python must set it (axios does), or the server can't read appId and appToken and answers 401.
Push works on real devices, Android emulators with Google Play services and iOS Simulators on Xcode 14+, but not in Expo Go on Android. See Expo setup.
Response
| Status | Meaning |
|---|---|
201 with Success! | The push was sent. |
201 with an explanation | Nothing was sent: the free trial has ended, or sending is paused for an unpaid invoice (see Plans & billing). Check that the body is exactly Success!. |
400 | A missing title or body, an invalid rich field, a payload over Expo's 4 KiB limit (notification payload exceeds Expo's 4KiB limit), or an app with no registered push tokens yet ("There are no push tokens saved to your app…"). |
401 | The appId and appToken pair doesn't match an app. |