API de AI Visibility Tracking
Crea Tracking Projects, lanza runs, consulta scores y cited sources.
La API de Tracking es la capa REST alrededor del módulo AI Visibility Tracking — mide cómo aparece tu marca en ChatGPT, Perplexity, Claude, Gemini y compañía. Todos los endpoints viven bajo /v1/... y están scope al team mediante auth:sanctum.
Contexto UI: Trackear AI Visibility · documentación del módulo: AI Visibility Tracking.
Proyectos (asistente + runtime)
Los Tracking Projects se crean con un asistente de 5 pasos: dispatchar análisis → polling de status → activar → arrancar run → leer scores. La activación es atómica — la acción activate crea keywords, prompts y competitors a la vez y deja el proyecto en producción.
| Method | Endpoint | Descripción | Créditos |
|---|---|---|---|
| GET | /v1/tracking-projects |
Todos los proyectos del team | — |
| POST | /v1/tracking-projects/analyze |
Asistente paso 1+2: analizar dominio/keyword — Body: {mode:"domain"|"keyword", domain?, keyword?, name?, language?, country?} → 202 + project_id |
— |
| GET | /v1/tracking-projects/{id} |
Detalle con KPIs | — |
| PUT | /v1/tracking-projects/{id} |
Settings: {name?, brand_name?, brand_aliases[], tracking_frequency?, llm_platforms[], track_aio?, reality_check_enabled?} |
— |
| GET | /v1/tracking-projects/{id}/analysis-status |
Polling del asistente: {analysis_status, analysis_phase, suggested_keywords, suggested_competitors, suggested_prompts} |
— |
| POST | /v1/tracking-projects/{id}/activate |
Asistente paso 5 atómico — Body: {keywords[], competitors[], prompts[], platforms[], frequency, with_search?, reality_check_enabled?, personas[]} |
— |
| POST | /v1/tracking-projects/{id}/run |
Iniciar tracking run (async) | — |
| GET | /v1/tracking-projects/{id}/runs |
Historial de runs (?limit=&offset=) |
— |
Keywords + Prompts
| Method | Endpoint | Descripción |
|---|---|---|
| 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 / Delete |
| GET | /v1/tracking-projects/{id}/prompts |
Lista |
| POST | /v1/tracking-projects/{id}/prompts |
Body: {prompt_text, prompt_category?, persona_label?, commercial_intent?} |
| PUT/DELETE | /v1/tracking-prompts/{id} |
Update / Delete |
| POST | /v1/tracking-projects/{id}/prompts/import |
Bulk CSV/Excel — multipart file, opcional mapping[col]=index |
Cited Sources (pipeline de outreach)
| Method | Endpoint | Descripción |
|---|---|---|
| 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 |
Dispatchar análisis de citaciones — Body opcional {source_ids:[]} → 202 |
| PATCH | /v1/tracking-projects/{id}/cited-sources/{source_id} |
Body: {outreach_status?, notes?} (neu, anfrage_gestellt, verlinkt, abgelehnt, ignoriert) |
Insights y scores
| Method | Endpoint | Descripción | Créditos |
|---|---|---|---|
| GET | /v1/tracking-projects/{id}/scores |
Histórico de scores (?from=&to=) |
— |
| GET | /v1/tracking-projects/{id}/platform-breakdown |
Score por plataforma 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 asíncrono | 1 |
| GET | /v1/tracking-projects/{id}/insights/potential-hero |
Prompts con potencial Hero | — |
| POST | /v1/tracking-projects/{id}/prompts/{prompt}/generate-brief |
Content Brief vía Claude | 3 |
| POST | /v1/tracking-projects/{id}/brand-aliases |
Body: {alias} |
— |
Reality Check (AVI)
El AI Visibility Index agrega 6 dimensiones (Awareness, Recommendation, Trust, Coverage, Sentiment, Competitive Edge) en un score 0–100.
| Method | Endpoint | Descripción |
|---|---|---|
| GET | /v1/tracking-projects/{id}/avi |
AVI más reciente con tier (red/yellow/green) + recommendations |
| GET | /v1/tracking-projects/{id}/dimensions |
Scores 6-Dim por plataforma |
| POST | /v1/tracking-projects/{id}/reality-check-report |
Generación de PDF (async) |
| GET | /v1/tracking-projects/{id}/reality-check-report/status |
{status, progress?, download_url?} |
Ejemplo completo: Asistente → Run → Scores
TOKEN="$RANKION_API_TOKEN"
BASE="https://rankion.ai/api/v1"
# 1) Iniciar análisis
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 hasta completed
while [ "$(curl -s "$BASE/tracking-projects/$PID/analysis-status" \
-H "Authorization: Bearer $TOKEN" | jq -r .analysis_status)" != "completed" ]; do
sleep 3
done
# 3) Activar atómicamente
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) Dispatchar primer run
curl -X POST "$BASE/tracking-projects/$PID/run" \
-H "Authorization: Bearer $TOKEN"
# 5) Leer scores (cuando el 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"
Notas y pitfalls
- Activate es atómico. Solo después de
activateel proyecto está enstatus=activey los runs se pueden lanzar — antes responde409. - AVI necesita un run.
GET /avisin un run finalizado devuelve404. - El análisis de cited sources es batched por defecto. Sin
source_idsse procesan todas las sources aún sin analizar. - Reality Check Report es opcional. Solo dispatchar si
reality_check_enabled=trueen el proyecto — si no, error de validación.
Relacionado: API de Proyectos · Créditos · AI Visibility Tracking · Trackear AI Visibility.