Développeurs
API publique
Lisez vos sites, rapports, positions et mots-clés via une API simple authentifiée par clé. Fonction Agency.
API publique
Pour une configuration guidée, consultez le guide de l'API publique.
L'API publique offre un accès en lecture seule aux données que RankMeFast détient déjà pour votre compte, sites, dernier rapport d'audit, historique des positions et mots-clés suivis. C'est une fonction Agency (voir Plans, limites et crédits). L'API ne déclenche jamais de nouveau travail fournisseur, elle lit uniquement ce que vos audits et vérifications de position ont déjà produit.
Le démarrage d'une analyse Content Intelligence et les changements de recommandation ne font pas partie de /api/v1. Ces opérations restent réservées au produit connecté et protégées par Better Auth. MCP peut lire les analyses enregistrées, mais ne propose aucun outil pour lancer une analyse de contenu ou modifier une recommandation.
Authentification
Créez une clé dans Compte → Clés API (/profile?tab=api-keys). La clé complète n'est affichée qu'une seule fois: copiez-la immédiatement ; ensuite seul son préfixe reste visible. Vous pouvez détenir jusqu'à dix clés actives et en révoquer à tout moment. Une clé révoquée cesse de fonctionner immédiatement.
Envoyez la clé comme jeton bearer sur chaque requête :
Authorization: Bearer rmf_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Remplacez https://your-rankme-host dans les exemples ci-dessous par l'origine de votre api (le SERVER_URL de votre installation).
Langue de réponse et contrat de données
Choisissez la langue du texte avec x-lang, puis Accept-Language ; l’API se replie sur en. Une valeur régionale comme fr-CA est ramenée sans risque à fr. /api/v1 ignore les cookies du navigateur, la langue du compte et les préférences de l’espace de travail. Chaque réponse indique la langue effective dans Content-Language et ajoute x-lang, Accept-Language à Vary sans supprimer les valeurs existantes.
Seuls les textes de rapport, de constat, d’action et d’erreur sûre rédigés par RankMeFast sont localisés. Les propriétés JSON, statuts HTTP, codes d’erreur stables, valeurs d’énumération et d’état, identifiants, domaines, URL, mots-clés, horodatages, mesures, observations, curseurs et textes enregistrés de l’utilisateur ou du fournisseur ne changent pas. La langue ne modifie ni le tri ni le format des nombres et des dates.
Le CSV conserve exactement les mêmes octets dans toutes les langues de réponse. Le BOM UTF-8, les noms et l’ordre des colonnes, l’ordre des lignes, l’échappement RFC-4180, les valeurs, les fins de ligne, le nom de fichier, les en-têtes de pagination et le comportement du curseur restent identiques. Content-Language décrit le choix de la réponse ; il ne traduit ni ne renomme le CSV.
Points d'accès
Lister vos sites
curl -H "Authorization: Bearer rmf_..." \
https://your-rankme-host/api/v1/sites
Renvoie { "sites": [{ "id", "domain", "url", "createdAt" }] }.
Dernier rapport d'audit d'un site
curl -H "Authorization: Bearer rmf_..." \
https://your-rankme-host/api/v1/sites/<siteId>/report/latest
Renvoie l'audit réussi le plus récent sous la forme { "runId", "report" }, les mêmes constats, catégories et textes localisés que le tableau de bord. Répond 404 si le site n'a pas encore d'audit terminé.
Historique des positions d'un site
curl -H "Authorization: Bearer rmf_..." \
"https://your-rankme-host/api/v1/sites/<siteId>/rank-history?from=2026-06-01&to=2026-07-01"
Renvoie { "keywords": [{ "id", "phrase", "series": [...] }] }. Chaque point porte la position, l'URL classée et les signaux Google AI Overview (aiOverviewPresent, aiCited, aiCitedUrl). from et to sont des dates ISO facultatives.
Tous les mots-clés suivis
curl -H "Authorization: Bearer rmf_..." \
https://your-rankme-host/api/v1/keywords
Renvoie chaque mot-clé suivi sur l'ensemble de vos sites avec sa dernière position, son delta et les champs AI Overview.
Exports CSV et lignes stockées
Avec PUBLIC_EXPORTS_ENABLED, demandez un CSV sur chaque route de liste avec ?format=csv ou Accept: text/csv. Les fichiers ont des colonnes stables, un BOM UTF-8, l'échappement RFC-4180 et une neutralisation des formules. Le JSON des quatre routes d'origine ne change pas. L'historique accepte engine=google|bing|youtube|amazon ; sans filtre, la colonne engine contient tous les moteurs.
Les CSV d'historique et de mots-clés conservent leur sortie historique non paginée, sauf si vous ajoutez limit ou un cursor opaque. Une page d'historique accepte de 1 à 25 groupes de mots-clés (730 points au plus par groupe), contre 1 à 1 000 lignes pour les mots-clés. Transmettez la valeur de X-Next-Cursor à la requête suivante et arrêtez-vous lorsque cet en-tête disparaît. Le JSON ignore ces paramètres de pagination CSV et conserve son contrat d'origine.
Deux lectures stockées s'ajoutent : GET /api/v1/serp-features?siteId=<siteId> et GET /api/v1/backlink-rows?siteId=<siteId>. Elles acceptent limit de 1 à 1 000 et un cursor opaque, restent limitées au compte et portent sourceKind=provider_observation (source_kind en CSV). Si le drapeau est désactivé, les nouvelles routes et le CSV répondent 503, mais le JSON d'origine reste disponible. Suivez le guide Looker Studio pour le connecteur et les champs.
Compatibilité
Cette version expose exactement six routes en lecture seule :
GET /api/v1/sitesGET /api/v1/sites/:siteId/report/latestGET /api/v1/sites/:siteId/rank-historyGET /api/v1/keywordsGET /api/v1/serp-featuresGET /api/v1/backlink-rows
Le Radar de marque, l’Intelligence des avis, l’Intelligence des liens, l’Analyse du trafic, les Tendances de mots-clés et le Capteur SERP n’ajoutent aucune route sous /api/v1. Les cinq fonctions payantes restent dans le tableau de bord authentifié ; le capteur public reste sous /api/volatility. Les champs existants conservent leur sens et les clients doivent ignorer les champs additifs qu’ils ne reconnaissent pas.
Limites de débit
Par défaut, chaque clé peut effectuer 120 requêtes par minute. Au-delà, l'API répond 429 jusqu'à la réinitialisation de la fenêtre.
Erreurs
Les erreurs utilisent la forme { "error": { "message": "...", "details": ... } }. Leur message humain sûr suit x-lang, puis Accept-Language, puis en ; le statut, les champs, les codes stables et les détails sûrs restent compatibles avec les clients :
401, la clé est absente, malformée, révoquée ou inconnue.402, votre plan n'inclut pas l'API.404, le site ou le rapport n'existe pas sur votre compte.429, limite de débit dépassée (corps :{ "error": "..." }).