API REST SEO pour développeurs

L'API SEO de MetricSpot lance le même audit à 154 règles (on-page + lisibilité IA) que notre dashboard, en HTTP simple. Apporte ton langage : curl, Node, Python, PHP, n'importe quoi qui parle HTTPS. Les mêmes clés Bearer fonctionnent aussi avec notre serveur MCP.

Essaie l'API SEO tout de suite, sans inscription, sans token, juste curl :

curl -s -X POST https://app.metricspot.com/api/public/audit \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}' | jq .total_score

Sans carte bancaire. Résultats en 30 secondes.

Essaie chaque appel depuis ton navigateur

Référence OpenAPI 3.1 avec exemples de requêtes en direct pour les 12 endpoints.

Ouvrir la référence API →

Authentification par token Bearer

Chaque endpoint authentifié accepte un token dans l'en-tête Authorization : Authorization: Bearer ms_live_xxx. Génère une clé sur app.metricspot.com/settings/api-keys (jusqu'à 10 par compte). Les appels authentifiés par token nécessitent le plan Pro et s'imputent sur ton quota de 5 000 par mois. L'endpoint d'audit anonyme fonctionne sans clé, limité à 1 audit par IP toutes les 24 heures. Les mêmes clés ms_live_ servent à la fois pour cette API REST et pour le serveur MCP MetricSpot.

curl

Endpoint anonyme, sans token. Renvoie l'enveloppe d'audit complète en ligne.

curl -X POST https://app.metricspot.com/api/public/audit \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com"}'

Node (fetch)

Fonctionne en Node 18+, Bun, Deno et les navigateurs modernes. Aucune dépendance.

const res = await fetch("https://app.metricspot.com/api/audits", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer ms_live_xxx",
  },
  body: JSON.stringify({ url: "https://example.com" }),
});
const audit = await res.json();

Python (httpx)

requests est identique : remplace httpx.post par requests.post.

import httpx

res = httpx.post(
    "https://app.metricspot.com/api/audits",
    headers={"Authorization": "Bearer ms_live_xxx"},
    json={"url": "https://example.com"},
)
audit = res.json()

PHP

Extension cURL standard, disponible dans toute installation PHP depuis la 4.0.

<?php
$ch = curl_init("https://app.metricspot.com/api/audits");
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json",
    "Authorization: Bearer ms_live_xxx",
  ],
  CURLOPT_POSTFIELDS => json_encode(["url" => "https://example.com"]),
  CURLOPT_RETURNTRANSFER => true,
]);
$audit = json_decode(curl_exec($ch), true);

Douze endpoints, tout le moteur d'audit

Chaque endpoint exécute le même audit à 154 règles et les mêmes 15 modules de score que app.metricspot.com. JSON en entrée, JSON en sortie. L'endpoint d'essai anonyme ne demande pas de clé ; les onze autres acceptent un token Bearer issu de ton dashboard.

POST /api/public/audit
Sans auth

Audit anonyme

Lance un audit SEO et lisibilité IA unique sur n'importe quelle URL publique. Renvoie des scores sur 15 modules et 154 vérifications, plus des findings actionnables. Sans compte. Limité à 1 audit par IP toutes les 24 heures.

POST /api/audits
Bearer requis

Mettre un audit complet en file

Met en file un audit SEO et lisibilité IA complet. Inclut les Core Web Vitals depuis Google PageSpeed Insights, et le trafic organique si GA4 et Google Search Console sont connectés. Répond immédiatement avec audit_id et status: queued.

GET /api/audits/:id
Bearer requis

Récupérer un audit

Récupère par id un audit déjà mis en file. Renvoie les scores des 15 modules (0-100), le score total, chaque finding avec sévérité et texte de recommandation, ainsi que les liens vers les rapports HTML et PDF.

GET /api/audits
Bearer requis

Lister les audits

Liste les audits du compte, du plus récent au plus ancien, dédupliqués par URL. Renvoie audit_id, url, status, total_score, has_ga, has_gsc, created_at. Limite par défaut 24, maximum 100.

DELETE /api/audits/:id
Bearer requis

Supprimer les audits d'une URL

Supprime tous les audits dont l'URL correspond à celle de l'audit_id donné. Renvoie 204 en cas de succès.

PATCH /api/audits/reorder
Bearer requis

Réordonner les audits

