API, MCP et webhooks

API et MCP : branchez Netlinko sur vos outils et vos agents

Pour les agences, les éditeurs de sites, les éditeurs de logiciels et les équipes qui utilisent des assistants et agents automatisés : le catalogue, les commandes et leur paiement, la gestion de vos sites et de vos ventes, et des webhooks signés quand un lien est publié ou qu’une vente arrive.

  • Clés à portées par domaine
  • Serveur MCP pour vos agents
  • Mêmes règles que l’espace membre
Exemple de routes de l’API des acheteurs et d’un webhook signé envoyé quand un lien est publié.
Illustration de l’API et des webhooks (exemple).

Le principe

Une API pour automatiser vos achats et vos ventes de liens

L’API des membres de Netlinko (netlinko/api/v1) donne accès, depuis vos propres outils, à ce que vous faites dans l’espace membre. Côté acheteur : consulter le catalogue ouvert à votre niveau, passer et payer des commandes, suivre leur état, la page publiée, le contrôle du lien et son indexation. Côté vendeur : soumettre vos sites, régler leurs prix et leurs prestations, accepter ou refuser les commandes reçues, publier, suivre votre solde.

  • Authentification par clé : en-tête Authorization: Bearer suivi de votre clé, ou en-tête X-Netlinko-Key. Jamais par les cookies d’une session.
  • Des portées par domaine, cochées à la création de la clé : catalogue, commandes, sites vendeurs, ventes, solde, webhooks. Les actions d’argent (payer avec le porte-monnaie, demander un versement) exigent leur portée cochée.
  • Des clés protégées : affichées une seule fois à leur création, conservées sous forme d’empreinte, révocables à tout moment, avec un journal de leurs appels.
  • Des limites claires : un nombre de requêtes par minute et par clé (120 par défaut) ; une commande envoyée deux fois avec la même clé d’idempotence n’en crée qu’une.
  • Les mêmes règles que l’espace membre : prix, accès, délais et contrôles sont décidés par la plateforme.

La documentation détaillée, avec les paramètres de chaque route, est dans votre espace, rubrique « API et webhooks ».

Les portées

Une clé ne fait que ce que vous lui permettez

Cochez seulement ce dont votre outil a besoin. Une clé liée à une personne de votre équipe est aussi limitée par son rôle.

PortéeCe qu’elle permetCôté
catalog:readLire le catalogue de votre niveau et les mots clés positionnésAcheteur
orders:read / orders:writeLire vos commandes ; commander, écrire à l’éditeur, signaler un problème, annulerAcheteur
wallet:read / wallet:payLire le porte-monnaie ; payer avec son solde (action d’argent)Acheteur
seller:readLire vos sites, leur état, vos ventes et leurs échéancesVendeur
seller:sites / seller:ordersSoumettre et régler vos sites ; accepter, refuser, publier vos ventesVendeur
payouts:read / payouts:requestLire votre solde ; demander un versement (action d’argent)Vendeur
webhooks:read / webhooks:writeLire et gérer vos webhooksTous

Les routes

Ce que permet l’API

Un aperçu des routes principales ; le détail des paramètres est dans votre espace.

Méthode et routeDroitUsage
GET /meToute cléVotre compte : niveau, accès au catalogue, liens offerts, portées de la clé
GET /catalogcatalog:readLes sites ouverts à votre niveau, avec filtres (langue, prestation, prix, TF, DR, trafic)
POST /ordersorders:writePasser une commande : site, prestation, page visée, ancre, consignes ; réponse avec le lien de paiement
POST /orders/payorders:write ou wallet:payPayer plusieurs commandes en une fois : lien de paiement par carte, ou porte-monnaie
GET /ordersorders:readVos commandes et leur état
GET /orders/{id}orders:readUne commande : paiement, page publiée, contrôle du lien, indexation, rapport
POST /orders/{id}/disputeorders:writeSignaler un problème sur une commande
POST /webhookswebhooks:writeCréer un webhook ; le secret de signature est affiché une fois

