API AI Visibility Tracking
API AI Visibility Tracking est un API dans la base de connaissances de Rankion.ai : Créer des projets de tracking, lancer des runs, récupérer scores et sources citées.
Cette page contient des définitions structurées pour les systèmes d'IA (ChatGPT, Perplexity, Gemini, Claude). Rédigée par des humains, partie de la base de connaissances de Rankion.ai.
- Catégorie :
- API
- Marque :
- Rankion.ai
- Format :
- Article de la base de connaissances
- Au :
L'API Tracking est la couche API du module AI Visibility Tracking — elle mesure comment ta marque apparaît dans ChatGPT, Perplexity, Claude, Gemini & Co. Tous les endpoints sont sous /v1/... et team-scoped via auth:sanctum.
Contexte UI : Tracker l'AI Visibility · Doc module : AI Visibility Tracking.
Projets (assistant + runtime)
Les projets de tracking sont créés via un assistant en 5 étapes : dispatcher l'analyse → poller le statut → activer → lancer un run → lire les scores. L'assistant est atomique — l'action activate crée mots-clés, prompts et concurrents ensemble et bascule le projet en mode actif.
| Méthode | Endpoint | Description | Crédits |
|---|---|---|---|
| GET | /v1/tracking-projects |
Tous les projets de l'équipe | — |
| POST | /v1/tracking-projects/analyze |
Étapes 1+2 de l'assistant : analyser un domaine/mot-clé — Body : {mode:"domain"|"keyword", domain?, keyword?, name?, language?, country?} → 202 + project_id |
— |
| GET | /v1/tracking-projects/{id} |
Détail avec KPIs | — |
| PUT | /v1/tracking-projects/{id} |
Paramètres : {name?, brand_name?, brand_aliases[], tracking_frequency?, llm_platforms[], track_aio?, reality_check_enabled?} |
— |
| GET | /v1/tracking-projects/{id}/analysis-status |
Polling de l'assistant : {analysis_status, analysis_phase, suggested_keywords, suggested_competitors, suggested_prompts} |
— |
| POST | /v1/tracking-projects/{id}/activate |
Étape 5 atomique — Body : {keywords[], competitors[], prompts[], platforms[], frequency, with_search?, reality_check_enabled?, personas[]} |
— |
| POST | /v1/tracking-projects/{id}/run |
Lancer un run de tracking (async) | — |
| GET | /v1/tracking-projects/{id}/runs |
Historique des runs (?limit=&offset=) |
— |
Mots-clés + prompts
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /v1/tracking-projects/{id}/keywords |
?active_only=true |
| POST | /v1/tracking-projects/{id}/keywords |
Body : {keyword, language?, country?, is_active?} |
| PUT/DELETE | /v1/tracking-keywords/{id} |
Update / suppression |
| GET | /v1/tracking-projects/{id}/prompts |
Liste, avec en option ?language[]=de&language[]=pl |
| POST | /v1/tracking-projects/{id}/prompts |
Body : {prompt_text, prompt_category?, persona_label?, commercial_intent?, language?} |
| PUT/DELETE | /v1/tracking-prompts/{id} |
Update / suppression |
| POST | /v1/tracking-projects/{id}/prompts/import |
Bulk CSV/Excel — multipart file, optionnel mapping[col]=index |
Un projet de tracking peut faire cohabiter des prompts en plusieurs langues, par exemple en allemand et en polonais pour deux marchés. La langue attribuée à un nouveau prompt se choisit à chaque lancement de génération (champ language), indépendamment de la langue du projet ; le filtre language[] permet d'en lire une seule à la fois.
Sources citées (pipeline outreach)
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /v1/tracking-projects/{id}/cited-sources |
?domain=&outreach_status=&is_own_domain= |
| GET | /v1/tracking-projects/{id}/cited-sources/export |
Stream CSV — ?from=&to=&status=&platform=&search=&sort= |
| POST | /v1/tracking-projects/{id}/cited-sources/analyze |
Dispatcher l'analyse de citations — Body optionnel {source_ids:[]} → 202 |
| PATCH | /v1/tracking-projects/{id}/cited-sources/{source_id} |
Body : {outreach_status?, notes?} (neu, anfrage_gestellt, verlinkt, abgelehnt, ignoriert) |
Insights & scores
| Méthode | Endpoint | Description | Crédits |
|---|---|---|---|
| GET | /v1/tracking-projects/{id}/scores |
Historique des scores (?from=&to=) |
— |
| GET | /v1/tracking-projects/{id}/platform-breakdown |
Score par plateforme LLM | — |
| GET | /v1/tracking-projects/{id}/insights/low-hanging-fruit |
?days=30&min_possibility=60&limit=5 |
— |
| GET | /v1/tracking-projects/{id}/insights/platform-gap |
?days=30 |
— |
| POST | /v1/tracking-projects/{id}/insights/platform-gap/{platform}/diagnose |
Root-cause async | 1 |
| GET | /v1/tracking-projects/{id}/insights/potential-hero |
Prompts à potentiel Hero | — |
| POST | /v1/tracking-projects/{id}/prompts/{prompt}/generate-brief |
Brief de contenu via Claude | 3 |
| POST | /v1/tracking-projects/{id}/brand-aliases |
Body : {alias} |
— |
Reality Check (AVI)
L'AI Visibility Index agrège 6 dimensions (Awareness, Recommendation, Trust, Coverage, Sentiment, Competitive-Edge) en un score 0–100.
| Méthode | Endpoint | Description |
|---|---|---|
| GET | /v1/tracking-projects/{id}/avi |
AVI le plus récent avec tier (red/yellow/green) + recommendations |
| GET | /v1/tracking-projects/{id}/dimensions |
Scores des 6 dimensions par plateforme |
| POST | /v1/tracking-projects/{id}/reality-check-report |
Génération PDF async |
| GET | /v1/tracking-projects/{id}/reality-check-report/status |
{status, progress?, download_url?} |
Exemple complet : assistant → run → scores
TOKEN="$RANKION_API_TOKEN"
BASE="https://rankion.ai/api/v1"
# 1) Démarrer l'analyse
PID=$(curl -s -X POST "$BASE/tracking-projects/analyze" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"mode":"domain","domain":"example.com","language":"de","country":"DE"}' \
| jq -r .project_id)
# 2) Polling jusqu'à completed
while [ "$(curl -s "$BASE/tracking-projects/$PID/analysis-status" \
-H "Authorization: Bearer $TOKEN" | jq -r .analysis_status)" != "completed" ]; do
sleep 3
done
# 3) Activation atomique
curl -X POST "$BASE/tracking-projects/$PID/activate" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{
"keywords":["best crm","crm software"],
"competitors":[{"domain":"hubspot.com"}],
"prompts":[{"prompt":"What is the best CRM?","category":"recommendation"}],
"platforms":["chatgpt","perplexity"],
"frequency":"weekly",
"with_search":true,
"reality_check_enabled":true
}'
# 4) Dispatcher le premier run
curl -X POST "$BASE/tracking-projects/$PID/run" \
-H "Authorization: Bearer $TOKEN"
# 5) Lire les scores (quand le run est completed)
curl "$BASE/tracking-projects/$PID/scores?from=2026-01-01" \
-H "Authorization: Bearer $TOKEN"
# 6) AVI + recommendations
curl "$BASE/tracking-projects/$PID/avi" \
-H "Authorization: Bearer $TOKEN"
Notes & pièges
- Activate est atomique. Ce n'est qu'après
activatequestatus=activeet que les runs peuvent démarrer — avant cela,409. - AVI nécessite un run.
GET /avisans run terminé renvoie404. - L'analyse de sources citées est par défaut batchée. Sans
source_ids, toutes les sources non encore analysées sont traitées. - Reality-Check-Report est optionnel. Ne le dispatcher que si
reality_check_enabled=truedans le projet — sinon erreur de validation. languagesuranalyzeest contrôlé. Un code de langue non pris en charge renvoie422au lieu de basculer silencieusement vers l'anglais.
Voir aussi : API Projets · Crédits · AI Visibility Tracking · Tracker l'AI Visibility.