Fixe la position d'affichage des audits dans le dashboard. Body : { "url_order": ["https://a.com", "https://b.com", ...] } (max 200 URLs). Renvoie 204.

GET /api/audits/history
Bearer requis

Historique d'audits

Renvoie jusqu'à 50 audits historiques pour une URL. Pratique pour suivre l'évolution du score dans le temps. Query : ?url=<url-encodée>.

GET /api/audits/usage
Bearer requis

Consommation d'audits

Renvoie le quota d'audits du mois en cours : audits_remaining, audits_used, plan_limit, reset_at.

POST /api/audits/:id/pdf
Bearer requis

Rendre un PDF brandé

Déclenche le rendu d'un PDF brandé pour un audit terminé. Body : { "language": "en", "brand_id": 42 } (les deux optionnels). Renvoie 201 avec { pdf: { id, status: "pending" } }. Combine avec GET /api/pdfs/:id pour poller.

GET /api/pdfs/:id
Bearer requis

Poller l'état du PDF

Renvoie { pdf: { id, status, download_url } }. Si Accept: application/pdf et que le statut est ready, renvoie directement le binaire PDF.

GET /api/pdfs/:id/download
Bearer requis

Télécharger le PDF

Téléchargement direct d'un PDF terminé avec Content-Disposition: attachment.

GET /api/audits/:id/report
Bearer requis

Aperçu du rapport HTML

Rend le rapport d'audit en HTML brandé (le même template que celui qui sert à générer le PDF). Pratique pour l'embarquer dans un iframe de portail client avant de télécharger le PDF. Query : ?lang=en&brand_id=42.

API REST ou serveur MCP : ce qui colle à ton stack

Les deux interfaces parlent au même moteur d'audit, avec les mêmes clés et les mêmes données. Choisis REST si tu écris du HTTP simple depuis du CI, des scripts ou des outils no-code ; choisis MCP si un agent IA doit découvrir et enchaîner les outils tout seul.

Cas d'usage Audit SEO manuel Autres APIs SEO MCP MetricSpot API REST MetricSpot
CI/CD sur chaque PR Pas viable au rythme des PRs Possible mais cher à l'appel, JSON fragile Surdimensionné : MCP brille pour les agents interactifs, pas pour les jobs headless Un curl dans une GitHub Action, commente le delta de score sur la PR
Outils no-code (Zapier, n8n, Make) Export et copier-coller manuels Bloc HTTP sur mesure, champs mappés à la main, fragile aux changements de schéma Pas de support MCP dans les plateformes no-code grand public aujourd'hui Bloc HTTP standard avec Bearer, réponse JSON qui mappe proprement
Stack polyglotte (Go, Ruby, Java) Sans objet Un SDK par langage, souvent maintenu par la communauté Les bibliothèques client MCP existent surtout en TypeScript et Python N'importe quel langage avec un client HTTPS marche dès le premier jour
Jobs internes planifiés Des heures par mois, faciles à zapper Tarification à l'appel, souvent par mot-clé ou par domaine Fonctionne, mais un sous-processus stdio est gênant dans cron HTTPS simple depuis cron, Kubernetes CronJob ou Lambda
Workflows d'agents IA Un humain dans chaque boucle Les agents peuvent appeler REST, mais via des wrappers écrits à la main Pensé pour ça : descriptions et schémas auto-découverts Possible, mais tu écriras toi-même le code de colle de l'agent
PDF brandé dans ton SaaS Export et rebrand manuels Souvent réservé au tier le plus cher Disponible via get_audit_pdf, pensé pour les flux d'agents POST /api/audits/:id/pdf puis GET /api/pdfs/:id, intègre-le dans ton UI

Comment l'API SEO de MetricSpot se compare à DataForSEO et Serpstack

DataForSEO est une marketplace complète de données SEO ; Serpstack est une API de scraping de SERPs ; MetricSpot est une API focalisée sur l'audit on-page et la lisibilité IA. Même trio de lettres, forme de valeur différente. Choisis celle qui correspond au travail que tu fais réellement.