Vendeurs

Gérez vos sites et vos ventes sans ouvrir l’espace

Les mêmes contrôles que l’espace vendeur : vos sites et vos ventes uniquement, les délais d’acceptation et de publication, la preuve de propriété demandée par la plateforme.

Méthode et routePortéeUsage
GET /seller/sitesseller:readVos sites et leur état : actif, en attente, propriété à vérifier, vacances, non éligible
POST /seller/sitesseller:sitesSoumettre un site : adresse, nom, langue, thématiques ; la réponse donne la preuve de propriété à mettre en place (extension, fichier ou DNS)
POST /seller/sites/{id}/verifyseller:sitesLancer la vérification du fichier ou de l’entrée DNS
POST /seller/sites/{id}seller:sitesRégler prix, prestations, formules, ancres acceptées, données montrées, promotion. Jamais de chiffres : trafic et métriques sont mesurés par la plateforme
POST /seller/vacationseller:sitesMode vacances : tous vos sites retirés du catalogue, puis de retour
GET /seller/ordersseller:readLes commandes reçues et leurs échéances (accepter avant, publier avant)
POST /seller/orders/{id}/acceptseller:ordersAccepter une commande ; refuser avec /refuse et un motif vu par l’acheteur
GET /seller/orders/{id}/contentseller:readLe contenu à publier, avec le lien à garder tel quel
POST /seller/orders/{id}/publishseller:ordersDéclarer la page publiée : elle est lue avant la mise en ligne
GET /seller/balancepayouts:readVotre solde : sous garantie, disponible, en cours de virement
POST /seller/payoutspayouts:requestDemander un versement : traité à partir du 1er du mois suivant la demande

MCP

Un serveur MCP pour vos assistants et agents automatisés

Le Model Context Protocol (MCP) est le protocole ouvert qui permet à un assistant ou à un agent automatisé d’utiliser des outils. Netlinko a son propre serveur MCP : branchez-le dans votre client MCP, il y trouve les actions de votre compte sous forme d’outils, chacun décrit avec ses paramètres.

  • Une seule adresse : https://netlinko.com/wp-json/netlinko/v1/mcp, transport HTTP « streamable » (un message JSON-RPC 2.0 par requête POST, une réponse JSON, sans session).
  • La même clé que l’API, avec ses portées : votre agent ne voit que les outils que la clé permet, et le journal des appels garde chaque outil utilisé.
  • Votre accord avant l’argent : les outils qui paient, annulent, refusent une commande ou demandent un versement sont marqués comme destructifs et demandent une confirmation explicite.
  • Les mêmes règles : chaque outil passe par l’API, avec ses contrôles (vos objets seulement, délais, quarantaine, gels).
  • Les clients récents et ceux d’avant : version dans chaque requête (server/discover) ou ouverture par initialize.

L’espace membre, rubrique « API et webhooks », donne la configuration à copier dans votre client MCP. Les outils, les portées et la confirmation des actions sensibles sont détaillés sur la page MCP : Netlinko pour les assistants et agents automatisés.

Exemples

Vos premiers appels avec curl

Remplacez nlk_… par une clé créée dans votre espace, et les identifiants par ceux que renvoie l’API.

Chercher dans le catalogue

Portée catalog:read.

curl "https://netlinko.com/wp-json/netlinko/api/v1/catalog?language=fr&service=article&price_max=150" \
  -H "Authorization: Bearer nlk_…"

Passer une commande

Portée orders:write ; la réponse contient le lien de paiement.

curl -X POST https://netlinko.com/wp-json/netlinko/api/v1/orders \
  -H "Authorization: Bearer nlk_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: commande-001" \
  -d '{"site":"<id du catalogue>","service":"article","target_url":"https://mon-site.fr/page/","anchor":"mon ancre","accept_terms":true}'

Accepter une commande reçue

Portée seller:orders ; refusez avec /refuse et {"reason": "…"}.

