Retour au site
API v1

Documentation de l’API

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.

Adresse de base

https://api.realnotifygroup.com/api/v1

Toutes 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": "…"
  }
}

Authentification

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.

Temps réel

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.

Gérer ses canaux

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.

  • GET/groupsLister vos canaux+

    Lister vos canaux

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/groups" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/groupsCréer un canal+

    Créer un canal

    Autorisation
    Compte authentifié
    Corps attendu
    name, membersCanWrite
    Réponse
    data
    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
    }'
  • GET/groups/{id}Détail d’un canal+

    Détail d’un canal

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/groups/{id}" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • PATCH/groups/{id}Modifier le nom, la description ou les options+

    Modifier le nom, la description ou les options

    Autorisation
    Compte authentifié
    Corps attendu
    name
    Réponse
    data
    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"
    }'
  • DELETE/groups/{id}Supprimer — exige confirmName égal au nom exact+

    Supprimer — exige confirmName égal au nom exact

    Autorisation
    Compte authentifié
    Corps attendu
    confirmName
    Réponse
    data
    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é"
    }'
  • POST/groups/{id}/restoreRestaurer un canal supprimé · admin+

    Restaurer un canal supprimé

    Autorisation
    Administrateur
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/groups/{id}/restore" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/groups/{id}/adminsAjouter un administrateur au canal+

    Ajouter un administrateur au canal

    Autorisation
    Compte authentifié
    Corps attendu
    email
    Réponse
    data
    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"
    }'
  • DELETE/groups/{id}/admins/{userId}Retirer un administrateur+

    Retirer un administrateur

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X DELETE "https://api.realnotifygroup.com/api/v1/groups/{id}/admins/{userId}" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"

Ses identifiants d’API

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.

  • GET/users/me/api-keyLire son identifiant et sa clé+

    Lire son identifiant et sa clé

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/users/me/api-key" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/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

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/users/me/api-key/regenerate" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/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

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/users/me/api-username/regenerate" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • GET/users/{id}/api-keyLire les identifiants d’un utilisateur · super admin+

    Lire les identifiants d’un utilisateur

    Autorisation
    Super administrateur
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/users/{id}/api-key" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/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é

    Autorisation
    Super administrateur
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/users/{id}/api-key/regenerate" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/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é

    Autorisation
    Super administrateur
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/users/{id}/api-username/regenerate" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"

Gérer ses membres

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é.

  • GET/members?groupId=&status=Lister, filtrer par canal et statut+

    Lister, filtrer par canal et statut

    Autorisation
    Compte authentifié
    Réponse
    data[], meta
    curl -X GET "https://api.realnotifygroup.com/api/v1/members?groupId=&status=" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/membersAjouter — email et offerId (ou expiresAt)+

    Ajouter — email et offerId (ou expiresAt)

    Autorisation
    Compte authentifié
    Corps attendu
    groupId, email, offerId
    Réponse
    data
    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": "…"
    }'
  • GET/members/{id}Détail d’un membre+

    Détail d’un membre

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/members/{id}" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • PATCH/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

    Autorisation
    Compte authentifié
    Corps attendu
    nickname, offerId
    Réponse
    data
    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": "…"
    }'
  • POST/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é

    Autorisation
    Compte authentifié
    Corps attendu
    offerId
    Réponse
    data
    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": "…"
    }'
  • POST/members/{id}/suspendDésactiver — reste dans le canal, ne reçoit plus rien+

    Désactiver — reste dans le canal, ne reçoit plus rien

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/members/{id}/suspend" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/members/{id}/activateRéactiver un membre désactivé+

    Réactiver un membre désactivé

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/members/{id}/activate" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/members/{id}/removeRetirer du canal+

    Retirer du canal

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/members/{id}/remove" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/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

    Autorisation
    Compte authentifié
    Corps attendu
    offerId
    Réponse
    data
    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": "…"
    }'

