rankion.ai
API

API Content Intelligence

Rapports agrégés sur score, freshness, linking par projet — une seule API.

L'API Content Intelligence est l'endpoint d'agrégation pour tout ce qui mesure la qualité de contenu au niveau projet : score moyen, articles obsolètes, pages orphelines, couverture de profils de style et état courant du maillage interne. Au lieu de faire un appel distinct pour chaque sous-système, un seul GET te donne une image consolidée — parfait pour des dashboards et outils de reporting externes.

Contexte des modules : Content Freshness · Internal Linking · Storylines.

Endpoint Overview

Méthode Endpoint Description Crédits
GET /v1/content-intelligence?project_id={id} Rapport agrégé sur tous les sous-systèmes content d'un projet
GET /v1/content-freshness?project_id={id} Liste freshness sur tout le projet (quels articles sont obsolètes)
curl "$BASE/content-intelligence?project_id=12" \
  -H "Authorization: Bearer $TOKEN" | jq

Réponse (abrégée) :

{
  "data": {
    "project_id": 12,
    "articles": {"total": 142, "avg_score": 78, "below_60": 9},
    "freshness": {"checked": 120, "stale": 14, "last_run_at": "2026-04-29T09:00:00Z"},
    "linking": {"orphans": 3, "suggestions_open": 27},
    "style_profiles": {"active": 2, "coverage_pct": 91}
  }
}

Storylines

Les storylines regroupent des articles apparentés en cluster thématique avec un pillar content commun.

Méthode Endpoint Description
GET /v1/projects/{project}/storylines Liste de toutes les storylines
POST /v1/projects/{project}/storylines Créer une nouvelle storyline
GET /v1/storylines/{id} Détail incl. articles associés
PUT /v1/storylines/{id} Update
DELETE /v1/storylines/{id} Suppression

Style Profiles

Définissent la tonalité, la voix de marque et les règles d'écriture appliquées par Generate/Optimize.

Méthode Endpoint Description Crédits
GET /v1/projects/{project}/style-profiles Liste (inclut en plus source_type, source_url, pending_review, scraped_pages, failure_reason, reviewed_at)
POST /v1/projects/{project}/style-profiles Créer manuellement
GET /v1/style-profiles/{id} Détail (mêmes champs supplémentaires)
PUT /v1/style-profiles/{id} Mettre à jour (si pending_review=true, implicitement mis à false, reviewed_at renseigné)
DELETE /v1/style-profiles/{id} Suppression
POST /v1/projects/{project}/style-profiles/from-url Lancer une analyse de style par URL en arrière-plan. HTTP 202 → { data: { id, status: "pending", source_url, message } } 25
GET /v1/style-profiles/{id}/scrape-status Statut du job → { status, source_url, scraped_pages, failure_reason, pending_review }
POST /v1/style-profiles/{id}/accept Accepter le profil (pending_review=false, reviewed_at=now()). Réponse : { data: <StyleProfile> }
POST /v1/style-profiles/{id}/discard Rejeter (soft-delete). Uniquement si pending_review=true, sinon 422. Réponse : { deleted: true }

Knowledge Base

Contexte additionnel (PDFs, textes, URLs) que la génération utilise comme source.

Méthode Endpoint Description
GET /v1/projects/{project}/knowledge-base Toutes les entrées
POST /v1/projects/{project}/knowledge-base Ajouter une entrée
DELETE /v1/knowledge-base/{id} Supprimer

Link Lists

Whitelists/blacklists pour la génération de liens internes.

Méthode Endpoint
GET /v1/projects/{project}/link-lists
POST /v1/projects/{project}/link-lists
DELETE /v1/link-lists/{id}

Orphan Scans

Trouve les articles sans liens internes entrants (problème SEO).

Méthode Endpoint Description
POST /v1/projects/{project}/orphan-scans/discover Dispatcher un scan (async)
POST /v1/orphan-scans/{id}/start Relancer
GET /v1/orphan-scans/{id} Statut + résumé
GET /v1/orphan-scans/{id}/pages Liste des pages orphelines
DELETE /v1/orphan-scans/{id} Suppression
SCAN=$(curl -s -X POST "$BASE/projects/12/orphan-scans/discover" \
  -H "Authorization: Bearer $TOKEN" | jq -r .data.id)

# Poller jusqu'à status == "completed"
curl -s "$BASE/orphan-scans/$SCAN" -H "Authorization: Bearer $TOKEN" \
  | jq '{status, orphans_found}'

curl -s "$BASE/orphan-scans/$SCAN/pages" \
  -H "Authorization: Bearer $TOKEN" | jq '.data[].url'

Notes

  • L'endpoint Overview cache en interne pendant 60 s — les rapports chargent vite, mais les valeurs peuvent avoir jusqu'à une minute de retard.
  • freshness.stale ne compte que les articles avec un freshness check terminé. Les articles sans check jamais lancé n'apparaissent pas dans le quota stale — voir API Articles pour POST /articles/{id}/freshness/check.
  • Les Orphan Scans sont async, mais peu coûteux (pas de coût en crédits) et idempotents par projet — les discovers parallèles sont dédupliqués côté serveur.
  • Les Style Profiles n'agissent qu'à la prochaine exécution Generate/Optimize, pas rétroactivement sur le contenu existant.

Voir aussi : API Articles · Content Freshness · Internal Linking · Storylines.

Letzte Aktualisierung: 7 mai 2026

Cookies : Nous utilisons des cookies nécessaires pour le fonctionnement et facultatifs pour les améliorations. Détails

Nécessaire
Actif
Analytique
Marketing