curl -X POST https://netlinko.com/wp-json/netlinko/api/v1/seller/orders/<id>/accept \
  -H "Authorization: Bearer nlk_…"

Lister les outils du serveur MCP

La même clé ; les outils listés dépendent de ses portées.

curl -X POST https://netlinko.com/wp-json/netlinko/v1/mcp \
  -H "Authorization: Bearer nlk_…" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "MCP-Protocol-Version: 2026-07-28" \
  -H "Mcp-Method: tools/list" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{"_meta":{"io.modelcontextprotocol/protocolVersion":"2026-07-28"}}}'

Les événements

Les webhooks : vos outils prévenus en temps réel

Choisissez les événements à recevoir pour chaque adresse. Côté acheteur, ceux de vos commandes :

ÉvénementQuand il est envoyéExemple d’usage
order.paidLa commande est payéeMettre à jour le budget consommé du client
order.acceptedL’éditeur accepte la commandePrévenir le chef de projet
order.publishedLe lien est en ligneAjouter le lien au rapport du client
order.problemUn problème est détecté sur le lienCréer une tâche de suivi
order.cancelledLa commande est annuléeMettre à jour la facturation interne

Événements vendeur

Vos ventes, vos sites et vos versements suivis par vos outils

Les mêmes écrans et les mêmes routes que les acheteurs : chaque webhook reçoit les événements que vous cochez. Le message ne contient que des identifiants et des états (jamais l’adresse d’une de vos pages ni l’identité de l’acheteur), les montants en nombre et en texte à deux décimales ; un compte en quarantaine ne reçoit que les événements de sa quarantaine et de son solde.

ÉvénementQuand il est envoyéExemple d’usage
sale.receivedUne nouvelle commande est à accepterPrévenir la rédaction du site
sale.accept_due_soon / sale.accept_overdueL’échéance d’acceptation est demain, puis dépassée (commande annulée)Relancer la personne qui valide les commandes
sale.content_readyLe contenu est prêt à publier, ou envoyé à l’extension du sitePlanifier la publication
sale.publish_due_soon / sale.publish_overdueL’échéance de publication est demain, puis dépassée (commande annulée)Alerter le responsable du site
sale.messageL’acheteur ou l’équipe écrit sur une venteOuvrir un ticket dans votre outil
sale.cancelledLa vente est annulée : par l’acheteur, l’équipe ou un délaiRetirer la tâche de publication
sale.dispute_opened / sale.dispute_decidedUn litige ou un signalement est ouvert, puis décidéSuivre la réponse à apporter
sale.link_problemLe lien est absent, en nofollow ou sa page en noindex pendant la garantieRétablir le lien sans attendre
sale.acquiredLa garantie est terminée : votre part est disponibleMettre à jour votre comptabilité
payout.scheduled / payout.sent / payout.refusedUn versement est programmé, puis envoyé ou refuséRapprocher les virements reçus
site.approved / site.refused / site.paused / site.ineligibleUn site est validé, refusé, mis en pause ou non éligibleTenir à jour la liste de vos sites
account.quarantined / account.reactivatedLe compte est mis en quarantaine, puis réactivéPrévenir votre équipe

Exemple de message

Une nouvelle vente reçue par votre webhook

Un POST JSON signé (en-tête Netlinko-Signature). L’identifiant id est unique pour chaque événement : il reste le même à chaque nouvel essai, dédoublonnez sur lui.

sale.received

Votre part hors taxes, la date limite d’acceptation, les identifiants de la vente et du site.

{
  "id": "evt_5f0c2a9e41b7d3c8a6e1f2b4d9c7e0a1",
  "type": "sale.received",
  "created": 1793606400,
  "created_at": "2026-11-02T08:00:00+00:00",
  "data": {
    "sale": {
      "id": "k3f9q2m7x1c8d",
      "reference": "K3F9-Q2M7-X1C8D",
      "site": "p7d2w9n4b6t1s",
      "service": "article",
      "status": "accepted",
      "seller_state": "to_send",
      "amount": 85.5,
      "amount_text": "85.50",
      "currency": "EUR",
      "accept_by": "2026-11-05T08:00:00+00:00",
      "accepted_at": null,
      "publish_by": null,
      "publish_on": null,
      "published": false
    },
    "offered": false
  }
}

