For Agents
Send a push notification or data message to an Android, iOS, or web device, a topic, or a condition, with per-platform overrides for Android, APNs, and Web Push.
Use for: I need to send a push notification to a single device, Broadcast a 'flash sale' notification to everyone subscribed to the deals topic, Send a data-only message so the app can sync silently in the background, Validate a notification payload without delivering it
Not supported: Does not register device tokens, manage topic subscriptions, or send SMS/email — use for sending push and data messages from server to device only.
The Firebase Cloud Messaging (FCM) HTTP v1 API delivers push notifications and data messages to Android, iOS, and web clients from a single endpoint. A message can target a specific device registration token, a topic that devices have subscribed to, or a condition combining topics, with platform-specific overrides for Android, APNs, and Web Push payloads. The v1 API replaces the legacy server-key-authenticated /fcm/send endpoint with OAuth 2.0 service account authentication, and it is the canonical interface for transactional and broadcast push messaging on Firebase.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the Firebase Cloud Messaging API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL https://raw.githubusercontent.com/jentic/jentic-one/main/tools/install.sh | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with Firebase Cloud Messaging API.
Send a notification message with title and body to a specific device registration token
Broadcast a topic message to every device that has subscribed to that topic
Send a conditional message that combines topics with logical operators (AND, OR, NOT)
Override Android, APNs, and Web Push payloads independently within a single message
Attach data-only payloads so client apps can react without showing a system notification
Use validate_only mode to dry-run a message without actually delivering it
Patterns agents use Firebase Cloud Messaging API for, with concrete tasks.
★ Transactional Notifications to a Single Device
App backends send transactional pushes (order shipped, message received, code expired) to specific users by addressing their device's registration token. The FCM v1 send endpoint accepts a Message object with the token, notification title and body, and per-platform overrides so the app can show a system-style notification on Android and iOS while attaching the right data payload for in-app routing. Setup is a single endpoint integration.
POST /v1/{+parent}/messages:send with message.token=<device-token>, notification={title:'Order shipped', body:'Track your order'}, and validate_only=false.
Topic-Based Broadcast Messaging
Marketing and engagement teams broadcast to topics (e.g. 'news_sports_us', 'deals_eu') that devices have subscribed to client-side. Topics let backends fan out to millions of devices with a single API call without managing a token list, and platform overrides ensure the same logical broadcast renders correctly on iOS, Android, and Web Push.
POST /v1/{+parent}/messages:send with message.topic='news_sports_us' and notification fields, plus android.priority='HIGH' for time-sensitive alerts.
Silent Data Sync Pushes
Apps that sync state in the background (chat clients, collaborative tools, stock tickers) send data-only FCM messages so the app receives a payload without showing a system notification. Combined with platform-specific priorities, this enables near-real-time syncs while respecting OS background limits. Implementation is a one-endpoint call from the backend.
POST /v1/{+parent}/messages:send with message.data={'sync_id':'1234'}, apns.payload.aps.contentAvailable=1, and no notification block.
Agent-Triggered Notifications via Jentic
An AI agent that monitors a workflow can send notifications on completion, alert, or escalation events through FCM via Jentic. The agent does not need to learn the OAuth 2.0 service account flow or the Message object structure; Jentic handles credentials and returns the v1 send schema for the right intent.
Search Jentic for 'send a Firebase push notification', load the POST /v1/{+parent}/messages:send schema, and execute it with the appropriate token or topic.
1 endpoints — the firebase cloud messaging (fcm) http v1 api delivers push notifications and data messages to android, ios, and web clients from a single endpoint.
METHOD
PATH
DESCRIPTION
/v1/{+parent}/messages:send
Send a notification or data message to a token, topic, or condition with optional per-platform overrides
/v1/{+parent}/messages:send
Send a notification or data message to a token, topic, or condition with optional per-platform overrides
Three things that make agents converge on Jentic-routed access.
Credential isolation
Firebase Admin SDK service account JSON keys are stored encrypted in the Jentic vault. Agents only ever receive a short-lived OAuth Bearer token with the firebase.messaging scope, so a leaked agent context cannot reach Firebase Auth, Firestore, or other project resources.
Intent-based discovery
Agents search by intent (e.g. 'send a push notification to a device') and Jentic returns the messages:send operation with its full Message schema including platform overrides, so the agent does not have to learn the legacy vs v1 differences.
Time to first call
Direct FCM v1 integration: 1-2 days for OAuth via service account, Message structure, and platform overrides. Through Jentic: under 30 minutes for a one-shot send.
Alternatives and complements available in the Jentic catalogue.
Specific to using Firebase Cloud Messaging API through Jentic.
What authentication does the Firebase Cloud Messaging API use?
FCM v1 uses Google OAuth 2.0 with the firebase.messaging scope. A Firebase Admin SDK service account JSON is exchanged for a short-lived Bearer token that is sent on every send request. The legacy server-key flow on /fcm/send is deprecated. Through Jentic the service account JSON lives in the encrypted vault and the agent only ever sees a scoped access token.
Can I send a notification to multiple devices in one call?
Indirectly. The v1 send endpoint accepts a single message addressed to one token, topic, or condition. To reach many specific devices, either subscribe them to a topic and target the topic, or call /v1/{+parent}/messages:send once per token (typically using the FCM batch send pattern in the Admin SDK).
What are the rate limits for the Firebase Cloud Messaging API?
FCM enforces per-project send quotas (default 600,000 messages per minute on v1) plus per-topic fan-out limits. Sustained high volumes should use topics rather than individual tokens. Quota increases are requested via the Cloud Console.
How do I send a Firebase notification through Jentic?
Search Jentic for 'send a Firebase push notification', load the POST /v1/{+parent}/messages:send schema, and execute it with message.token, message.topic, or message.condition plus a notification block. Jentic returns the message name on success.
Is the Firebase Cloud Messaging API free?
Yes. FCM is free at any volume on the v1 send endpoint within Google's standard fair-use quotas. Other Firebase services (Firestore, Auth, Hosting) on the same project are billed separately.
How do I dry-run a message without delivering it?
Set the top-level validate_only field to true on the POST /v1/{+parent}/messages:send request body. FCM validates the message structure, target token or topic, and per-platform overrides and returns success or an error without dispatching the notification.
GET STARTED