Retour Ă  l'application

API Monitolink

Intégrez le monitoring de backlinks directement dans vos outils et pipelines SEO.

Authentification

Chaque compte dispose d'une clé API unique, visible dans Mon compte → Clé API.

Ajoutez-la dans le header de chaque requĂŞte :

Authorization: Bearer ml_votre_cle_api
Base URL : https://app.monito.link/api/v1/

Rate limits

1 000 requêtes par jour par clé API. Au-delà, vous recevrez une réponse 429.

Codes erreur

CodeSignification
400Paramètres invalides / erreur de validation
401Clé API manquante, invalide ou désactivée
402Crédits insuffisants
404Ressource introuvable
409Conflit — tous les backlinks sont déjà monitorés
429Rate limit atteint
500Erreur serveur

GET /credits/

Retourne le solde de crédits du compte.

// Réponse
{
  "credits_balance": 150.0,
  "user_email": "user@example.com"
}

GET /batches/

Liste des batches avec pagination.

Paramètres query

ParamTypeDescription
activestringtrue ou false — filtrer par statut
pageintNuméro de page (défaut : 1)
per_pageintRésultats par page (défaut : 20, max : 100)

POST /batches/

Créer un batch de backlinks à monitorer. Les crédits sont débités immédiatement.

Body JSON

{
  "backlinks": [
    {
      "url_publication": "https://blog.com/article",
      "ancre": "mon ancre",
      "url_destination": "https://monsite.com/page"
    }
  ],
  "monitoring_months": 3,
  "notify_vendor": false,
  "vendor_platform": "",
  "vendor_email": ""
}

Paramètres

ChampRequisDescription
backlinksOuiListe d'objets (max 10 000)
monitoring_monthsNon / No0 (one-shot), 1, 3, 6, 12 — défaut : 1
notify_vendorNon / NoNotifier le vendeur en cas d'anomalie
vendor_platformNon / NoPlateforme — valeurs possibles :
editeur_independant, accesslink, ereferer, getfluence, jungleup, lemmilink, linkavista, linksgarden, linkuma, myback_link, netlinking_fr, netlinking_com, nextlevel, paper_club, rocketlinks, semjuice, seopepper, soumettre_fr, whitepress
vendor_emailNon / NoEmail du vendeur (requis si editeur_independant)

Réponse 201

{
  "batch": { "id": "uuid...", ... },
  "backlinks_created": 45,
  "duplicates_skipped": 2,
  "credits_charged": 270,
  "credits_remaining": 730.0
}
Les doublons (backlinks déjà en monitoring actif) sont automatiquement ignorés.

GET /batches/{uuid}/

Détails d'un batch avec statistiques (ok, warning, error, pending) et stats d'indexation.

DELETE /batches/{uuid}/

Stoppe le monitoring d'un batch. Les crédits déjà débités ne sont pas remboursés.

Liste des backlinks d'un batch avec filtres et pagination.

Filtres

ParamValeurs
statuspending, ok, warning, error
link_foundtrue / false
is_dofollowtrue / false
article_removedtrue / false
pageNuméro de page
per_pageMax 500

GET /batches/{uuid}/stats/

Statistiques d'indexation détaillées (total, indexed, not_indexed, pending, rate).

POST /batches/{uuid}/recheck/

Relance la vérification d'indexation.

// Body optionnel
{ "only_non_indexed": true }

GET /batches/{uuid}/export/

Export des anomalies (mĂŞme format que les alertes email).

ParamDescription
format=csvTélécharger un fichier CSV (par défaut)
format=jsonRéponse JSON

Détails complets d'un backlink : statut on-site, indexation, health score, etc.

Historique des vérifications on-site. Paramètre limit (défaut 100, max 500).

Historique des vérifications d'indexation. Paramètre limit (défaut 50, max 200).

Exemples cURL

# Vérifier crédits
curl -H "Authorization: Bearer ml_votre_cle" \
  https://app.monito.link/api/v1/credits/

# Soumettre un batch
curl -X POST https://app.monito.link/api/v1/batches/ \
  -H "Authorization: Bearer ml_votre_cle" \
  -H "Content-Type: application/json" \
  -d '{"backlinks": [{"url_publication": "https://blog.com/post", "ancre": "ancre", "url_destination": "https://monsite.com"}], "monitoring_months": 3}'

# Récupérer les backlinks en erreur
curl -H "Authorization: Bearer ml_votre_cle" \
  "https://app.monito.link/api/v1/batches/UUID/backlinks/?status=error"

# Export anomalies CSV
curl -H "Authorization: Bearer ml_votre_cle" \
  -o anomalies.csv \
  https://app.monito.link/api/v1/batches/UUID/export/

Exemple Python

import requests, time

API_KEY = "ml_votre_cle"
BASE = "https://app.monito.link/api/v1"
H = {"Authorization": f"Bearer {API_KEY}"}

# 1. Vérifier crédits
print(requests.get(f"{BASE}/credits/", headers=H).json())

# 2. Soumettre backlinks
r = requests.post(f"{BASE}/batches/", headers=H, json={
    "backlinks": [
        {"url_publication": "https://blog.com/post",
         "ancre": "ancre",
         "url_destination": "https://monsite.com"},
    ],
    "monitoring_months": 3
})
batch_id = r.json()["batch"]["id"]

# 3. Polling
while True:
    stats = requests.get(f"{BASE}/batches/{batch_id}/", headers=H).json()["batch"]["stats"]
    if stats["pending"] == 0: break
    print(f"⏳ {stats['pending']} restants...")
    time.sleep(60)

# 4. Récupérer les erreurs
for bl in requests.get(f"{BASE}/batches/{batch_id}/backlinks/?status=error", headers=H).json()["backlinks"]:
    print(f"❌ {bl['url_publication']} → {bl['error_message']}")

# 5. Export
r = requests.get(f"{BASE}/batches/{batch_id}/export/?format=json", headers=H)
print(f"📊 {r.json()['total']} anomalie(s)")