API d'avis Google pour développeurs
Une API REST pour consulter vos établissements et avis, déclencher des demandes d'avis depuis votre propre système (caisse, réservation, e-commerce), plus des webhooks signés pour recevoir des événements en temps réel sans polling.
Authentification
Générez une clé API depuis Paramètres → API dans votre tableau de bord. Chaque clé n'est affichée qu'une seule fois à sa création — conservez-la en lieu sûr. Envoyez-la dans l'en-tête Authorization de chaque requête :
curl -H "Authorization: Bearer rvd_live_..." \ "https://reviews-api.rovidev.com/api/v1/locations"
GET /api/v1/locations
Retourne les établissements actifs de votre organisation.
{
"id": "b3f1...",
"name": "Cafetería El Sol - Centro"
}GET /api/v1/reviews
Retourne les avis de votre organisation, paginés. Prend en charge les filtres status (pending, negative, published), location_id, platform (google, facebook, tripadvisor), page et page_size.
curl -H "Authorization: Bearer rvd_live_..." \ "https://reviews-api.rovidev.com/api/v1/reviews?status=negative&page=1&page_size=50"
{
"items": [
{
"id": "9c2a...",
"location_id": "b3f1...",
"location_name": "Cafetería El Sol - Centro",
"platform": "google",
"star_rating": 5,
"comment": "Trato excelente",
"reviewer_name": "Ana",
"sentiment": "positive",
"review_created_at": "2026-08-20T10:15:00",
"reply_status": "published",
"reply_content": "¡Muchas gracias, Ana!"
}
],
"total": 1,
"page": 1,
"page_size": 50
} Également en JavaScript / Node
const res = await fetch(
"https://reviews-api.rovidev.com/api/v1/reviews?status=negative&page=1&page_size=50",
{ headers: { Authorization: "Bearer rvd_live_..." } }
)
const { items, total } = await res.json()POST /api/v1/review-requests
Déclenchez une demande d'avis au moment exact où une commande, une réservation ou un rendez-vous est terminé, au lieu de dépendre d'une liste de contacts importée à la main. Prend en charge les canaux email, sms et whatsapp.
curl -X POST -H "Authorization: Bearer rvd_live_..." \
-H "Content-Type: application/json" \
-d '{"channel":"email","name":"Ana","email":"ana@example.com"}' \
"https://reviews-api.rovidev.com/api/v1/review-requests" {
"id": "7e4b...",
"status": "sent",
"channel": "email",
"recipient": "ana@example.com"
} Également en JavaScript / Node
await fetch("https://reviews-api.rovidev.com/api/v1/review-requests", {
method: "POST",
headers: {
Authorization: "Bearer rvd_live_...",
"Content-Type": "application/json"
},
body: JSON.stringify({ channel: "email", name: "Ana", email: "ana@example.com" })
})Webhooks
Configurez une URL depuis Paramètres → API pour recevoir un POST à chaque événement, au lieu d'interroger l'API régulièrement. Maximum 5 webhooks actifs par organisation.
Événements disponibles
review.createdreview.replieddaily.summary
Vérifier la signature
Chaque envoi inclut l'en-tête X-RoviDev-Signature : un HMAC-SHA256 du corps de la requête, calculé avec le secret affiché à la création du webhook. Vérifiez-le sur votre serveur avant de traiter l'événement :
import hashlib import hmac expected = hmac.new(secret.encode(), request.body, hashlib.sha256).hexdigest() hmac.compare_digest(expected, request.headers["X-RoviDev-Signature"])
Également en JavaScript / Node
const crypto = require("crypto")
const expected = crypto
.createHmac("sha256", secret)
.update(rawBody)
.digest("hex")
crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(req.headers["x-rovidev-signature"])) Voir le guide pas à pas : automatiser les demandes d'avis et les webhooks →