Gérer ses offres

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.

  • GET/offers?isActive=trueLister le catalogue+

    Lister le catalogue

    Autorisation
    Compte authentifié
    Réponse
    data[], meta
    curl -X GET "https://api.realnotifygroup.com/api/v1/offers?isActive=true" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • GET/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

    Autorisation
    Compte authentifié
    Réponse
    data[], meta
    curl -X GET "https://api.realnotifygroup.com/api/v1/offers?available=true" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/offersCréer — name, durationDays, amount, currency+

    Créer — name, durationDays, amount, currency

    Autorisation
    Compte authentifié
    Corps attendu
    name, durationDays, amount, currency
    Réponse
    data
    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"
    }'
  • GET/offers/{id}Détail d’une offre+

    Détail d’une offre

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/offers/{id}" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • PATCH/offers/{id}Modifier, activer ou désactiver via isActive+

    Modifier, activer ou désactiver via isActive

    Autorisation
    Compte authentifié
    Corps attendu
    isActive
    Réponse
    data
    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
    }'
  • DELETE/offers/{id}Supprimer — désactivée si des abonnements courent+

    Supprimer — désactivée si des abonnements courent

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X DELETE "https://api.realnotifygroup.com/api/v1/offers/{id}" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • GET/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

    Autorisation
    Compte authentifié
    Réponse
    data[], meta
    curl -X GET "https://api.realnotifygroup.com/api/v1/subscriptions?scope=mine|sold|all" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/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

    Autorisation
    Compte authentifié
    Corps attendu
    offerId
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/subscriptions" \
      -H "Authorization: Bearer $RNG_USER_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
      "offerId": "…"
    }'
  • POST/subscriptions/{id}/renewRenouveler+

    Renouveler

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/subscriptions/{id}/renew" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/subscriptions/{id}/cancelAnnuler+

    Annuler

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/subscriptions/{id}/cancel" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"

Telegram Sub

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.

  • POST/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

    Autorisation
    Clé d’API ou compte
    Corps attendu
    botName, botUsername, botToken, botId, channelName, channelId
    Réponse
    data
    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"
    }'
  • GET/telegram/configsLister vos configurations · clé d’API+

    Lister vos configurations

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/telegram/configs" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • GET/telegram/configs/{id}Détail d’une configuration · clé d’API+

    Détail d’une configuration

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/telegram/configs/{id}" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • PATCH/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

    Autorisation
    Clé d’API ou compte
    Corps attendu
    isActive
    Réponse
    data
    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
    }'
  • GET/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é

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/telegram/configs/{id}/webhook" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • POST/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

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/configs/{id}/webhook" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • DELETE/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

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X DELETE "https://api.realnotifygroup.com/api/v1/telegram/configs/{id}/webhook" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • POST/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

    Autorisation
    Clé d’API ou compte
    Corps attendu
    configId, email, nickname, offerId
    Réponse
    data
    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": "…"
    }'
  • GET/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

    Autorisation
    Clé d’API ou compte
    Réponse
    data[], meta
    curl -X GET "https://api.realnotifygroup.com/api/v1/telegram/members?configId=&status=&search=" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • GET/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

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/telegram/members/{id}" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • POST/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

    Autorisation
    Clé d’API ou compte
    Corps attendu
    offerId
    Réponse
    data
    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": "…"
    }'
  • POST/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

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/remind" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • POST/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

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/deactivate" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • POST/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

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/activate" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • POST/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

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/expire" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • POST/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é

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/link" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • POST/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

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/telegram/members/{id}/resolve" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • PATCH/telegram/members/{id}Modifier le pseudo, ou renouveler par offerId · clé d’API+

    Modifier le pseudo, ou renouveler par offerId

    Autorisation
    Clé d’API ou compte
    Corps attendu
    nickname
    Réponse
    data
    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"
    }'
  • PATCH/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

    Autorisation
    Super administrateur
    Corps attendu
    expiresAt
    Réponse
    data
    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"
    }'
  • POST/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

    Autorisation
    Clé d’API ou compte
    Corps attendu
    configId
    Réponse
    data
    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": "…"
    }'

