Aller au contenu

API publique

Intégrez RepOtz à vos propres systèmes (caisse, CRM, e-commerce, Zapier, Make) via une API REST documentée. Les scopes d’intégration sont ouverts dès le plan Pro ; trois scopes d’exploitation restent réservés au plan Agency.

Depuis votre espace (Compte > Jetons d’API), vous créez des jetons d’API par compte, chacun limité à des scopes, un par ressource :

Scopes d’intégration (plans Pro et Agency)

  • read:account - votre plan, vos limites et leur consommation.
  • read:businesses - vos activités, points de contact et état de configuration.
  • write:contacts - vos contacts : lecture, création, modification, import CSV. C’est le point d’entrée d’une intégration caisse ou CRM (un client vient de payer > un contact > une invitation). Créer un contact demande l’automation des demandes d’avis (Pro). Un contact peut porter une locale (fr, en ou es) : c’est alors dans cette langue qu’il reçoit ses invitations, avant la langue de la campagne.
  • campaigns:manage - vos campagnes et leurs parcours.
  • invitations:trigger - déclenchement de l’envoi d’une campagne d’invitation.
  • read:feedbacks - les feedbacks privés collectés par vos parcours, avec les coordonnées laissées par le client.
  • read:reviews - vos derniers avis Google.
  • write:links - les plateformes de votre page de liens : activation, adresse, ordre, règles d’affichage, et l’état de la surveillance des liens.
  • read:qr - vos QR codes (scans, statistiques) et vos liens courts (clics).
  • manage:webhooks - vos webhooks sortants : abonnement, journal, rejeu, rotation du secret.

Scopes d’exploitation (plan Agency)

  • analytics:read - les analytics de clics du compte.
  • read:testimonials - vos témoignages vidéo, avec une adresse de téléchargement signée valable une heure.
  • write:audits - lancer l’audit de réputation d’un prospect et lire son résultat.

Le jeton est affiché une seule fois à sa création (conservez-le en lieu sûr). Vous pouvez le faire tourner (rotation) ou le révoquer à tout moment.

Chaque scope ouvre les routes de sa ressource, toutes limitées à votre compte : une ressource qui ne vous appartient pas répond 404. La liste complète, avec les paramètres et les réponses, est dans la documentation OpenAPI (https://api.repotz.com/api/v2/public/openapi.json).

Deux limites s’appliquent par jeton : 60 requêtes par minute, et un quota journalier selon le plan (5 000 appels sur Pro, 20 000 sur Agency). Au-delà, la réponse est HTTP 429 avec l’en-tête Retry-After.

Un webhook prévient votre système (CRM, Slack via Zapier ou Make, votre propre serveur) à l’instant où quelque chose se passe dans RepOtz, sans qu’il ait à interroger l’API. Disponible dès le plan Pro, depuis Tableau de bord > Intégrations ou par l’API (manage:webhooks).

Événements : feedback.submitted (nouveau feedback), feedback.low_rating (note de 2 ou moins), testimonial.uploaded (témoignage vidéo reçu), contact.created (nouveau contact, quelle que soit la source), invitation.sent (invitation envoyée à un contact), platform_link.broken (un lien de votre page confirmé hors ligne).

Ce que reçoit votre serveur : une requête POST en JSON { id, event, occurred_at, account_id, data } avec les en-têtes X-Repotz-Event, X-Repotz-Event-Version: 1, X-Repotz-Delivery et une signature X-Repotz-Signature: t=<horodatage>,v1=<empreinte>. L’empreinte est un HMAC-SHA256 de <horodatage>.<corps> calculé avec le secret affiché une seule fois à la création du webhook ; vérifiez-la avant de traiter le message, et refusez un horodatage de plus de cinq minutes. Après une rotation du secret, l’ancien reste valide 24 heures et l’en-tête porte deux empreintes.

Livraison : votre serveur doit répondre 2xx en moins de 10 secondes. Sinon, RepOtz réessaie après 1 min, 5 min, 30 min, 2 h puis 12 h ; après cinq tentatives la livraison est marquée en échec. Après 20 livraisons consécutives en échec, le webhook est désactivé et vous recevez un email ; corrigez, puis réactivez-le. Le journal des 30 derniers jours, avec chaque réponse reçue, se consulte dans Intégrations, et toute livraison peut être rejouée (même identifiant d’événement, pour dédoublonner). Un bouton Envoyer un ping vérifie votre branchement à tout moment. Dix webhooks au plus par compte.

Les applications RepOtz pour Zapier et RepOtz pour Make reposent sur cette API et ces webhooks : déclencheurs instantanés (nouveau feedback, note basse, témoignage, nouveau contact, invitation envoyée, lien cassé), actions (créer un contact, envoyer une campagne d’invitation) et recherches. Elles se connectent avec un jeton d’API portant les scopes utiles (manage:webhooks pour les déclencheurs, write:contacts et invitations:trigger pour les actions, read:account pour tester la connexion). Recettes prêtes : Slack (alerte à chaque note basse), Google Sheets (une ligne par feedback ou contact), HubSpot (contacts dans les deux sens). Le détail par outil est sur https://repotz.com/integrations.

Q. Sur quel plan l’API publique est-elle disponible ? R. Les scopes d’intégration dès le plan Pro ; les scopes analytics, témoignages et audits demandent le plan Agency. Un jeton Pro qui demande un scope Agency est refusé en nommant le scope. Le plan Basic n’a pas de jeton.

Q. J’ai perdu mon jeton, puis-je le revoir ? R. Non, il n’est affiché qu’à la création. Créez-en un nouveau (ou faites une rotation) et révoquez l’ancien.

Q. Puis-je recevoir des webhooks à chaque nouvel avis ? R. Oui, dès le plan Pro : abonnez un webhook à feedback.submitted (et feedback.low_rating pour être alerté des notes basses). Les avis Google eux-mêmes arriveront avec la persistance des avis (google_review.*).