The fastest way to ship push notifications

Use our SDKs, APIs, and embeddable UIs to create delightful push notification experiences for iOS and Android apps.

Trial endingUpgrade to continuepush notificationyour app
An isometric drawing of a phone lying on its back, with a push notification rising from the top of the screen.

Send push notifications via APNs, FCM, Expo, and more.

Knock's client SDKs register device tokens and report engagement, so your backend triggers a workflow with one API call and Knock delivers to each device a user has registered.

An API call batches activity for five minutes, then a push step sends one template through Apple Push Notification service, Firebase Cloud Messaging, Expo, OneSignal, and Amazon SNS. Each send stacks a new Ramp notification on the phone, up to five, and earlier ones drop lower.

Explore Knock's client SDKs

Create delightful push notification experiences

Trigger dynamic push notifications that reach the right users at the right moments. Knock gives you granular control over delivery and handles token management, authentication, and more for you.

The New comment workflow, at Collab.io. It starts with a new-comment trigger. A push step is dragged in from Add a step and set down under the trigger. The push pane opens: it sends from Apple Push Notification service, and the message is Sam and 2 others commented on your post.

Place a push step on the canvas, right after the trigger.

trigger / functions / data / channels

Granular control over every push sent

Knock gives you granular control over push notification delivery, with token registration and provider authentication handled for you.

Read the docs
  • Device token registration

    Register device tokens through the Knock SDKs. Knock stores them as channel data and removes a token when a send to it bounces.

  • Advanced sending functions

    Deliver messages when and where your users expect them. Batch, delay, and throttle push notifications in one workflow before Knock sends them through APNs, FCM, and Expo.

  • User-first controls

    Respect user time with preference centers and send windows. Users choose which push notifications they receive, and Knock holds a message until the device's local window opens.

  • One template, every provider

    Send the same push template across providers. A channel group sends to APNs and FCM from a single workflow step and is enabled on request.

  • Payload overrides

    Set badge counts, custom sounds, and other provider-specific fields on the channel or on a single template.

  • Understand every interaction

    Track delivery and analyze engagement to know what's working. See sends, failures, and taps for every push notification, across providers.

Launch push notification flows with a prompt

Pick your agent and a use case, then use the prompt to build it.

Your agent

Use case

Your prompt

Prompt

Build a push onboarding journey for new signups using Knock. Based on what we're building, create a welcome push on day 0 and a setup reminder on day 2 if they have not finished setup.

mcpdocs.knock.app/ai/mcp-servercli

All starter prompts, for people and agents

Connect your agent to the Knock MCP server at https://mcp.knock.app/mcp, or install the Knock CLI with npm install -g @knocklabs/cli. Then use any prompt below.

Onboarding (Lifecycle)

