Créez vos canaux, gérez vos membres et vos offres, pilotez vos comptes et diffusez vos alertes depuis votre propre application. Tout ce que fait l’interface passe par cette API.
https://api.realnotifygroup.com/api/v1Toutes les réponses sont en anglais, quelle que soit la langue de votre interface : vos intégrations reçoivent ainsi des messages et des codes stables. Les identifiants sont des UUID générés par le serveur — un client ne peut jamais en imposer un.
Réponse en succès
{
"success": true,
"data": { … },
"meta": { "page": 1, "total": 42 }
}Réponse en erreur
{
"success": false,
"error": {
"code": "FORBIDDEN",
"message": "…"
}
}Toute requête porte un en-tête Authorization. Deux types de jetons y circulent, et le choix n’est pas anodin.
Authorization: Bearer <token>Clé d’API du compte rng_live_…
Une par compte, créée avec lui. Elle porte les droits de son titulaire : ce qu’il peut faire à l’écran, elle le peut par l’API, dans tous ses canaux. Elle se copie depuis Mon profil → Clé d’API, et se régénère en un geste — l’ancienne cesse alors aussitôt de fonctionner.
Identifiant d’API 8 caractères
Huit caractères tirés au sort, attribués avec le compte. Il n’est pas un secret : il désigne le compte, la clé l’authentifie. Il n’est demandé que pour échanger une clé contre un jeton d’accès — un appel ordinaire n’a besoin que de la clé. Comme elle, il se copie depuis le profil et se régénère à part : renouveler la clé ne le change pas, et réciproquement.
L’e-mail ne joue plus ce rôle : une intégration n’a pas à connaître l’adresse de son titulaire, et celle-ci change au fil d’une vie professionnelle là où un identifiant tiré au sort ne bouge que sur demande.
Jeton d’accès utilisateur
Obtenu par POST /auth/login pour un humain, ou par POST /auth/api-token pour une intégration — identifiant d’API et clé, sans mot de passe. Il porte les droits du compte et permet donc les opérations d’administration. Sa durée de vie est courte ; POST /auth/refresh le renouvelle avec le refreshToken, dont la rotation est automatique.
curl -X POST .../auth/api-token \
-H "Content-Type: application/json" \
-d '{"username":"k7m2xq4b","apiKey":"rng_live_…"}'Une clé ne peut ni se relire ni se régénérer elle-même : ces gestes-là exigent d’être connecté. C’est délibéré — une clé égarée ne doit pas pouvoir verrouiller son propriétaire hors de son propre compte.
Une WebSocket vous prévient dès qu’il se passe quelque chose : plus besoin d’interroger l’API en boucle pour savoir si un message est arrivé. Elle s’ouvre sur le même hôte que l’API, avec le même jeton — clé d’API ou jeton d’accès.
wss://api.realnotifygroup.com/ws?token=<token>Chaque trame est un objet JSON portant un champ type. L’événement annonce, il ne transporte pas : le contenu d’un message dépend de qui le lit — membre expiré, historique masqué — et cet arbitrage reste celui de l’API. Averti, votre client va chercher ce à quoi il a droit, par exemple GET /groups/{id}/messages?after=…
message.createdUn message a été publié dans un canal — groupId, messageId, priority, createdAt.message.deletedUn message a été retiré. Le fil garde sa place, le contenu disparaît.message.pinnedUn message a été épinglé ou désépinglé — pinned vaut true ou false.reaction.updatedLes réactions d’un message ont changé — les totaux par emoji accompagnent l’événement.notification.createdUne notification système vous est destinée.La connexion est maintenue par un ping toutes les trente secondes. Si elle tombe, rouvrez-la avec une attente croissante : rien n’est perdu, l’état complet reste accessible par les routes HTTP.
Un canal rassemble des membres et porte ses propres règles de diffusion. Une même clé d’API pilote tous ceux que vous administrez.
/groupsLister vos canaux+Lister vos canaux
curl -X GET "https://api.realnotifygroup.com/api/v1/groups" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/groupsCréer un canal+Créer un canal
curl -X POST "https://api.realnotifygroup.com/api/v1/groups" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Équipe Sécurité",
"membersCanWrite": false
}'/groups/{id}Détail d’un canal+Détail d’un canal
curl -X GET "https://api.realnotifygroup.com/api/v1/groups/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/groups/{id}Modifier le nom, la description ou les options+Modifier le nom, la description ou les options
curl -X PATCH "https://api.realnotifygroup.com/api/v1/groups/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Équipe Sécurité Nord"
}'/groups/{id}Supprimer — exige confirmName égal au nom exact+Supprimer — exige confirmName égal au nom exact
curl -X DELETE "https://api.realnotifygroup.com/api/v1/groups/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"confirmName": "Équipe Sécurité"
}'/groups/{id}/restoreRestaurer un canal supprimé · admin+Restaurer un canal supprimé
curl -X POST "https://api.realnotifygroup.com/api/v1/groups/{id}/restore" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/groups/{id}/adminsAjouter un administrateur au canal+Ajouter un administrateur au canal
curl -X POST "https://api.realnotifygroup.com/api/v1/groups/{id}/admins" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "a.koffi@site.com"
}'/groups/{id}/admins/{userId}Retirer un administrateur+Retirer un administrateur
curl -X DELETE "https://api.realnotifygroup.com/api/v1/groups/{id}/admins/{userId}" \
-H "Authorization: Bearer $RNG_USER_TOKEN"Un identifiant et une clé par compte, attribués avec lui. L’identifiant — huit caractères tirés au sort — désigne le compte ; la clé l’authentifie et porte les droits de son titulaire, dans tous ses canaux et nulle part ailleurs. Les deux se consultent depuis le profil et se régénèrent séparément.
/users/me/api-keyLire son identifiant et sa clé+Lire son identifiant et sa clé
curl -X GET "https://api.realnotifygroup.com/api/v1/users/me/api-key" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/users/me/api-key/regenerateRégénérer sa clé — l’ancienne cesse aussitôt de fonctionner, l’identifiant ne bouge pas+Régénérer sa clé — l’ancienne cesse aussitôt de fonctionner, l’identifiant ne bouge pas
curl -X POST "https://api.realnotifygroup.com/api/v1/users/me/api-key/regenerate" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/users/me/api-username/regenerateRégénérer son identifiant — la clé ne bouge pas+Régénérer son identifiant — la clé ne bouge pas
curl -X POST "https://api.realnotifygroup.com/api/v1/users/me/api-username/regenerate" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/users/{id}/api-keyLire les identifiants d’un utilisateur · super admin+Lire les identifiants d’un utilisateur
curl -X GET "https://api.realnotifygroup.com/api/v1/users/{id}/api-key" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/users/{id}/api-key/regenerateRégénérer la clé d’un utilisateur — il en est notifié · super admin+Régénérer la clé d’un utilisateur — il en est notifié
curl -X POST "https://api.realnotifygroup.com/api/v1/users/{id}/api-key/regenerate" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/users/{id}/api-username/regenerateRégénérer l’identifiant d’un utilisateur — il en est notifié · super admin+Régénérer l’identifiant d’un utilisateur — il en est notifié
curl -X POST "https://api.realnotifygroup.com/api/v1/users/{id}/api-username/regenerate" \
-H "Authorization: Bearer $RNG_USER_TOKEN"Chaque membre porte une date d’expiration. Fournissez une offre : sa durée fixe l’échéance à l’ajout, et s’ajoute au temps restant lors d’un renouvellement — le membre ne perd jamais ce qu’il a déjà payé. Statuts possibles : actif, expiré, désactivé, retiré.
/members?groupId=&status=Lister, filtrer par canal et statut+Lister, filtrer par canal et statut
curl -X GET "https://api.realnotifygroup.com/api/v1/members?groupId=&status=" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/membersAjouter — email et offerId (ou expiresAt)+Ajouter — email et offerId (ou expiresAt)
curl -X POST "https://api.realnotifygroup.com/api/v1/members" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"groupId": "…",
"email": "a.koffi@site.com",
"offerId": "…"
}'/members/{id}Détail d’un membre+Détail d’un membre
curl -X GET "https://api.realnotifygroup.com/api/v1/members/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/members/{id}Modifier — offerId ajoute sa durée à l’échéance, expiresAt la fixe telle quelle+Modifier — offerId ajoute sa durée à l’échéance, expiresAt la fixe telle quelle
curl -X PATCH "https://api.realnotifygroup.com/api/v1/members/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"nickname": "A. Koffi",
"offerId": "…"
}'/members/{id}/renewRenouveler — la durée de l’offre s’ajoute au temps restant, et réactive un membre expiré+Renouveler — la durée de l’offre s’ajoute au temps restant, et réactive un membre expiré
curl -X POST "https://api.realnotifygroup.com/api/v1/members/{id}/renew" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"offerId": "…"
}'/members/{id}/suspendDésactiver — reste dans le canal, ne reçoit plus rien+Désactiver — reste dans le canal, ne reçoit plus rien
curl -X POST "https://api.realnotifygroup.com/api/v1/members/{id}/suspend" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/members/{id}/activateRéactiver un membre désactivé+Réactiver un membre désactivé
curl -X POST "https://api.realnotifygroup.com/api/v1/members/{id}/activate" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/members/{id}/removeRetirer du canal+Retirer du canal
curl -X POST "https://api.realnotifygroup.com/api/v1/members/{id}/remove" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/members/{id}/restoreRestaurer — offerId repart de sa durée depuis aujourd’hui, ou expiresAt explicite+Restaurer — offerId repart de sa durée depuis aujourd’hui, ou expiresAt explicite
curl -X POST "https://api.realnotifygroup.com/api/v1/members/{id}/restore" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"offerId": "…"
}'Une offre décrit un nom, une durée en jours et un montant. C’est elle qui détermine l’échéance d’un membre et sert de base aux abonnements.
/offers?isActive=trueLister le catalogue+Lister le catalogue
curl -X GET "https://api.realnotifygroup.com/api/v1/offers?isActive=true" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/offers?available=trueOffres auxquelles on peut souscrire — les siennes et celles des canaux dont on est membre+Offres auxquelles on peut souscrire — les siennes et celles des canaux dont on est membre
curl -X GET "https://api.realnotifygroup.com/api/v1/offers?available=true" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/offersCréer — name, durationDays, amount, currency+Créer — name, durationDays, amount, currency
curl -X POST "https://api.realnotifygroup.com/api/v1/offers" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Annuel",
"durationDays": 365,
"amount": 280,
"currency": "USD"
}'/offers/{id}Détail d’une offre+Détail d’une offre
curl -X GET "https://api.realnotifygroup.com/api/v1/offers/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/offers/{id}Modifier, activer ou désactiver via isActive+Modifier, activer ou désactiver via isActive
curl -X PATCH "https://api.realnotifygroup.com/api/v1/offers/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"isActive": false
}'/offers/{id}Supprimer — désactivée si des abonnements courent+Supprimer — désactivée si des abonnements courent
curl -X DELETE "https://api.realnotifygroup.com/api/v1/offers/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/subscriptions?scope=mine|sold|allHistorique — ce que l’on a souscrit, ce qui a été souscrit sur ses offres, ou les deux+Historique — ce que l’on a souscrit, ce qui a été souscrit sur ses offres, ou les deux
curl -X GET "https://api.realnotifygroup.com/api/v1/subscriptions?scope=mine|sold|all" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/subscriptionsSouscrire — la période prend la suite de l’échéance en cours, ou part d’aujourd’hui s’il n’y en a plus+Souscrire — la période prend la suite de l’échéance en cours, ou part d’aujourd’hui s’il n’y en a plus
curl -X POST "https://api.realnotifygroup.com/api/v1/subscriptions" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"offerId": "…"
}'/subscriptions/{id}/renewRenouveler+Renouveler
curl -X POST "https://api.realnotifygroup.com/api/v1/subscriptions/{id}/renew" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/subscriptions/{id}/cancelAnnuler+Annuler
curl -X POST "https://api.realnotifygroup.com/api/v1/subscriptions/{id}/cancel" \
-H "Authorization: Bearer $RNG_USER_TOKEN"Vendre l’accès à un canal Telegram, et le reprendre à l’échéance. Le trajet est imposé par Telegram, non par nous : un bot ne sait pas ajouter quelqu’un à un canal, il ne sait qu’inviter celui qui est venu le voir. Vous inscrivez donc une adresse avec une offre — sa durée fixe l’échéance —, la réponse vous rend un lien vers le bot, vous le transmettez, la personne le démarre. C’est à cet instant, le seul, que son identifiant Telegram devient connaissable ; le bot lui ouvre alors le canal. À l’échéance, il l’en retire par ce même identifiant, et la prévient.
/telegram/configsCréer une configuration — le bot et le canal qu’il alimente. botToken et botId viennent de @BotFather, channelId de votre canal. Renseigner botUsername évite d’avoir à le demander à Telegram pour composer les liens · clé d’API+Créer une configuration — le bot et le canal qu’il alimente. botToken et botId viennent de @BotFather, channelId de votre canal. Renseigner botUsername évite d’avoir à le demander à Telegram pour composer les liens
curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/configs" \
-H "Authorization: Bearer $RNG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"botName": "Accès Premium",
"botUsername": "acces_premium_bot",
"botToken": "123456:ABC…",
"botId": "123456",
"channelName": "Signaux Premium",
"channelId": "-1001234567890"
}'/telegram/configsLister vos configurations · clé d’API+Lister vos configurations
curl -X GET "https://api.realnotifygroup.com/api/v1/telegram/configs" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/configs/{id}Détail d’une configuration · clé d’API+Détail d’une configuration
curl -X GET "https://api.realnotifygroup.com/api/v1/telegram/configs/{id}" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/configs/{id}Modifier, ou éteindre via isActive — le bot répond encore, le canal n’est plus censé diffuser · clé d’API+Modifier, ou éteindre via isActive — le bot répond encore, le canal n’est plus censé diffuser
curl -X PATCH "https://api.realnotifygroup.com/api/v1/telegram/configs/{id}" \
-H "Authorization: Bearer $RNG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"isActive": false
}'/telegram/configs/{id}/webhookÉtat du webhook, tel que Telegram le déclare — et non tel qu’on croit l’avoir posé · clé d’API+État du webhook, tel que Telegram le déclare — et non tel qu’on croit l’avoir posé
curl -X GET "https://api.realnotifygroup.com/api/v1/telegram/configs/{id}/webhook" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/configs/{id}/webhookEnregistrer le webhook — il est posé de lui-même à la création et réparé chaque minute ; cet appel force la pose · clé d’API+Enregistrer le webhook — il est posé de lui-même à la création et réparé chaque minute ; cet appel force la pose
curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/configs/{id}/webhook" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/configs/{id}/webhookRetirer le webhook — le serveur relève alors lui-même les messages du bot, chaque minute · clé d’API+Retirer le webhook — le serveur relève alors lui-même les messages du bot, chaque minute
curl -X DELETE "https://api.realnotifygroup.com/api/v1/telegram/configs/{id}/webhook" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/membersAjouter un membre. La réponse porte inviteLink : c’est le lien vers le bot, à transmettre à la personne. Il vaut sept jours et ne sert qu’une fois — c’est un jeton de liaison, pas un mot de passe · clé d’API+Ajouter un membre. La réponse porte inviteLink : c’est le lien vers le bot, à transmettre à la personne. Il vaut sept jours et ne sert qu’une fois — c’est un jeton de liaison, pas un mot de passe
curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members" \
-H "Authorization: Bearer $RNG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"configId": "…",
"email": "a.koffi@site.com",
"nickname": "A. Koffi",
"offerId": "…"
}'/telegram/members?configId=&status=&search=Lister — statuts PENDING, ACTIVE, EXPIRED, SUSPENDED. search cherche dans l’adresse et le pseudo : c’est par là qu’on retrouve quelqu’un dont on n’a que l’e-mail · clé d’API+Lister — statuts PENDING, ACTIVE, EXPIRED, SUSPENDED. search cherche dans l’adresse et le pseudo : c’est par là qu’on retrouve quelqu’un dont on n’a que l’e-mail
curl -X GET "https://api.realnotifygroup.com/api/v1/telegram/members?configId=&status=&search=" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/members/{id}Échéance et état — expiresAt, daysRemaining, status, telegramUserId, et inviteLink tant qu’il vaut quelque chose · clé d’API+Échéance et état — expiresAt, daysRemaining, status, telegramUserId, et inviteLink tant qu’il vaut quelque chose
curl -X GET "https://api.realnotifygroup.com/api/v1/telegram/members/{id}" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/members/{id}/renewRenouveler — la durée de l’offre s’ajoute à l’échéance en cours, ou repart d’aujourd’hui si elle est passée. Le bot annonce l’offre et le terme, et rend un lien de retour à qui avait quitté le canal · clé d’API+Renouveler — la durée de l’offre s’ajoute à l’échéance en cours, ou repart d’aujourd’hui si elle est passée. Le bot annonce l’offre et le terme, et rend un lien de retour à qui avait quitté le canal
curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/renew" \
-H "Authorization: Bearer $RNG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"offerId": "…"
}'/telegram/members/{id}/remindEnvoyer un rappel — le bot dit la date d’expiration et invite à renouveler. Sans effet sur l’abonnement ; exige que la personne ait démarré le bot · clé d’API+Envoyer un rappel — le bot dit la date d’expiration et invite à renouveler. Sans effet sur l’abonnement ; exige que la personne ait démarré le bot
curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/remind" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/members/{id}/deactivateDésactiver — retiré du canal et prévenu, mais son échéance ne bouge pas · clé d’API+Désactiver — retiré du canal et prévenu, mais son échéance ne bouge pas
curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/deactivate" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/members/{id}/activateRéactiver — exige une échéance encore devant : un accès échu se renouvelle, il ne se rallume pas · clé d’API+Réactiver — exige une échéance encore devant : un accès échu se renouvelle, il ne se rallume pas
curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/activate" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/members/{id}/expireExpirer sur-le-champ — l’échéance est ramenée à maintenant, la personne sort du canal et l’apprend. Il faudra une offre pour repartir · clé d’API+Expirer sur-le-champ — l’échéance est ramenée à maintenant, la personne sort du canal et l’apprend. Il faudra une offre pour repartir
curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/expire" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/members/{id}/linkGénérer un nouveau lien de liaison — celui d’origine a toutes les chances d’être périmé · clé d’API+Générer un nouveau lien de liaison — celui d’origine a toutes les chances d’être périmé
curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/link" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/members/{id}/resolveRelever les démarrages et ouvrir le canal. Inutile si le webhook est enregistré : il fait cela tout seul. Répond toujours 200 — « il n’a pas encore cliqué » est une réponse, pas une panne · clé d’API+Relever les démarrages et ouvrir le canal. Inutile si le webhook est enregistré : il fait cela tout seul. Répond toujours 200 — « il n’a pas encore cliqué » est une réponse, pas une panne
curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/resolve" \
-H "Authorization: Bearer $RNG_API_KEY"/telegram/members/{id}Modifier le pseudo, ou renouveler par offerId · clé d’API+Modifier le pseudo, ou renouveler par offerId
curl -X PATCH "https://api.realnotifygroup.com/api/v1/telegram/members/{id}" \
-H "Authorization: Bearer $RNG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"nickname": "A. Koffi"
}'/telegram/members/{id}Fixer l’échéance à la main — absolue, là où offerId ajoute une durée. Elle contourne les offres, donc la trace de ce qui a été vendu : réservée au super administrateur · super admin+Fixer l’échéance à la main — absolue, là où offerId ajoute une durée. Elle contourne les offres, donc la trace de ce qui a été vendu : réservée au super administrateur
curl -X PATCH "https://api.realnotifygroup.com/api/v1/telegram/members/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"expiresAt": "2027-01-31T23:59:59.999Z"
}'/telegram/members/expirationsBalayer un canal : les échus sortent, ceux dont le terme approche reçoivent leur rappel. Le même passage tourne seul toutes les heures — cette route sert à le déclencher sans attendre · clé d’API+Balayer un canal : les échus sortent, ceux dont le terme approche reçoivent leur rappel. Le même passage tourne seul toutes les heures — cette route sert à le déclencher sans attendre
curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/expirations" \
-H "Authorization: Bearer $RNG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"configId": "…"
}'Réservé aux administrateurs. La création d’un compte est une prérogative du super administrateur, et aucune action n’est possible sur un compte de rang égal ou supérieur au vôtre. Le mot de passe est celui que vous transmettez : rien n’est envoyé par e-mail, et le compte créé reçoit sa clé d’API dans le même mouvement.
/users?search=&role=&status=Lister, rechercher, filtrer · admin+Lister, rechercher, filtrer
curl -X GET "https://api.realnotifygroup.com/api/v1/users?search=&role=&status=" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/usersCréer — email, password, role, status · super admin+Créer — email, password, role, status
curl -X POST "https://api.realnotifygroup.com/api/v1/users" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "admin@site.com",
"password": "…",
"role": "ADMIN",
"status": "ACTIVE"
}'/users/{id}Détail d’un compte · admin+Détail d’un compte
curl -X GET "https://api.realnotifygroup.com/api/v1/users/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/users/{id}Modifier l’état civil · admin+Modifier l’état civil
curl -X PATCH "https://api.realnotifygroup.com/api/v1/users/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"firstName": "Amine",
"lastName": "Koffi"
}'/users/{id}/roleChanger le rôle · super admin+Changer le rôle
curl -X PATCH "https://api.realnotifygroup.com/api/v1/users/{id}/role" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"role": "GROUP_ADMIN"
}'/users/{id}/activateActiver · admin+Activer
curl -X POST "https://api.realnotifygroup.com/api/v1/users/{id}/activate" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/users/{id}/deactivateDésactiver — révoque toutes les sessions · admin+Désactiver — révoque toutes les sessions
curl -X POST "https://api.realnotifygroup.com/api/v1/users/{id}/deactivate" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/users/{id}Supprimer — réversible · admin+Supprimer — réversible
curl -X DELETE "https://api.realnotifygroup.com/api/v1/users/{id}" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/users/{id}/restoreRestaurer un compte supprimé · admin+Restaurer un compte supprimé
curl -X POST "https://api.realnotifygroup.com/api/v1/users/{id}/restore" \
-H "Authorization: Bearer $RNG_USER_TOKEN"Deux appels : on demande un code par e-mail, puis on le présente avec le nouveau mot de passe. La demande répond la même chose que le compte existe ou non — cette route ne doit pas permettre d’énumérer les adresses enregistrées. Le code vit 15 minutes, tolère 5 tentatives, et n’ouvre aucune session : il ne sait que changer un mot de passe.
/auth/forgot-passwordDemander un code de réinitialisation · sans jeton+Demander un code de réinitialisation
curl -X POST "https://api.realnotifygroup.com/api/v1/auth/forgot-password" \
-H "Content-Type: application/json" \
-d '{
"email": "vous@entreprise.com"
}'/auth/reset-passwordRéinitialiser — toutes les sessions en cours sont révoquées · sans jeton+Réinitialiser — toutes les sessions en cours sont révoquées
curl -X POST "https://api.realnotifygroup.com/api/v1/auth/reset-password" \
-H "Content-Type: application/json" \
-d '{
"email": "vous@entreprise.com",
"code": "12345678",
"newPassword": "…"
}'/auth/set-passwordChanger son mot de passe en étant connecté+Changer son mot de passe en étant connecté
curl -X POST "https://api.realnotifygroup.com/api/v1/auth/set-password" \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"currentPassword": "…",
"newPassword": "…"
}'C’est ici que la clé d’API prend tout son sens : votre système publie sous votre nom, dans le canal que vous désignez — groupId est donc toujours requis.
/alertsPublier — groupId requis, priority INFO, IMPORTANT ou CRITICAL · clé d’API+Publier — groupId requis, priority INFO, IMPORTANT ou CRITICAL
curl -X POST "https://api.realnotifygroup.com/api/v1/alerts" \
-H "Authorization: Bearer $RNG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"groupId": "…",
"priority": "CRITICAL",
"title": "Intrusion",
"body": "Zone B.",
"requireAck": true
}'/alerts?groupId=Historique du canal · clé d’API+Historique du canal
curl -X GET "https://api.realnotifygroup.com/api/v1/alerts?groupId=" \
-H "Authorization: Bearer $RNG_API_KEY"/alerts/{id}/deliveriesStatistiques de remise et de lecture · clé d’API+Statistiques de remise et de lecture
curl -X GET "https://api.realnotifygroup.com/api/v1/alerts/{id}/deliveries" \
-H "Authorization: Bearer $RNG_API_KEY"/groups/{id}/messagesPublier avec pièces jointes (multipart)+Publier avec pièces jointes (multipart)
curl -X POST "https://api.realnotifygroup.com/api/v1/groups/{id}/messages" \
-H "Authorization: Bearer $RNG_USER_TOKEN"/groups/{id}/messagesFil du canal — before remonte le passé, after ne renvoie que le nouveau+Fil du canal — before remonte le passé, after ne renvoie que le nouveau
curl -X GET "https://api.realnotifygroup.com/api/v1/groups/{id}/messages" \
-H "Authorization: Bearer $RNG_USER_TOKEN"Le même appel, dans six langages. Votre clé d’API suffit : elle porte vos droits, et publie donc dans le canal désigné par groupId.
curl -X POST https://api.realnotifygroup.com/api/v1/alerts \
-H "Authorization: Bearer $RNG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"groupId": "…",
"priority": "CRITICAL",
"title": "Intrusion — Site Nord",
"body": "Déclenchement zone B.",
"requireAck": true
}'L'offre choisie fixe l'échéance : le serveur calcule la date à partir de sa durée.
curl -X POST https://api.realnotifygroup.com/api/v1/members \
-H "Authorization: Bearer $RNG_USER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"groupId": "…",
"email": "a.koffi@site.com",
"nickname": "A. Koffi",
"offerId": "…"
}'Une question sur l’intégration ? Écrivez-nous