Aller au contenu

API de messages

L’API Message envoie des notifications transitoires de niveau supérieur. Utilisez-le pour les alertes, les messages d’achèvement, les instantanés d’images, les notifications de prix et tout autre contenu qui ne nécessite pas de mises à jour ou de fermeture ultérieures.

POST /message

Le corps de la requête doit être JSON et les champs inconnus sont rejetés. Si un Gateway privé active PUSHGO_TOKEN, incluez Authorization: Bearer <token>.

En-têteObligatoireDescriptif
Content-Type: application/jsonOuiFormat du corps de la requête.
Authorization: Bearer <token>Dépendant du GatewayRequis uniquement lorsqu’un Gateway privé active PUSHGO_TOKEN.
ChampTapezObligatoireDescriptif
channel_idstringOuiID du Channel cible.
passwordstringOuiMot de passe Channel, généralement de 8 à 128 caractères.
titlestringOuiTitre Message, ne doit pas être vide.
bodystringNonCorps Message, Markdown est pris en charge.
op_idstringNonClé d’idempotence, 1 à 128 caractères, lettres/chiffres/_/:/-.
thing_idstringNonAssociez le message à un Thing existant.
occurred_atnumberNonHeure à laquelle le message s’est produit, en millisecondes Unix.
severitystringNoncritical, high, normal, low  ; les valeurs inconnues se normalisent en normal.
ttlnumberNonDélai d’expiration Unix en millisecondes ; La durée de vie du fournisseur est plafonnée à environ 28 jours.
urlstringNonURL de destination facultative.
imagesstring[]NonJusqu’à 32 URL d’images, de 2 048 caractères maximum chacune.
tagsstring[]NonJusqu’à 32 balises, 64 caractères maximum chacune, découpées et dédupliquées.
ciphertextstringNonCharge utile de texte chiffré E2EE en option.
metadataobjectNonValeurs-clés scalaires personnalisées ; clé <= 64, valeur <= 512.
severityNiveau d’interruption APNsPriorité FCM
criticalcriticalHIGH
hightime-sensitiveHIGH
normalactiveHIGH
lowpassiveNORMAL
Fenêtre de terminal
curl -X POST https://gateway.pushgo.dev/message \
-H "Content-Type: application/json" \
-d '{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"title": "Backup completed",
"body": "The daily NAS backup has finished.",
"severity": "normal"
}'

Si l’alerte appartient à une entité persistante, transmettez thing_id.

{
"channel_id": "YOUR_CHANNEL_ID",
"password": "YOUR_CHANNEL_PASSWORD",
"thing_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"title": "Home NAS disk warning",
"body": "volume1 usage has reached 92%.",
"severity": "high",
"tags": ["nas", "disk"]
}
{
"success": true,
"data": {
"channel_id": "YOUR_CHANNEL_ID",
"op_id": "op-20260422-001",
"message_id": "8a1fc4b3d9f04fd2857f92f66f7cc5d1",
"accepted": true
},
"error": null,
"error_code": null
}

success=true signifie que le Gateway a traité la requête. accepted=true signifie la requête est entrée dans le chemin de distribution ; L’affichage final dépend toujours des services push de la plateforme, de l’état de l’appareil et des transports privés.

StatutRaison typique
400Champ obligatoire manquant, champ inconnu, title vide, op_id non valide.
401Le privé Gateway nécessite un jeton Bearer, mais l’en-tête est manquant ou erroné.
404Channel n’existe pas ou les informations d’identification ne correspondent pas.
413Le corps de la requête dépasse 32 Ko.
503Gateway n’a pas pu entrer complètement dans le chemin de distribution ; la réponse peut inclure accepted=false.

Voir Limites et erreurs pour les limites partagées.

PushGo fournit également des points de terminaison de compatibilité ntfy, Bark et ServerChan pour la migration. Leur couverture de terrain est limitée ; utilisez /message natif lorsque vous avez besoin de la sémantique thing_id, E2EE ou PushGo complète. Voir le Guide de migration.