API AI Visibility Tracking
Créer des projets de tracking, lancer des runs, récupérer scores et sources citées.
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 |
| POST | /v1/tracking-projects/{id}/prompts |
Body : {prompt_text, prompt_category?, persona_label?, commercial_intent?} |
| PUT/DELETE | /v1/tracking-prompts/{id} |
Update / suppression |
| POST | /v1/tracking-projects/{id}/prompts/import |
Bulk CSV/Excel — multipart file, optionnel mapping[col]=index |
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.
Voir aussi : API Projets · Crédits · AI Visibility Tracking · Tracker l'AI Visibility.