Démarrage rapide
Chaque requête s'authentifie avec une clé d'API que vous créez dans l'app. Pointez curl, votre CI ou n'importe quel client HTTP vers https://app.relvato.com/api/v1.
# 1 — Confirm your key works and see the endpoints curl https://app.relvato.com/api/v1 \ -H "Authorization: Bearer rlv_your_key" # 2 — List the sites Relvato monitors for you curl https://app.relvato.com/api/v1/sites \ -H "Authorization: Bearer rlv_your_key" # 3 — Read recent runs (optionally scoped to one site) curl "https://app.relvato.com/api/v1/runs?limit=10" \ -H "Authorization: Bearer rlv_your_key" # 4 — One run in detail, then the fix brief Relvato's AI would answer curl https://app.relvato.com/api/v1/runs/RUN_ID \ -H "Authorization: Bearer rlv_your_key" curl https://app.relvato.com/api/v1/runs/RUN_ID/fix-prompt \ -H "Authorization: Bearer rlv_your_key" # 5 — Trigger an on-demand scan of a site (full-access key) curl -X POST https://app.relvato.com/api/v1/sites/SITE_ID/scan \ -H "Authorization: Bearer rlv_your_key"
Authentification
Envoyez votre clé à chaque requête via Authorization: Bearer rlv_your_key (un en-tête x-api-key fonctionne aussi). Une clé manquante, révoquée ou inconnue renvoie 401.
Créez et révoquez les clés dans API access dans l’app. Les clés commencent par rlv_ et ne s’affichent qu’une fois, à la création. Chaque clé est read-only (tout ce qui lit : sites, santé, performance, exécutions, moniteurs, mises à jour, activité, briefs de correction, réglages d’alertes) ou full access (en plus : ajouter et configurer sites et moniteurs, les lancer, examiner les résultats et appliquer les correctifs proposés). Les clés créées avant l’arrivée des portées ont un accès complet. Traitez-les comme un mot de passe.
Endpoints REST
Chaque endpoint est limité au compte de la clé et renvoie du JSON. URL de base https://app.relvato.com/api/v1.
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /api/v1 | Confirme la clé et liste les endpoints disponibles. |
| GET | /api/v1/sites | Liste les sites que Relvato surveille pour vous. |
| GET | /api/v1/sites/:id/overview | Le diagnostic d’un site : ce qui demande attention, la dernière exécution de chaque moniteur et l’utilisation de l’offre. |
| GET | /api/v1/sites/:id/settings | Les réglages d’un site — jamais de valeur secrète. |
| GET | /api/v1/sites/:id/health | La santé actuelle et dans le temps (?range=28|90|182), le point des groupes, la disponibilité mesurée par les sondes. |
| GET | /api/v1/sites/:id/performance | Web Vitals en laboratoire et chez les vrais visiteurs, ce qui ralentit, les principales améliorations. |
| GET | /api/v1/sites/:id/activity | Le journal d’activité WordPress (?filter, ?search, ?days, ?limit). |
| GET | /api/v1/sites/:id/updates | Fenêtres de mises à jour automatiques WordPress, versions retenues, mises à jour sûres, durcissement. |
| GET | /api/v1/sites/:id/quarantine | Mode quarantaine : la session active, ses changements, les sessions passées. |
| GET | /api/v1/checks/:id | Un moniteur complet : planification, ses propres réglages, constats ignorés, dernière exécution. |
| GET | /api/v1/notifications | Les notifications du tableau de bord. |
| GET | /api/v1/runs | Exécutions récentes, de la plus récente à la plus ancienne — paramètres optionnels siteId, checkId, status, before (pagination) et limit (1–100). |
| GET | /api/v1/runs/:id | Une exécution en détail : étapes, avertissements, constats et métriques (condensées si elles sont volumineuses). |
| GET | /api/v1/runs/:id/fix-prompt | Pour une exécution qui a trouvé un problème : le brief auquel répond l’IA de Relvato — stack, ce qui a changé, l’erreur et les preuves. |
| GET | /api/v1/alert-settings | Qui est prévenu de quoi : fréquence, gravité, canaux et répartition. Jamais d’URL ni de secret. |
| POST | /api/v1/sites/:id/scan | Met en file un scan à la demande d'un site et renvoie les identifiants d'exécution. Nécessite une clé en accès complet ; compté sur votre quota mensuel d'exécutions. |
Exemple : lister les sites
{
"sites": [
{
"id": "st_1a2b3c",
"name": "style4street",
"url": "https://style4street.com",
"connectionType": "wordpress"
}
]
}Exemple : exécutions récentes
Une exécution en échec puis résolue (référence acceptée ou ignorée) renvoie status: "passed" avec resolved: true.
{
"runs": [
{
"id": "rn_9f8e7d",
"siteId": "st_1a2b3c",
"checkId": "ck_4d5e6f",
"journey": "checkout",
"checkName": "Checkout",
"status": "passed",
"resolved": false,
"trigger": "schedule",
"startedAt": "2026-08-31T09:15:00.000Z",
"durationMs": 4210,
"error": null,
"warning": null
}
]
}Exemple : une exécution en détail
Les constats arrivent dans metrics.items. Une exécution volumineuse est condensée plutôt que coupée : les longues séries deviennent des résumés, et ce qui a été laissé de côté est listé dans metricsTrimmed — le titre et les constats sont toujours conservés.
{
"runId": "rn_9f8e7d",
"runUrl": "https://app.relvato.com/runs/rn_9f8e7d",
"check": { "key": "google-search", "name": "Google Search" },
"status": "passed",
"warning": "https://style4street.com/category/topuri/hanorace/ lost 57% of its Google impressions",
"metrics": {
"headline": { "tone": "warn", "text": "🔎 1 thing to review on Google Search (as of 2026-09-24)" },
"items": [
{ "text": "https://style4street.com/category/topuri/hanorace/ lost 57% of its Google impressions — 98 in the 7 days to 2026-09-24, against 226 in an average week before", "tone": "warn" }
],
"search": { "engine": "google", "tiles": [ … ], "dailies": [ { "label": "Impressions per day", "days": 84, "last7Total": 2196, "usualLast7Total": 2583 } ], … }
},
"metricsTrimmed": {
"note": "Large parts were left out to keep this short — the run page has everything.",
"omitted": ["search.dailies (the per-day values — summarized)", "search.tiles[].weekly (the 8 weekly bars)"]
}
}Exemple : le brief de correction d’une exécution
Pour une exécution qui a trouvé un problème, fix-prompt renvoie le brief auquel répond l’IA de Relvato : la stack du site, ce qui a changé juste avant, l’erreur et les constats, et pour Google / Bing Search les preuves qui écartent des causes. Donnez-le à votre propre modèle, ou lisez-le vous-même.
{
"runId": "rn_9f8e7d",
"runUrl": "https://app.relvato.com/runs/rn_9f8e7d",
"hasIssue": true,
"prompt": "# Help me understand a Google Search change on my WordPress site\n\nYou are a senior SEO specialist. … ## Evidence Relvato already has …"
}Limites de débit
Les requêtes sont limitées par minute et par compte, REST et MCP confondus. Votre forfait fixe le plafond :
| Forfait | Requêtes / min |
|---|---|
| Free | 30 |
| Pro | 120 |
| Business | 600 |
| Agency | 2,400 |
Chaque réponse porte X-RateLimit-Limit, X-RateLimit-Remaining et X-RateLimit-Reset. Au-delà de la limite, 429 est renvoyé avec un en-tête Retry-After.
Codes de statut
| Statut | Signification |
|---|---|
200 | Succès. |
400 | Il manque quelque chose à la requête ou elle n’est pas réalisable — le message dit quoi. |
401 | Clé d'API manquante, inconnue ou révoquée. |
403 | La clé est en lecture seule et la requête modifierait quelque chose ou lancerait un scan. |
404 | Site ou exécution introuvable pour ce compte. |
409 | Le site est désactivé, ou vous n'avez pas encore prouvé qu'il vous appartient (domaine non vérifié ou extension WordPress jamais connectée). |
429 | Limite de débit atteinte, ou quota mensuel d'exécutions épuisé. |
Serveur MCP (pour agents IA)
Relvato est aussi un serveur Model Context Protocol distant avec 57 outils : un agent comme Claude peut faire dans une conversation ce que vous feriez dans le tableau de bord — ajouter un site et vous guider pour le connecter, choisir et configurer ses moniteurs (jusqu’aux pages que vérifie le moniteur visuel), les lancer, expliquer les résultats et, avec votre accord, valider un changement voulu ou vous donner le lien pour appliquer dans WordPress le correctif que propose une exécution. Vous le connectez en vous identifiant sur Relvato ou avec une clé d'API ; dans les deux cas, il partage la limite de l'API REST. Valider les changements d’intégrité des fichiers, de scripts et de DNS, qui reçoit les alertes, les secrets et toute suppression restent dans le tableau de bord.
Référencé dans le GitHub MCP Registry ↗.
Identifiez-vous, sans clé. Ajoutez l'endpoint comme connecteur dans Claude (claude.ai, Desktop ou Claude Code), ChatGPT ou VS Code. Le client ouvre la connexion à Relvato ; vous l'autorisez à lire vos sites et résultats et à faire des changements : ajouter des sites et des moniteurs, modifier les plannings et lancer des scans. La connexion fonctionne dans les clients compatibles avec les Client ID Metadata Documents ; Cursor et la passerelle MCP de Docker ne le sont pas encore et utilisent une clé d'API.
Si vous appartenez à une organisation, vous choisissez l'un de ses espaces de travail à la connexion ; votre espace personnel n'y est pas proposé. Pour connecter votre espace personnel, utilisez une clé d'API.
Ce que vous pouvez demander à un agent connecté à Relvato :
- « Pourquoi le paiement de ma boutique a-t-il échoué cette nuit, et comment le corriger ? »
- « Mets en place la surveillance de example.com et dis-moi ce que je dois faire pour le connecter. »
- « Qui est alerté quand un moniteur Security détecte un problème, et sur quels canaux ? »
- « Ajoute mes pages de tarifs et de blog au moniteur visuel, puis lance-le. »
- « Quelle est la vitesse de ma boutique pour les vrais visiteurs, et qu’est-ce qui la ralentit ? »
Endpoint https://app.relvato.com/api/mcp
| Outil | Rôle |
|---|---|
| Mise en place | |
list_sites | Liste les sites du compte et indique si chacun est prêt à lancer des moniteurs. |
add_site | Ajoute un site et renvoie son étape de configuration : connecter l'extension WordPress ou vérifier le domaine. |
verify_site | Vérifie cette étape : la connexion de l'extension, ou l'enregistrement DNS ou la balise meta de vérification du domaine. |
start_monitoring_for_goals | Choisissez ce qui compte (paiement, sécurité, recherche, vitesse, …) et obtenez les moniteurs de votre offre qui le couvrent. |
list_checks | Les moniteurs que vous pouvez ajouter : ce que chacun repère, s'il est inclus dans votre offre et lesquels sont recommandés. |
add_checks | Ajoute des moniteurs à un site ; chacun indique s'il a été ajouté, s'il existait déjà ou pourquoi non. |
dismiss_recommendation | Ne plus recommander un moniteur pour un site, ou rétablir les recommandations écartées. |
calibrate_site | WooCommerce : relire la boutique (un produit à acheter, le type de paiement, la devise) après un changement. |
verify_vitals_beacon | Vérifie que la balise Web Vitals des vrais visiteurs est installée. |
| Lire | |
site_overview | Verdict clair sur le site : ce qui demande votre attention, chaque moniteur avec sa dernière exécution et sa planification, et l'utilisation de l'offre. Sous WordPress, aussi les abilities IA du site. |
get_site_health | Taux de réussite actuel et sur 30 jours, la tendance sur 28 à 182 jours, le point de chaque groupe et la disponibilité mesurée par les sondes avec ses incidents. |
get_performance | Core Web Vitals en laboratoire et chez les vrais visiteurs, ce qui ralentit le site et les principales améliorations, étape par étape. |
get_check | Un moniteur complet : planification, ses propres réglages (pages, masques, détails du paiement, …), constats ignorés, sa recette s’il est écrit par l’IA, dernière exécution. |
list_runs | Exécutions récentes, de la plus récente à la plus ancienne — par site, moniteur ou statut, avec pagination. |
get_run | Une exécution en détail : étapes, constats, comparaisons visuelles avec liens vers les images, le correctif proposé, les extensions à mettre à jour. |
get_fix_prompt | Pour une exécution qui a trouvé un problème : le même brief que celui auquel répond l’IA de Relvato, pour raisonner sur la cause probable et les correctifs. |
get_updates | WordPress : fenêtres de mises à jour automatiques et ce qu’elles ont mis à jour ou annulé, versions retenues, mises à jour sûres, durcissement. |
get_safe_update | Suit une mise à jour ou une désactivation sûre d’extension jusqu’à sa réussite, un moniteur cassé ou son annulation dans WordPress. |
get_quarantine | Mode quarantaine : disponible ou non, actif jusqu’à quand, chaque changement repéré, sessions passées. |
get_activity_log | WordPress : connexions, connexions échouées, comptes, mises à jour, réglages et modifications de fichiers, dans l’historique de votre offre. |
get_notifications | Les notifications du tableau de bord : moniteurs en échec, problèmes d’extension ou de balise, canaux en pause, facturation. |
get_site_settings | Les réglages d’un site : ce qu’un agent peut changer et ce qui reste dans le tableau de bord (jamais de valeur secrète). |
get_alert_settings | Qui est prévenu de quoi : fréquence, gravité, état de chaque canal et répartition — sans URL ni secret. |
get_status_pages | Pages de statut et rapports clients : réglages seulement, jamais de lien privé ni d’adresse de destinataire. |
list_heartbeats | Les heartbeats d’un site (tâches cron qui se signalent) : état, planification, dernier ping, signalements manqués — et les URL de ping en accès complet. |
| Configurer | |
update_check | Active ou désactive un moniteur, ou change quand il s’exécute : planification, relances aux mises à jour WordPress, exécutions supplémentaires aléatoires. |
pause_monitor_group | Mettre en pause tout un groupe de moniteurs pendant 1 heure, 24 heures ou jusqu’à la reprise, par exemple pendant une maintenance ; exactement les moniteurs coupés sont réactivés. |
resume_monitor_group | Reprendre tout de suite un groupe en pause ; un moniteur que l’offre ne permet plus reste coupé, avec la raison. |
update_visual_monitor | Ajouter vos propres pages par adresse au moniteur visuel, régler masques, appareils, navigateurs et seuil. |
update_check_settings | Les réglages propres d’un moniteur : détails du paiement, pages supplémentaires, ce que doit répondre la fonction IA du site, sélecteurs DKIM, … |
add_custom_check | Décrivez ce qui doit être vrai sur une page ; l’IA de Relvato écrit le moniteur. |
edit_custom_check | Donner un nouvel objectif ou une nouvelle page à un moniteur personnalisé ; l’IA écrit une nouvelle recette à approuver. |
reauthor_custom_check | Répondre à la question de l’IA, ou lui faire réécrire la recette d’un moniteur personnalisé. |
approve_custom_check | Approuver une recette proposée pour que le moniteur personnalisé s’exécute (les recettes interactives demandent un accord explicite). |
update_site_settings | Rythme, écart entre exécutions, nouvelle tentative après le pare-feu, rétablissement des moniteurs instables, retour arrière des extensions. |
update_alert_settings | Moment des alertes et gravité minimale. Qui reçoit les alertes et la mise en sourdine restent dans le tableau de bord. |
add_heartbeat | Créez un heartbeat pour une tâche cron ou une sauvegarde et obtenez l’URL que la tâche appelle quand elle réussit. |
update_heartbeat | Renommer, replanifier, mettre en pause ou reprendre un heartbeat. La suppression reste dans le tableau de bord. |
| Lancer et agir | |
trigger_scan | Lance maintenant les moniteurs d’un site — tous, un groupe ou un seul — et renvoie les identifiants d’exécution et leur durée approximative (utilise le quota mensuel). |
cancel_queued_runs | Arrête les exécutions en attente d’un site ; celle en cours se termine. |
request_ai_fix | Demander à l’IA de Relvato une proposition de correctif pour une exécution en échec (offres payantes). |
apply_fix | WordPress : donne le lien pour appliquer dans WordPress le correctif en un clic que propose une exécution — seulement celui-là —, puis Relvato relance le moniteur. |
start_safe_update | WordPress : lance la mise à jour ou la désactivation d’une extension vulnérable, appliquée dans WordPress ; Relvato revérifie et propose l’annulation si quelque chose casse. |
start_quarantine | Après un piratage : exécutions de sécurité toutes les heures pendant 48 heures, mises à jour d’extensions en pause. |
extend_quarantine | Garder le mode quarantaine 48 heures de plus. |
send_test_alert | Envoyer une alerte de test par e-mail, Slack ou webhook. |
resume_webhook | Réactiver les alertes webhook après que Relvato les a mises en pause pour livraisons échouées. |
report_false_positive | Signaler à l’équipe de Relvato qu’un résultat est faux ; rien ne change sur l’exécution. |
| Examiner les résultats | |
ignore_finding | Ne plus compter un constat sur un moniteur (annulable). Seulement si vous confirmez qu’il est attendu. |
unignore_finding | Faire de nouveau compter un constat ignoré. |
accept_visual_change | Faire de la capture de cette exécution la nouvelle référence d’une page (annulable). |
ignore_visual_change | Ignorer désormais la zone qui a changé sur une page (annulable). |
flag_visual_change_as_problem | Marquer comme échec un changement visuel que l’IA a laissé passer. |
undo_visual_review | Annuler la dernière validation ou exclusion visuelle. |
accept_structure_change | Adopter la nouvelle structure d’une page comme référence (annulable). |
ignore_structure_change | Ignorer certains changements d’éléments sur une page (annulable). |
undo_structure_review | Annuler la dernière validation ou exclusion de structure. |
Dans un client qui lit un mcp.json, l'endpoint suffit — le client vous demande de vous identifier la première fois :
{
"mcpServers": {
"relvato": {
"type": "http",
"url": "https://app.relvato.com/api/mcp"
}
}
}Pour utiliser plutôt une clé d'API (un script, un client sans connexion, ou votre espace personnel si vous êtes dans une organisation), ajoutez l'en-tête. Une clé en lecture seule ne reçoit que les outils de lecture :
{
"mcpServers": {
"relvato": {
"type": "http",
"url": "https://app.relvato.com/api/mcp",
"headers": {
"Authorization": "Bearer rlv_your_key"
}
}
}
}Plugin Claude Code
Dans Claude Code, le plugin Relvato ajoute le serveur et trois skills pour travailler depuis le dépôt de votre site. Installez-le depuis notre marketplace, puis lancez /mcp et identifiez-vous :
claude plugin marketplace add Relvato/relvato-mcp claude plugin install relvato@relvato
/relvato:setupajoute le site que ce dépôt déploie, prouve qu'il vous appartient (il peut ajouter la balise meta de vérification à votre code), choisit des moniteurs et lance les premières exécutions./relvato:check-after-deploylance les moniteurs du site après un déploiement, indique combien de temps ils prennent, et signale ce qui est passé et ce qui a cassé./relvato:fix-failurelit une exécution en échec, trouve la cause dans votre code, applique la plus petite correction avec votre accord, puis relance ce moniteur.
Perplexity
Avec une offre Perplexity Pro, Max ou Enterprise, ajoutez Relvato comme connecteur personnalisé : Settings → Connectors → + Custom connector → Remote. Indiquez le point de terminaison ci-dessus comme URL du serveur MCP et Streamable HTTP comme transport.
Pour Authentication, choisissez API key et collez une clé API Relvato (créez-la dans API access, dans l'application ; une clé en lecture seule n'obtient que les outils de lecture). L'option OAuth de Perplexity ne fonctionne pas encore avec la connexion Relvato : elle suppose que le serveur enregistre Perplexity automatiquement, ce que Relvato ne propose pas.
Webhooks
L’API répond quand vous l’interrogez. Pour être prévenu dès qu’un moniteur détecte un problème, ajoutez un webhook : Relvato envoie un événement JSON signé à votre URL pour chaque alerte (à partir de Pro). Configurer un webhook →
Questions fréquentes
Quels forfaits incluent l'accès API et MCP ?
Tous, y compris Free — seule la limite par minute change. Free autorise 30 requêtes par minute ; les forfaits payants davantage.
Comment obtenir une clé ?
Connectez-vous et ouvrez Accès API dans l'app. Choisissez lecture seule ou accès complet pour chaque clé ; vous pouvez en créer plusieurs et révoquer chacune à tout moment.
Que peut faire une clé en lecture seule ?
Tout ce qui ne fait que lire : sites, santé et disponibilité, performance, exécutions et moniteurs, mises à jour et activité WordPress, quarantaine, notifications, briefs de correction et réglages d’alertes — en REST comme en MCP. Un client MCP connecté avec une clé en lecture seule ne voit que les outils de lecture. Tout ce qui ajoute, modifie, lance ou examine renvoie 403 et nécessite une clé à accès complet.
REST et MCP partagent-ils la limite ?
Oui. La limite est par compte et par minute, comptée sur les deux interfaces réunies.
Lancer un scan consomme-t-il mon quota ?
Oui. Les scans à la demande — via REST ou MCP — puisent dans le même quota mensuel d'exécutions que les exécutions planifiées.
Un agent peut-il ajouter des sites et modifier des moniteurs ?
Oui — dans les limites de votre offre, selon les mêmes règles que le tableau de bord. Il ne peut pas contourner la preuve de propriété : un nouveau site ne s'exécute qu'une fois son extension WordPress connectée ou son domaine vérifié. Il ne peut valider ou ignorer un résultat que de façon annulable et, sous WordPress, ne vous transmettre que le correctif que propose une exécution, à appliquer dans WordPress → Relvato. Valider les changements d’intégrité des fichiers, de scripts et de DNS, arrêter le mode quarantaine, choisir qui reçoit les alertes, les secrets et les suppressions restent dans le tableau de bord.
Un assistant IA peut-il se connecter sans clé d'API ?
Oui. Claude, ChatGPT et VS Code peuvent s'identifier sur Relvato (tout client compatible avec les Client ID Metadata Documents le peut) : ajoutez l'endpoint MCP et suivez la connexion. Les limites par minute et du forfait sont les mêmes qu'avec une clé. Si vous appartenez à une organisation, la connexion relie l'un de ses espaces de travail ; pour votre espace personnel, utilisez une clé d'API.
Relvato fonctionne-t-il avec l’API Abilities de WordPress ?
Dans les deux sens. L’extension Relvato enregistre quatre abilities (état du site, moniteurs, brief de correction et lancement des moniteurs) : un assistant connecté à un site WordPress par le MCP Adapter peut donc utiliser Relvato depuis ce site. Et site_overview liste les abilities qu’enregistrent toutes les extensions d’un site WordPress, telles que le dernier scan d’exposition les a lues : lesquelles n’importe qui peut exécuter, et lesquelles peuvent supprimer des données.