Fonctionnalités
API REST et serveur MCP
Chaque clé appartient à un espace de travail et ne lit que ses données. L'API et le serveur MCP fonctionnent uniquement pour une organisation dont l'offre les inclut ; l'offre est vérifiée à chaque requête.
Offres et limites
L'API et le serveur MCP sont inclus à partir de l'offre Growth. Les limites s'appliquent par clé ; le quota journalier se réinitialise à 00:00 UTC. Les prix sont sur la page Tarifs.
| Offre | Clés actives | Requêtes / jour | Requêtes / minute |
|---|---|---|---|
| Free | Non inclus | — | — |
| SEO | Non inclus | — | — |
| SEO + AI | Non inclus | — | — |
| Growth | 2 | 1 000 | 60 |
| Pro | 5 | 5 000 | 120 |
| Agency | 20 | 25 000 | 300 |
| Enterprise | 50 | 100 000 | 600 |
- Changement d'offre : une offre qui n'inclut plus l'API (passage à SEO ou Free, résiliation, fin de période) arrête toutes les clés en moins d'une minute, avec
402 PLAN_REQUIRED. Les clés ne sont pas supprimées : elles refonctionnent si l'offre inclut de nouveau l'API. - Passer à une offre avec moins de clés ne coupe pas les clés existantes, mais aucune nouvelle clé ne peut être créée tant que le nombre de clés actives dépasse l'offre.
- La visibilité IA suit la même règle que le tableau de bord : elle n'est servie que si l'offre inclut la part de voix IA.
Créer et révoquer une clé
- Ouvrez Sources et rapports › Intégrations, rapports, MCP et API › Connecteur MCP et API dans votre espace de travail.
- Donnez un nom à la clé (l'outil qui l'utilisera) et, si vous le souhaitez, une expiration (30, 90, 180 jours ou 1 an).
- Copiez la clé affichée : elle n'est montrée qu'une seule fois. NeoRank n'en conserve qu'une empreinte (HMAC-SHA-256) et ne peut pas la réafficher.
- Seuls les administrateurs de l'organisation (propriétaire, administrateur) et de l'espace de travail peuvent créer ou révoquer une clé ; les autres membres voient la liste (nom, préfixe, auteur, dernière utilisation, état) en lecture seule.
- Une clé révoquée cesse de fonctionner immédiatement. Une clé cesse aussi de fonctionner si son auteur quitte l'espace de travail.
- Chaque création et chaque révocation sont inscrites au journal d'audit.
Authentification
Chaque requête envoie la clé dans l'en-tête Authorization: Bearer nrk_live_…. Les cookies de session ne sont jamais lus sur l'API : une clé est le seul moyen d'y accéder. Aucune origine tierce n'est autorisée par CORS ; appelez l'API depuis un serveur ou un outil, pas depuis un navigateur.
curl -H "Authorization: Bearer nrk_live_…" https://neorank.ai/api/v1/sitesPoints d'accès (lecture seule)
| Requête | Réponse |
|---|---|
GET /api/v1/sites | Les sites de l'espace de travail de la clé (id, nom, domaine). |
GET /api/v1/sites/{siteId}/overview?days=28 | Totaux Search Console sur la période (7, 28, 90, 180 ou 365 jours), visibilité IA, score d'autorité NeoRank et résumé du dernier audit. |
GET /api/v1/sites/{siteId}/ai-visibility | Part de voix de la marque, mentions et réponses par moteur d'IA sur les dernières campagnes d'observation. |
GET /api/v1/sites/{siteId}/rankings?page=1&pageSize=100 | Mots-clés suivis : dernière et précédente position, source (relevé de classement ou moyenne Search Console), volume, difficulté. |
GET /api/v1/sites/{siteId}/audit-issues?page=1&pageSize=50&severity=ERROR | Les problèmes du dernier crawl terminé, paginés (100 par page au plus). |
GET /api/v1/sites/{siteId}/backlinks | Score d'autorité NeoRank, totaux historiques et liens observés les plus récents (un échantillon annoncé). |
Format des réponses
Toute réponse est un objet data accompagné de meta (espace de travail, date de génération, source des chiffres, pagination). Une erreur est un objet error avec un code stable et un message. `null` signifie « non mesuré », jamais zéro ; un champ state indique pourquoi un bloc est vide (not-connected, not-measured, plan-required…).
{
"data": [{ "id": "…", "name": "Example", "domain": "example.com", "createdAt": "…" }],
"meta": { "workspaceId": "…", "generatedAt": "…", "source": "NeoRank workspace", "returned": 1 }
}
{ "error": { "code": "PLAN_REQUIRED", "message": "…" } }Limites de débit
- X-RateLimit-Limit / Remaining / Reset
- La fenêtre d'une minute de la clé (Reset en secondes).
- X-RateLimit-Daily-Limit / Daily-Remaining / Daily-Reset
- Le quota du jour UTC de la clé (Reset en secondes jusqu'à minuit UTC).
- Retry-After
- Sur une réponse 429 : le nombre de secondes à attendre.
Erreurs
| Statut | Codes |
|---|---|
| 401 | AUTH_REQUIRED, INVALID_API_KEY, API_KEY_REVOKED, API_KEY_EXPIRED, API_KEY_INACTIVE |
| 402 | PLAN_REQUIRED — l'offre de l'organisation n'inclut pas l'API (ou la dimension demandée) |
| 400 | INVALID_PARAMETER |
| 404 | SITE_NOT_FOUND — aussi pour un site d'un autre espace de travail |
| 429 | RATE_LIMITED (par minute) ou DAILY_QUOTA_EXCEEDED, avec Retry-After |
| 503 | ENTITLEMENT_CHECK_UNAVAILABLE, RATE_LIMIT_UNAVAILABLE, API_UNAVAILABLE — réessayez |
Serveur MCP
Le serveur MCP distant répond à https://neorank.ai/api/mcp (Streamable HTTP, sans état, réponses JSON) avec la même clé, les mêmes limites et la même vérification d'offre. Outils en lecture seule : list_sites, get_site_overview, get_ai_visibility, get_rankings, get_audit_issues, get_backlinks_summary. L'adresse exacte de votre instance et des configurations prêtes à copier figurent dans l'onglet Connecteur MCP et API.
Claude Code (terminal) :
claude mcp add --transport http neorank https://neorank.ai/api/mcp --header "Authorization: Bearer nrk_live_…"Cursor et les clients MCP qui acceptent une adresse distante et des en-têtes (configuration JSON des serveurs MCP du client) :
{
"mcpServers": {
"neorank": {
"url": "https://neorank.ai/api/mcp",
"headers": { "Authorization": "Bearer nrk_live_…" }
}
}
}Claude Desktop : par le pont mcp-remote (Node.js requis), qui relaie les requêtes vers le serveur distant avec l'en-tête :
{
"mcpServers": {
"neorank": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://neorank.ai/api/mcp", "--header", "Authorization:${NEORANK_AUTH}"],
"env": { "NEORANK_AUTH": "Bearer nrk_live_…" }
}
}
}Sécurité
- Clés : préfixe public indexé, secret de 256 bits, empreinte HMAC-SHA-256 avec un secret serveur, comparaison à temps constant.
- Isolation : chaque requête est limitée à l'espace de travail de la clé ; un identifiant de site d'un autre espace répond
404. - Journal : méthode, route, statut, clé et durée de chaque requête ; jamais le corps ni la clé.
- Serveur MCP : corps limité à 64 Kio, origine de navigateur tierce refusée, aucun appel réseau vers l'extérieur.