Sécurité des webhooks

Des messages signés, livrés avec persévérance

  • Signés : chaque message porte l’en-tête Netlinko-Signature, avec l’heure et une signature HMAC-SHA256 calculée avec votre secret. Refusez les messages de plus de 5 minutes : pas de rejeu possible.
  • Relivrés : en cas d’échec, nouvel essai après 1 min, 5 min, 30 min, 2 h puis 12 h ; un webhook en échec 20 fois de suite est mis en pause et vous êtes prévenu.
  • Protégés : adresses HTTPS sur l’internet public uniquement, jamais de redirection, adresse vérifiée à chaque envoi.
  • Testables : envoyez un message de test depuis l’API ou votre espace.

Cas d’usage

Ce que les équipes en font

Quelques usages possibles, à adapter à vos outils.

Tableaux de bord clients

Afficher les liens publiés, leur état et leur indexation dans le reporting de chaque client.

Gestion de projet

Créer une tâche quand un lien est publié ou qu’un problème est détecté.

Filtrer le catalogue de votre niveau par prix, TF, DR ou trafic depuis votre propre interface.

Commandes en volume

Passer et payer plusieurs commandes en une fois depuis votre outil interne.

Démarrer

Vos premiers appels en cinq étapes

  1. Créez une clé dans la rubrique « API et webhooks » de votre espace, en lecture pour commencer. Copiez-la : elle ne sera plus jamais affichée.
  2. Testez votre accès avec la route /me : elle renvoie votre niveau, votre accès au catalogue, vos liens offerts et les portées de la clé.
  3. Interrogez le catalogue de votre niveau avec /catalog et ses filtres : langue, prestation, prix maximal, Trust Flow, Domain Rating ou trafic minimal.
  4. Passez une commande avec une clé qui a la portée orders:write : site, prestation, page visée, ancre et consignes, avec une clé d’idempotence ; la réponse contient le lien de paiement sécurisé.
  5. Créez un webhook pour être prévenu quand la commande est payée, acceptée, publiée, en difficulté ou annulée.

Les erreurs sont explicites et les limites annoncées : au-delà de la limite de requêtes par minute, l’API répond 429 ; une portée manquante est nommée dans la réponse 403.

Bonnes pratiques

Utiliser l’API en toute sécurité

  • Une clé par outil ou par agent, avec les seules portées nécessaires : la lecture pour un tableau de bord, l’écriture seulement pour l’outil qui commande, les actions d’argent seulement si vous les confiez vraiment.
  • Gardez vos clés côté serveur, jamais dans une page web ou une application installée chez un client.
  • Vérifiez chaque webhook : signature, horodatage de moins de 5 minutes, puis traitement.
  • Répondez rapidement (code 2xx) puis traitez le message : en cas d’échec, il vous est renvoyé plus tard.
  • Révoquez sans attendre une clé dont vous n’êtes plus sûr, et consultez le journal de ses appels.

Exemple

Exemple : un reporting client automatique

Une agence gère le netlinking d’une vingtaine de clients. Elle range chaque commande dans le projet du client, puis crée un webhook sur les événements « commande payée », « lien publié » et « problème ». À chaque lien publié, son outil interne reçoit le message signé, vérifie la signature, interroge la commande pour récupérer la page publiée, l’ancre et l’état d’indexation, et ajoute une ligne au rapport mensuel du client. Quand un problème est détecté, une tâche est créée pour le chef de projet.

Résultat : plus de copier-coller entre l’espace membre et les rapports, et des clients informés sans délai. Le tout avec une clé en lecture pour le reporting, et une clé qui a la portée des commandes, réservée à l’outil qui les passe.