Ce que tu compares DataForSEO Serpstack API SEO MetricSpot
Travail principal résolu Marketplace de données massive : SERPs, mots-clés, backlinks, on-page Scrape le HTML des SERPs Google à la demande Lance un audit complet on-page + lisibilité IA sur une URL, retourne scores et corrections
Ce que tu reçois en un appel JSON spécifique à l'endpoint ; l'audit on-page renvoie ~30 tags/problèmes Résultats SERP, annonces, requêtes liées, aucune évaluation on-page Score total, 15 modules (0-100), chaque finding des 154 règles, sévérité, texte de recommandation
Modèle de prix Par appel, varie selon l'endpoint ($0,0006-$0,002 chacun), solde prépayé Mensuel par paliers : 100 gratuit / $30 pour 5K / jusqu'à $200 pour 50K SERPs Forfait $49/mois Pro = 5 000 appels API, sans maths par appel
Endpoint d'essai anonyme Non, inscription + dépôt de $1 requis 100 appels/mois gratuits avec inscription + access key Oui, 1 audit/IP/24h sans aucune inscription, JSON complet
Checks lisibilité IA / ère LLM Pas dans le module on-page Non applicable (SERPs uniquement) Module dédié : llms.txt, schema pour IA, contenu citable, clarté sémantique
PDF en marque blanche Non fourni Non fourni POST /api/audits/:id/pdf retourne un PDF avec ton logo et tes couleurs
Serveur MCP pour agents IA Pas de MCP officiel Pas de MCP officiel Oui, mêmes clés Bearer, même moteur d'audit, compatible Claude Code, Cursor et ChatGPT
Style d'authentification HTTP Basic avec login + mot de passe (rare dans les stacks modernes) Clé API en query string (?access_key=…) En-tête standard Authorization: Bearer ms_live_xxx

Tarifs de l'API REST

L'API REST est incluse dans Pro 49 $/mois. Les comptes Pro disposent de 5 000 appels API par mois sur n'importe lequel des douze endpoints authentifiés par token. L'endpoint d'audit anonyme est gratuit pour tout le monde (limité à 1 par IP toutes les 24 h). Les comptes Free et Starter peuvent consulter la documentation et générer des tokens, mais les appels authentifiés par token répondent 403 jusqu'au passage sur Pro. Les mêmes clés ms_live_ marchent à la fois pour cette API REST et pour le serveur MCP MetricSpot, sur le même quota mensuel partagé.

Free

$0/mo

Essaie la plateforme. Sans carte, sans engagement.

  • ·10 audits par mois (1 par site toutes les 24 h)
  • ·Les dix modules de score
  • ·Téléchargement PDF avec notre marque
  • ·Rapports multilingues

Starter

$29/mo

Pour les freelances qui livrent des rapports mensuels.

  • ·Jusqu'à 5 domaines suivis
  • ·50 audits par mois
  • ·Rapports PDF entièrement en marque blanche
  • ·Brand kit personnalisé (logo, couleur, pied de page)

Pro

$49/mo