Build a push onboarding journey for new signups using [Knock](https://knock.app). Based on what we're building, create a welcome push on day 0 and a setup reminder on day 2 if they have not finished setup.

Re-engagement (Lifecycle)

Find users with no app activity in the last 14 days. Based on what we're building, create a re-engagement push using [Knock](https://knock.app). Stop the sequence as soon as a user opens the app.

Trial ending (Lifecycle)

When a trial has 3 days left. Based on what we're building, create a push using [Knock](https://knock.app) with an upgrade action. Stop as soon as the account upgrades.

Abandoned cart (Lifecycle)

When someone adds an item and leaves without checking out. Based on what we're building, create a push using [Knock](https://knock.app) an hour later. Stop the reminder as soon as they complete the purchase.

Confirmations (Transactional)

Based on what we're building, create a workflow using [Knock](https://knock.app) that sends a push with a brief summary of the confirmation details right after an order, booking, or payment is confirmed.

Order update (Transactional)

When an order status changes. Based on what we're building, create a push using [Knock](https://knock.app) for the customer, and send the same update by email if the push bounces.

Mentions (Transactional)

When someone is mentioned in a comment. Based on what we're building, create a push using [Knock](https://knock.app) right away. If it is still unread after an hour, send one email per thread.

New sign-in (Transactional)

When a new device signs in. Based on what we're building, create a push using [Knock](https://knock.app) for the account owner right away, with the device and location.

Comment digest (Product)

When a post gets new comments. Based on what we're building, create a workflow using [Knock](https://knock.app) that batches them into one push, such as five new comments, instead of one alert per comment.

Activity digest (Product)

Based on what we're building, create a workflow using [Knock](https://knock.app) that sends a weekly push recapping team activity in the product, such as what teammates shipped, commented on, and used.

Feature launch (Promotional)

Based on what we're building, create a broadcast using [Knock](https://knock.app) that sends a push announcing a new feature to users who opted in to product updates.

Messaging infrastructure you can trust

99.99% uptime

We run Knock as critical infrastructure for your product.

Scaled delivery

Knock delivers hundreds of millions of messages per month.

Dedicated success

Our team helps you plan, build, and launch your messaging.

Secure access

Security is standard with support for SSO, RBAC, and SCIM.

HIPAA badge

HIPAA

Verified
SOC2 badge

SOC2

Verified
GDPR badge

GDPR

Verified
CCPA badge

CCPA

Verified

Compare push API benchmarks

See real-time performance, reliability, and uptime benchmarks for top push notification providers, powered by proprietary data from millions of notifications sent through Knock.

ProviderMessage volumeMedian response timeError rateGrowth
Apple Push (APNS)
Apple Push (APNS)
100M–500M
62ms
0.00%
3rd
Expo
Expo
25M–100M
72ms
0.01%
2nd
Firebase FCM
Firebase FCM
25M–100M
104ms
0.02%
1st
OneSignal
OneSignal
<1M
212ms
0.01%
4th

Frequently asked questions

Knock sends push notifications through Apple Push Notification service (APNs), Firebase Cloud Messaging (FCM), Expo, Amazon SNS, and OneSignal. You can connect more than one provider and send to each of them from the same workflow.

No. Knock is an orchestration layer that sits on top of push providers like Apple Push Notification service (APNs), Firebase Cloud Messaging (FCM), and Expo. You connect the provider you already use, and Knock sends each notification through it, with workflows, broadcasts, and templates in one place.

Knock has client SDKs for iOS and macOS (Swift), Android (Kotlin), React Native, Expo, and Flutter. Each one registers device tokens with Knock. The Swift and Kotlin SDKs also mark a message as read and interacted when a user taps it. For web push, send the browser token from the FCM web SDK to Knock as channel data.

Yes. Knock stores device tokens as channel data on each user. With token deregistration turned on, Knock removes a token from the user's channel data when a send to that token bounces. Token deregistration works with every push provider except OneSignal in external_id mode, where Knock only has the user's ID.

Yes. One push template can send across providers, so you don't maintain a copy per platform. A channel group combines APNs and FCM in a single workflow step. Channel groups are enabled on request through Knock support.

Yes. FCM delivers to Android, iOS, and web. Retrieve a browser token with the FCM web SDK, send it to your server, and set it as the user's FCM channel data in Knock.

Knock publishes push API benchmarks for APNs, FCM, Expo, Amazon SNS, and OneSignal, based on requests Knock sends for its customers over a trailing 90-day window. They report the median and p99 time for each provider to accept a request, and the rate of 5xx errors. They measure API acceptance, not arrival on the device. Knock retries failed requests.

Yes. OneSignal is one of the push providers Knock supports. Knock passes the push templates you author in Knock to OneSignal as content, so you can keep OneSignal for delivery and use Knock workflows, preferences, and in-app feeds around it.

The Free plan is $0 per month and includes 10,000 messages per month. The Starter plan is $250 per month and includes 50,000 messages, then $0.005/ea. Enterprise plans use volume-based pricing.

A message is one message delivered to one user on one channel. Knock doesn't charge for workflow triggers, for messages that a user's preferences suppress, or for messages that bounce or fail.

Knock doesn't manage billing for downstream providers. Apple and Google don't charge per notification for APNs or FCM. Other providers, such as OneSignal and Amazon SNS, set their own pricing.

Yes. Knock preferences enable users to opt out by channel, category, or workflow, and Knock checks them before each send. Send windows hold a push until a set time of day, evaluated in the device's timezone when you store device metadata.