Pular para o conteúdo

Notificar em lote

POST https://api.pushwoosh.com/messaging/v2/notify/batch

Envia várias mensagens em uma única chamada. Cada item é um Notify independente: é validado exatamente como uma solicitação Notify autônoma e obtém seu próprio resultado.

Estrutura da solicitação

Anchor link to
Shape
{
"items": [
{
"item_id": "caller-defined-id",
"request": { ... }
}
]
}
CampoTipoDescrição
itemsarray de NotifyBatchItemObrigatório, de 1 a 500 entradas (limite configurado no servidor). Os itens são processados simultaneamente; os resultados retornam na ordem da solicitação, independentemente.

NotifyBatchItem

Anchor link to
CampoTipoDescrição
item_idstringID de correlação opcional fornecido pelo chamador, retornado no resultado correspondente. Não é usado pela Pushwoosh de outra forma.
requestNotifyRequestMesmo corpo de uma chamada Notify única — segment ou transactional, transaction_id incluído. Obrigatório.
Terminal window
curl -X POST https://api.pushwoosh.com/messaging/v2/notify/batch \
-H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"items": [
{
"item_id": "order-1001",
"request": {
"transactional": {
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"users": { "list": ["user-123"] },
"payload": {
"content": {
"localized_content": {
"en": { "ios": { "body": "Your order has shipped." } }
}
}
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_TRANSACTIONAL",
"transaction_id": "order-1001-shipped"
}
}
},
{
"item_id": "order-1002",
"request": {
"transactional": {
"application": "XXXXX-XXXXX",
"platforms": ["IOS", "ANDROID"],
"users": { "list": ["user-456"] },
"payload": {
"content": {
"localized_content": {
"en": { "ios": { "body": "Your order has shipped." } }
}
}
},
"schedule": { "at": "2026-05-01T12:00:00Z" },
"message_type": "MESSAGE_TYPE_TRANSACTIONAL",
"transaction_id": "order-1002-shipped"
}
}
}
]
}'
{
"results": [
{
"item_id": "order-1001",
"index": 0,
"result": {
"message_code": "XXXXX-XXXXX-XXXXX",
"unknown_identifiers": []
}
},
{
"item_id": "order-1002",
"index": 1,
"error": {
"code": 3,
"message": "invalid argument",
"reason": "EmptySchedule",
"domain": "api.pushwoosh.com"
}
}
],
"succeeded": 1,
"failed": 1
}
CampoTipoDescrição
resultsarray de NotifyBatchResultUma entrada por item solicitado, na ordem da solicitação.
succeededintegerContagem de itens que retornaram um resultado.
failedintegerContagem de itens que retornaram um erro.

NotifyBatchResult

Anchor link to
CampoTipoDescrição
item_idstringEco do item_id do item da solicitação.
indexintegerPosição baseada em zero do item na solicitação. Use isso para correlacionar resultados quando item_id foi deixado em branco.
resultobjectDefinido quando o item é bem-sucedido — mesma forma de uma única resposta Notify: message_code e unknown_identifiers.
errorNotifyBatchErrorDefinido quando o item falhou.

NotifyBatchError

Anchor link to
CampoTipoDescrição
codeintegerCódigo de status gRPC (google.rpc.Code), por exemplo, 3 para INVALID_ARGUMENT.
messagestringMensagem de erro voltada para o desenvolvedor, em inglês.
reasonstringNome de status curto — o mesmo valor que uma chamada Notify única retornaria, por exemplo, EmptySchedule.
domainstringDomínio do erro, api.pushwoosh.com.

Os erros usam o envelope de erro padrão do gRPC-Gateway: { "code": ..., "message": ..., "details": [...] }. Estes são erros no nível do envelope que fazem com que a solicitação inteira falhe — um item individual com falha produz um error por item em results[] (veja NotifyBatchError acima), não um destes.

Status HTTPCondição
400items está vazio.
400items tem mais do que o limite configurado no servidor (500 por padrão).
400Um dos itens está sem request.

Exemplo

Enviar 501 itens quando o limite é 500 retorna HTTP 400:

{
"code": 3,
"message": "items must not exceed 500 entries, got 501",
"details": []
}

Relacionado

Anchor link to