Push Notification Payload Builder

Compose a valid APNs or FCM v1 push JSON with a live preview + ready-to-paste curl.

Build a valid APNs or Firebase FCM v1 push notification JSON with a live preview and a copy-paste curl. Silent push, badges, custom data. Free, in-browser.

About Push Notification Payload Builder

The Push Notification Payload Builder composes a valid push notification JSON for Apple Push Notification service (APNs) or Firebase Cloud Messaging (FCM HTTP v1) from a simple form — entirely in your browser. The aps dictionary and the FCM message envelope are easy to get subtly wrong (a misplaced key or the wrong silent-push shape means the notification just never arrives, with no error). Fill in a title, body, badge, sound, custom data and options, and it emits the exact payload plus a ready-to-paste curl command for sending a test. It also enforces the APNs 4 KB size limit and the correct silent/background-push shape. Nothing is sent and no device token, key or JWT is ever transmitted — the curl runs on your own machine.

How to use Push Notification Payload Builder

  1. Choose your platform: APNs (Apple) or FCM v1 (Firebase / Android).
  2. Toggle between an alert push (shows a notification) and a silent/background push (data only) — the builder emits the correct content-available shape for silent pushes automatically.
  3. Fill in the title, body, and (for iOS) subtitle, plus a badge number and sound; for Android set the channel ID and priority.
  4. Add any custom data key/value pairs your app reads when the notification is tapped or received.
  5. Set the bundle ID (APNs apns-topic) or Firebase project ID so the generated curl command targets the right endpoint.
  6. Copy the JSON payload, or copy the curl command, replace the $VARIABLES with your own token/key, and run it to send a real test push.

Frequently asked questions

What's the difference between an APNs and an FCM payload?
APNs uses a top-level aps dictionary (alert, badge, sound, content-available…) that you POST to api.push.apple.com. FCM HTTP v1 wraps everything in a message object with notification, data, android and apns sections that you POST to fcm.googleapis.com/v1/projects/.../messages:send. The builder generates whichever you pick.
How do I build a silent / background push?
Turn on the silent toggle. For APNs the tool emits {"aps":{"content-available":1}} with no alert, sound or badge — the exact shape iOS needs to wake your app in the background. For FCM it produces a data-only message with the matching apns and android headers.
Why is my push notification not delivering?
Common causes are an oversized payload (APNs rejects anything over 4096 bytes — this tool shows the byte count and warns you), a silent push that also includes an alert (iOS may throttle it), or a missing Android channel ID on Android 8+. Building the payload here avoids those shape mistakes.
Does this send the notification or see my keys?
No. The tool only builds the JSON and a curl command. The curl runs on your machine with your own $PROVIDER_JWT or $ACCESS_TOKEN — ToolsDeck never sees your token, key, or device token, and nothing is uploaded.
What is the 4 KB limit?
APNs caps a normal alert payload at 4096 bytes total. The builder shows the live byte size and flags it in red if you go over, so you can trim the body or custom data before Apple rejects it.
Can I add custom data to the notification?
Yes — add any key/value pairs and they're placed alongside the aps dictionary (APNs) or inside the data object (FCM). Note that FCM data values must be strings.

People also search for

Push Notification Payload Builder is also known as apns payload, fcm payload generator, push notification json, firebase push payload, silent push notification, aps content-available, apns json example.