Ce qui se connecte aujourd'hui — et ce qui arrive ensuite
API REST, scripts et n8n
Clé Bearer personnelle, endpoints JSON et webhooks signés.
Claude Code, Cursor et clients MCP avec en-têtes
Connexion directe au serveur MCP distant avec la clé Nautilinks.
Répertoires publics ChatGPT et Claude
La clé API actuelle ne suffit pas à une connexion publique native. Le connecteur sera soumis après ajout d’OAuth.
Nous ne présentons pas une future présence dans les répertoires ChatGPT ou Claude comme déjà disponible. Le serveur et les outils existent ; la distribution native demande encore une authentification OAuth compatible avec ces plateformes.
Nautilinks vend des backlinks directement, sans marketplace ni commission, sur un réseau de sites que nous éditons nous-mêmes. Cette page décrit l'accès machine à ce même catalogue : une API REST et un serveur MCP, pensés pour qu'un agent LLM puisse chercher un site pertinent, poser une commande et suivre son avancement, sans qu'un humain remplisse de formulaire.
Le principe reste le même que sur le reste du site : le catalogue interrogé par API est public dans sa logique, les prix sont ceux affichés côté humain, et aucune carte n'est jamais débitée sans qu'un humain valide le paiement, que ce soit en amont en approvisionnant le solde prépayé du compte, ou au moment en ouvrant un lien Stripe. L'agent commande, l'humain paie, d'une façon ou de l'autre.
Trois étapes pour connecter un agent
- Créez un compte Nautilinks. Inscription gratuite, aucune carte bancaire demandée à cette étape. C'est ce compte qui reçoit les factures et qui paie, in fine, via Stripe.
- Générez une clé API. Dans l'espace membre, section « Mon compte » puis « Clés API ». La clé (format sn_live_...) s'affiche une seule fois, à copier immédiatement. Jusqu'à 5 clés actives par compte, révocables à tout moment.
- Connectez le MCP ou appelez l'API. Deux chemins équivalents : un client MCP (Claude Code, claude.ai, Cursor…) qui parle au serveur mcp.nautilinks.co, ou des appels HTTP directs sur /api/v1/agent/*. Le contrat JSON est identique des deux côtés.
Référence API pour agents
Authentification
Chaque appel porte l'en-tête Authorization: Bearer sn_live_.... La clé est propre à un compte humain : toute commande créée par API est rattachée à ce compte, facturée sur son adresse, et visible dans son espace membre au même titre qu'une commande passée depuis le panier web. Une clé fraîchement créée porte les deux scopes (read et order) par défaut.
Idempotence des commandes
L'en-tête optionnel Idempotency-Key évite les doublons en cas de rejeu réseau. La clé est liée au corps financier : un rejeu identique renvoie le même devis et la même session Stripe, tandis qu'un corps différent avec la même clé répond idempotency_key_reused.
Plafond quotidien
Un plafond anti-abus s'applique par clé API, de l'ordre d'une vingtaine de commandes par jour. Une fois atteint, l'API répond en 429 avec le code daily_order_cap_reached. Un rejeu identique (même Idempotency-Key) ne compte jamais deux fois.
Remises, crédit puis reliquat Stripe
Le corps accepte promo_code. L'API recalcule le brut, compare ce code à l'offre de bienvenue automatique, applique la meilleure remise, puis le crédit prépayé. Si le crédit couvre le net, la commande est conclue sans Stripe. S'il est partiel, il est placé en hold et payment_url ne facture que le reliquat ; un abandon restitue le hold. La réponse détaille gross_total_eur, discount_eur, credit_applied_cents et card_amount_cents. Aucune carte n'est débitée sans validation humaine.
Webhooks
Un abonnement webhook (POST /api/v1/agent/webhooks, scope order, jusqu'à 5 actifs par compte) reçoit order.accepted, order.published et order.cancelled sur une URL HTTPS publique choisie par l'agent. Chaque livraison est signée : l'en-tête Nautilinks-Signature porte un HMAC-SHA256 calculé sur l'horodatage et le corps brut, avec une clé dérivée du secret renvoyé à la création (jamais le secret en clair). GET /api/v1/agent/webhooks liste les abonnements actifs, DELETE /api/v1/agent/webhooks/:id en révoque un.
Questions fréquentes
Un agent IA peut-il payer seul, sans intervention humaine ?
Si le crédit prépayé couvre le net après remise, la commande est réglée directement. S'il est partiel, il est retenu et un lien Stripe ne facture que le reliquat à l'humain. Sans crédit, Stripe facture le net complet. Aucune carte n'est jamais débitée automatiquement.
Quels liens sont achetables par API aujourd'hui ?
Les trois rayons du catalogue : Plancton à 5 €, Corail à 15 € et Nautilus à 30 €. Une commande de 1 à 20 liens peut mélanger de nouveaux articles dédiés et des insertions dans des articles existants, avec des packs tier-2 optionnels de 1, 3 ou 5 liens et un rattachement à un projet de visibilité IA.
Que se passe-t-il après le paiement ?
Une fois le devis payé (crédit ou webhook Stripe, selon le chemin emprunté), la commande existe exactement comme un achat passé depuis le panier web. Les liens Plancton sont ensuite auto-assignés (sauf si le kill-switch interne repasse en mode manuel) ; les liens Corail et Nautilus passent par une assignation manuelle côté équipe. Tous suivent ensuite le circuit habituel jusqu'à publication.
Y a-t-il une limite de commandes par jour ?
Oui, un plafond anti-abus par clé API (une vingtaine de commandes par jour par défaut). Au-delà, l'API répond 429 avec le code daily_order_cap_reached. Un rejeu avec la même Idempotency-Key ne consomme jamais deux fois ce quota.
Le serveur MCP nécessite-t-il une installation locale ?
Non, c'est un serveur distant (Cloudflare Worker) en HTTP streamable, sans package npm à installer. Il ne fait que relayer votre clé API vers l'API Nautilinks, sans rien stocker de son côté.
Puis-je tester sans engagement ?
Le scope read (lecture du catalogue, des commandes, des devis, du solde) est inclus par défaut dans chaque clé, au même titre que le scope order. Vous pouvez aussi générer une clé sandbox (préfixe sn_test_) : elle simule une commande sans jamais débiter le portefeuille ni créer de commande réelle chez un éditeur, la réponse portant alors sandbox: true.
Comment suivre l'avancement d'une commande sans repoller l'API ?
En créant un abonnement webhook (POST /api/v1/agent/webhooks) sur une URL HTTPS publique, pour un ou plusieurs événements parmi order.accepted, order.published et order.cancelled. Chaque livraison est signée en HMAC-SHA256 dans l'en-tête Nautilinks-Signature, à vérifier avant de faire confiance au contenu.