Pour les agences, freelances et revendeurs.

  • ·Tout ce qu'inclut Starter
  • ·Ré-audits programmés (hebdomadaire, bimensuel ou mensuel)
  • ·Rapports comparatifs des concurrents (jusqu'à 3 concurrents)
  • ·Domaines suivis illimités

Voir les limites et tarifs des plans →

Ce que les développeurs construisent avec l'API REST

Des patterns concrets que l'on voit chez les équipes déjà en production avec l'API. Chaque exemple utilise les mêmes outils et le même token Bearer.

  • CI/CD : audite chaque preview deploy à l'ouverture d'une PR, poste un commentaire avec le delta de score par rapport à main, casse le build si le score chute de plus de 5 points.
  • Zapier, n8n, Make : déclenche un audit à l'arrivée d'un nouveau lead dans ton CRM, poste le score total et les 3 findings principaux dans un canal Slack, joins le PDF brandé.
  • Monitoring interne : planifie un audit nocturne de tes 50 URLs principales, injecte les scores de modules dans un panel Grafana, alerte quand une catégorie décroche.
  • SaaS en marque blanche : mets un audit en file à la demande de l'utilisateur, rends le PDF brandé, embarque les findings JSON dans ta propre UI sans héberger le moteur d'audit.
  • Garde-fous QA : bloque un deploy si le module de lisibilité IA passe sous le seuil promis au client, avec les règles fautives dans le log de build.
  • Reporting : appelle GET /api/audits/history?url= après chaque audit pour livrer une courbe d'évolution du score dans le temps, accompagnée du dernier PDF brandé.

Écrire du HTTP simple depuis un script ou un runner CI est une voie. Si tu pilotes l'audit depuis un agent IA (Claude Code, Cursor, ChatGPT, Gemini), notre serveur MCP SEO expose les mêmes outils via le Model Context Protocol avec des schémas auto-découverts : même moteur, mêmes clés, sans code de colle.

FAQ

L'API REST est-elle gratuite ?

L'endpoint d'audit anonyme (POST /api/public/audit) est gratuit et ne demande pas de compte, limité à 1 audit par IP toutes les 24 heures. Les onze endpoints authentifiés par token nécessitent le plan Pro à 49 $/mois, qui inclut 5 000 appels API par mois sans surcoût.

En quoi est-ce différent du serveur MCP ?

Même moteur d'audit, mêmes 154 règles sur 15 modules, mêmes clés Bearer. L'API REST, c'est du HTTP simple pour des humains qui écrivent du code : curl, fetch, requests, ce que tu veux. Le serveur MCP parle Model Context Protocol pour que les agents IA (Claude Code, Cursor, ChatGPT, Gemini) découvrent automatiquement les outils, les schémas et l'auth. REST pour le CI, les scripts et le no-code ; MCP pour les workflows d'agents.

Puis-je l'utiliser avec des outils no-code comme Zapier ?

Oui. Toute plateforme no-code avec un bloc HTTP générique fonctionne : Zapier (Webhooks by Zapier), n8n (HTTP Request node), Make (module HTTP), Pipedream, Retool. Mets l'URL sur https://app.metricspot.com/api/audits, méthode POST, ajoute Authorization: Bearer ms_live_xxx aux headers et envoie {"url": "https://example.com"} en JSON. La réponse mappe proprement sur les champs natifs de toutes les plateformes testées.

Quels langages ont des SDK officiels ?

Aucun pour le moment. Tout ce qu'il te faut, c'est un client HTTPS et le parsing JSON, et tous les langages modernes l'ont en standard. Un SDK fin en JavaScript et TypeScript est sur la roadmap ; en attendant, les quatre exemples de code ci-dessus couvrent environ 90% des intégrations qu'on voit. Si tu veux un SDK dans un langage précis, ouvre une issue sur github.com/MetricSpot.

Comment je m'authentifie ?

Envoie Authorization: Bearer ms_live_xxx sur chaque appel authentifié. Les tokens portent le préfixe ms_live_ et ne sont affichés qu'une seule fois à la création ; le dashboard ne stocke qu'un hash. Traite-les comme n'importe quel autre secret : ne les commit jamais, fais-les tourner s'ils fuitent, une clé par intégration pour pouvoir révoquer indépendamment. Le dashboard limite chaque compte à 10 clés actives.

D'où viennent les clés API ?

Génère-les sur app.metricspot.com/settings/api-keys après ton inscription à n'importe quel plan, y compris Free. Chaque clé n'est affichée qu'une fois ; copie-la dans ton coffre à secrets tout de suite. Les mêmes clés marchent pour l'API REST et pour le serveur MCP MetricSpot, donc tu ne gères qu'un seul jeu d'identifiants pour les deux voies d'intégration.

Les données sont-elles les mêmes que dans le dashboard MetricSpot ?

Oui. Chaque endpoint passe par le même moteur d'audit qui anime app.metricspot.com : les mêmes 154 règles sur 15 modules, les mêmes sévérités, les mêmes textes de recommandation. Le PDF retourné par POST /api/audits/:id/pdf est exactement celui que tu télécharges depuis le dashboard.

Quels sont les rate limits ?

L'endpoint anonyme est plafonné à 1 audit par IP toutes les 24 heures. L'accès à l'API nécessite Pro 49 $/mois. Pro inclut 5 000 appels API par mois. Free et Starter n'incluent pas l'accès à l'API. L'endpoint anonyme reste gratuit (1 par IP toutes les 24 h).

Que se passe-t-il si je dépasse les 5 000 appels dans le mois ?

L'endpoint renvoie HTTP 429 avec le corps { error: "quota_exceeded", used: 5000, limit: 5000 }. Le quota se réinitialise au début du mois calendaire suivant. Si tu as besoin d'un quota plus élevé, contacte-nous via le formulaire de support et on t'arrange un palier sur mesure.

Fini les rapports SEO rédigés à la main.

Lance un audit, appose ta marque au PDF, envoie-le. En cinq minutes.

Démarre ton premier audit