One request, one target
The FCM HTTP v1 messages:send endpoint accepts exactly one of token, topic, or condition per request — never a list of device tokens directly. Reaching many devices means using one of these three targeting modes instead.
Topics
A topic is a label that any number of client apps can subscribe to using the Firebase Messaging SDK. Sending one message to "topic": "news" delivers it to every device currently subscribed, which is the standard way to broadcast to a large, changing audience without tracking individual tokens.
{
"message": {
"topic": "news",
"notification": { "title": "Breaking", "body": "..." }
}
}
Multicast (send to multiple tokens)
To reach a specific, known list of devices rather than a topic's subscribers, the Firebase Admin SDK's sendEachForMulticast() method accepts up to 500 tokens and internally issues one HTTP v1 request per token. There is no single raw HTTP v1 call that fans out to a token list — that batching happens in the Admin SDK, not the wire protocol itself.
Conditions
A condition combines topics with boolean logic, for example "'stock' in topics && 'us' in topics", letting you target devices subscribed to more than one topic at once without creating a new combined topic for every case.
Testing a single device first
Topics and multicast both build on the same single-device send working correctly first. The FCM notification tester targets one device token at a time, which is the right way to confirm your payload and credentials are correct before wiring up broadcast logic.