Push notifications & in-app messages
Reach users on their lock screen and inside your app.
Send push notifications to Android and iOS from one dashboard or one API call. Target the right people, schedule for later, and open the exact screen on tap.
- FCM + APNs
- Images & deep links
- Scheduling
- Open tracking
- In-app messages
Set up once
Connect your keys, then send.
- 1Add your credentialsUpload the Firebase service account JSON for Android and the APNs .p8 key for iOS. We check them as you save.
- 2Register devicesYour app sends its push token on launch, with the signed-in user ID and tags such as plan:pro or city:delhi.
- 3Send or scheduleWrite the title, message and image, pick an audience, and send now or at a set time. Or call the API from your backend.
$ curl https://app.codeonair.com/v1/push/messages \-H "Authorization: Bearer sk_live_β¦" \-H "Content-Type: application/json" \-d '{"title": "Diwali sale is live π","body": "50% off on earbuds β today only","url": "https://shop.codeonair.com/diwali50","audience": { "tags": ["plan:free"] },"send": "schedule", "scheduled_at": "2026-11-01T09:00:00+05:30"}'β 201 Created β status: "scheduled"
Everything a campaign needs
Write it, target it, time it, and see what happened.
- Android (FCM) and iOS (APNs) from one place
- Title, message, large image and a link that opens on tap
- Custom key-value data for your app to read
- Audiences by platform, user ID or tags β with a live device count
- Send now, save a draft, or schedule up to 90 days ahead
- Send a test to your own device before everyone gets it
- Sent, failed and opened counts for every notification
- Dead tokens are cleaned up automatically, so counts stay honest
In-app messages
Talk to people while they're in the app β no permission needed.
Modal, full screen, bottom sheet, top or bottom banner, card, or a single image β with your colours and up to two buttons.
On app open or after an event your app sends, such as checkout_started, with an optional delay.
Show once, every session, or at most N times with hours in between. Set start and end dates for campaigns.
Target by platform, user ID or tags, and set a priority when more than one message matches.
Open a screen with a deep link, open a web page, or just dismiss.
Impressions, clicks and dismissals, so you know which message works.
Push questions
Do I need my own Firebase or Apple account?
Yes. Notifications go out through Firebase Cloud Messaging for Android and Apple Push Notification service for iOS, using your app's own credentials: a Firebase service account JSON and an APNs .p8 key. They are stored encrypted and never shown again in the dashboard.
Who can I send a notification to?
Every device, one platform, specific signed-in users by their user ID, devices with given tags (any or all of them), or individual devices for testing. The dashboard shows how many devices an audience reaches before you send.
Can a notification open a screen in my app?
Yes. Give it a URL β an AppLink, your own URI scheme or a web page β and the tap opens it. You can also attach key-value data that your app reads when it opens.
What's the difference between a push and an in-app message?
A push reaches the phone even when the app is closed. An in-app message shows inside the app while someone is using it β on launch or after an event such as checkout_started β so it needs no notification permission.
How many notifications can I send?
10,000 a month on Free, 1,000,000 on Pro and 5,000,000 on Pro Plus. Past the allowance, sending pauses until next month; in-app messages keep showing.
Your first push in ten minutes.
Upload your Firebase and APNs keys, register a device, and send a test to your own phone.