Gérer les comptes

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.

  • GET/users?search=&role=&status=Lister, rechercher, filtrer · admin+

    Lister, rechercher, filtrer

    Autorisation
    Administrateur
    Réponse
    data[], meta
    curl -X GET "https://api.realnotifygroup.com/api/v1/users?search=&role=&status=" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/usersCréer — email, password, role, status · super admin+

    Créer — email, password, role, status

    Autorisation
    Super administrateur
    Corps attendu
    email, password, role, status
    Réponse
    data
    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"
    }'
  • GET/users/{id}Détail d’un compte · admin+

    Détail d’un compte

    Autorisation
    Administrateur
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/users/{id}" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • PATCH/users/{id}Modifier l’état civil · admin+

    Modifier l’état civil

    Autorisation
    Administrateur
    Corps attendu
    firstName, lastName
    Réponse
    data
    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"
    }'
  • PATCH/users/{id}/roleChanger le rôle · super admin+

    Changer le rôle

    Autorisation
    Super administrateur
    Corps attendu
    role
    Réponse
    data
    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"
    }'
  • POST/users/{id}/activateActiver · admin+

    Activer

    Autorisation
    Administrateur
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/users/{id}/activate" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/users/{id}/deactivateDésactiver — révoque toutes les sessions · admin+

    Désactiver — révoque toutes les sessions

    Autorisation
    Administrateur
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/users/{id}/deactivate" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • DELETE/users/{id}Supprimer — réversible · admin+

    Supprimer — réversible

    Autorisation
    Administrateur
    Réponse
    data
    curl -X DELETE "https://api.realnotifygroup.com/api/v1/users/{id}" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • POST/users/{id}/restoreRestaurer un compte supprimé · admin+

    Restaurer un compte supprimé

    Autorisation
    Administrateur
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/users/{id}/restore" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"

Mot de passe oublié

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.

  • POST/auth/forgot-passwordDemander un code de réinitialisation · sans jeton+

    Demander un code de réinitialisation

    Autorisation
    Aucune
    Corps attendu
    email
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/auth/forgot-password" \
      -H "Content-Type: application/json" \
      -d '{
      "email": "vous@entreprise.com"
    }'
  • POST/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

    Autorisation
    Aucune
    Corps attendu
    email, code, newPassword
    Réponse
    data
    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": "…"
    }'
  • POST/auth/set-passwordChanger son mot de passe en étant connecté+

    Changer son mot de passe en étant connecté

    Autorisation
    Compte authentifié
    Corps attendu
    currentPassword, newPassword
    Réponse
    data
    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": "…"
    }'

Diffuser des alertes

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.

  • POST/alertsPublier — groupId requis, priority INFO, IMPORTANT ou CRITICAL · clé d’API+

    Publier — groupId requis, priority INFO, IMPORTANT ou CRITICAL

    Autorisation
    Clé d’API ou compte
    Corps attendu
    groupId, priority, title, body, requireAck
    Réponse
    data
    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
    }'
  • GET/alerts?groupId=Historique du canal · clé d’API+

    Historique du canal

    Autorisation
    Clé d’API ou compte
    Réponse
    data[], meta
    curl -X GET "https://api.realnotifygroup.com/api/v1/alerts?groupId=" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • GET/alerts/{id}/deliveriesStatistiques de remise et de lecture · clé d’API+

    Statistiques de remise et de lecture

    Autorisation
    Clé d’API ou compte
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/alerts/{id}/deliveries" \
      -H "Authorization: Bearer $RNG_API_KEY"
  • POST/groups/{id}/messagesPublier avec pièces jointes (multipart)+

    Publier avec pièces jointes (multipart)

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X POST "https://api.realnotifygroup.com/api/v1/groups/{id}/messages" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"
  • GET/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

    Autorisation
    Compte authentifié
    Réponse
    data
    curl -X GET "https://api.realnotifygroup.com/api/v1/groups/{id}/messages" \
      -H "Authorization: Bearer $RNG_USER_TOKEN"

Diffuser une alerte

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
  }'

Ajouter un membre

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": "…"
  }'
  • Les membres expirés restent notifiés, mais le contenu leur est masqué si le canal le demande.
  • Une alerte CRITICAL déclenche le mode appel sur les mobiles des membres actifs.
  • Les suppressions sont réversibles : comptes, canaux et membres se restaurent.

Une question sur l’intégration ? Écrivez-nous