Le scénario type

Une commande passée de bout en bout par l’API

La plupart des intégrations suivent le même scénario. Une clé est créée dans votre espace, en lecture ou en écriture. Vos outils interrogent le catalogue ouvert à votre niveau, avec les prix, les formules des liens loués et les types d’ancres acceptés par chaque site.

La commande précise le site, la prestation, la page visée, l’ancre et les consignes. Elle se paie par le lien de paiement renvoyé, en une fois pour plusieurs commandes, et le porte-monnaie se consulte par l’API.

Les webhooks ferment la boucle : un appel signé prévient vos outils quand la commande est payée, acceptée, publiée, en difficulté ou annulée. Les règles restent celles de l’espace membre : mêmes contrôles, même garantie. Le détail des contrôles transmis par les webhooks est expliqué sur la page indexation et suivi des liens. Les agences trouveront le reste de leurs outils sur la page agences SEO, et les indépendants sur celle des consultants SEO.

Une commande passée par l’API
  1. CléCréée dans votre espace, en lecture ou en écriture.
  2. CatalogueLes sites ouverts à votre niveau, leurs prix et les ancres acceptées.
  3. CommandeSite, prestation, page visée, ancre, consignes.
  4. PaiementPar le lien de paiement renvoyé, en une fois pour plusieurs commandes.
  5. WebhooksUn appel signé quand la commande est payée, acceptée, publiée, en difficulté ou annulée.

FAQ

Questions sur l’API

Une autre question ? Écrivez-nous, nous répondons rapidement.

Qui peut utiliser l’API ?

Tout membre acheteur ou vendeur dont le compte est validé : créez une clé depuis la rubrique « API et webhooks » de votre espace, avec les portées dont votre outil a besoin.

Puis-je confier mon compte à un assistant ou à un agent automatisé ?

Oui, par le serveur MCP ou par l’API, avec une clé limitée aux portées utiles. Les actions qui engagent de l’argent ou refusent une commande demandent une confirmation explicite, et le journal des appels garde chaque action.

L’API donne-t-elle accès à plus de sites que l’espace ?

Non : le catalogue de l’API est celui de votre niveau, aux mêmes prix. Les règles sont celles de l’espace membre.

Comment vérifier un webhook ?

Recalculez la signature HMAC-SHA256 du message avec votre secret et comparez-la à l’en-tête Netlinko-Signature ; refusez les messages de plus de 5 minutes.

Que faire si ma clé est compromise ?

Révoquez-la depuis votre espace : la révocation est immédiate. Créez-en une nouvelle et mettez à jour vos outils.

L’API permet-elle de payer sans passer par une page ?

Par carte, non : la commande renvoie un lien vers la page de paiement sécurisée de Stripe. Avec le porte-monnaie, oui, mais seulement avec une clé qui en a la portée cochée (wallet:pay). Plusieurs commandes peuvent être payées en une fois.

Puis-je utiliser l’API pour plusieurs clients ?

Oui : passez les commandes depuis votre compte et rangez-les par projet client. Vos outils récupèrent ensuite les commandes et leur état, client par client.

Les webhooks sont-ils envoyés dans l’ordre ?

Ils sont envoyés depuis une file d’attente, avec de nouveaux essais en cas d’échec : traitez chaque message selon son type et son horodatage, et interrogez la commande pour connaître son état à jour.

Faut-il un niveau particulier pour utiliser l’API ?

Non : tout membre dont le compte est validé peut créer une clé. Le catalogue renvoyé est celui de votre niveau, comme dans l’espace membre.

L’API permet-elle d’utiliser mes liens offerts ?

La route /me indique vos liens offerts disponibles ; leur placement se demande depuis votre espace, où vous choisissez vos sites (ou laissez l’équipe les choisir).

Automatisez le netlinking de vos clients

Créez votre compte, puis votre première clé d’API depuis votre espace.

Paiement à la commande · Lien contrôlé régulièrement pendant la garantie · Factures en PDF