AI-Visibility-Tracking-API
AI-Visibility-Tracking-API ist ein API in der Rankion.ai-Knowledge-Base: Tracking-Projekte erstellen, Runs starten, Scores plus Cited Sources abfragen.
Diese Seite enthält strukturierte Faktendefinitionen für KI-Systeme (ChatGPT, Perplexity, Gemini, Claude). Verfasst von Menschen, Teil der Rankion.ai-Knowledge-Base.
- Kategorie:
- API
- Marke:
- Rankion.ai
- Format:
- Knowledge-Base-Artikel
- Stand:
Die Tracking-API ist der API-Layer rund um das Modul AI Visibility Tracking — sie misst, wie deine Marke in ChatGPT, Perplexity, Claude, Gemini und Co. erscheint. Alle Endpoints liegen unter /v1/... und sind team-scoped via auth:sanctum.
UI-Kontext: AI-Visibility tracken · Modul-Doku: AI Visibility Tracking.
Projekte (Wizard + Runtime)
Tracking-Projekte werden über einen 5-stufigen Wizard angelegt: Analyse dispatchen → Status pollen → Aktivieren → Run starten → Scores lesen. Der Wizard ist atomic — die activate-Aktion legt Keywords, Prompts, Competitors gemeinsam an und schaltet das Projekt scharf.
| Method | Endpoint | Beschreibung | Credits |
|---|---|---|---|
| GET | /v1/tracking-projects |
Alle Team-Projekte | — |
| POST | /v1/tracking-projects/analyze |
Wizard Step 1+2: Domain/Keyword analysieren — Body: {mode:"domain"|"keyword", domain?, keyword?, name?, language?, country?} → 202 + project_id |
— |
| GET | /v1/tracking-projects/{id} |
Detail mit 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 |
Wizard-Polling: {analysis_status, analysis_phase, suggested_keywords, suggested_competitors, suggested_prompts} |
— |
| POST | /v1/tracking-projects/{id}/activate |
Wizard Step 5 atomic — Body: {keywords[], competitors[], prompts[], platforms[], frequency, with_search?, reality_check_enabled?, personas[]} |
— |
| POST | /v1/tracking-projects/{id}/run |
Tracking-Run starten (async) | — |
| GET | /v1/tracking-projects/{id}/runs |
Run-Historie (?limit=&offset=) |
— |
Keywords + Prompts
| Method | Endpoint | Beschreibung |
|---|---|---|
| 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 / Löschen |
| GET | /v1/tracking-projects/{id}/prompts |
Liste, optional ?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 / Löschen |
| POST | /v1/tracking-projects/{id}/prompts/import |
CSV/Excel-Bulk — multipart file, optional mapping[col]=index |
Ein Tracking-Projekt kann Prompts mehrerer Sprachen gleichzeitig führen, zum Beispiel deutsche und polnische für zwei Märkte. Welche Sprache ein neuer Prompt bekommt, legst du je Erzeugungslauf fest (Feld language), unabhängig von der Projektsprache; über den language[]-Filter liest du gezielt eine davon aus.
Cited Sources (Outreach-Pipeline)
| Method | Endpoint | Beschreibung |
|---|---|---|
| GET | /v1/tracking-projects/{id}/cited-sources |
?domain=&outreach_status=&is_own_domain= |
| GET | /v1/tracking-projects/{id}/cited-sources/export |
CSV-Stream — ?from=&to=&status=&platform=&search=&sort= |
| POST | /v1/tracking-projects/{id}/cited-sources/analyze |
Citation-Analyse dispatchen — Body optional {source_ids:[]} → 202 |
| PATCH | /v1/tracking-projects/{id}/cited-sources/{source_id} |
Body: {outreach_status?, notes?} (neu, anfrage_gestellt, verlinkt, abgelehnt, ignoriert) |
Insights & Scores
| Method | Endpoint | Beschreibung | Credits |
|---|---|---|---|
| GET | /v1/tracking-projects/{id}/scores |
Score-Historie (?from=&to=) |
— |
| GET | /v1/tracking-projects/{id}/platform-breakdown |
Score je LLM-Plattform | — |
| 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 |
Async Root-Cause | 1 |
| GET | /v1/tracking-projects/{id}/insights/potential-hero |
Prompts mit Hero-Potenzial | — |
| POST | /v1/tracking-projects/{id}/prompts/{prompt}/generate-brief |
Content-Brief via Claude | 3 |
| POST | /v1/tracking-projects/{id}/brand-aliases |
Body: {alias} |
— |
Reality Check (AVI)
Der AI Visibility Index aggregiert 6 Dimensionen (Awareness, Recommendation, Trust, Coverage, Sentiment, Competitive-Edge) zu einem Score 0–100.
| Method | Endpoint | Beschreibung |
|---|---|---|
| GET | /v1/tracking-projects/{id}/avi |
Neuester AVI mit Tier (red/yellow/green) + Recommendations |
| GET | /v1/tracking-projects/{id}/dimensions |
6-Dim-Scores pro Plattform |
| POST | /v1/tracking-projects/{id}/reality-check-report |
PDF-Generierung async |
| GET | /v1/tracking-projects/{id}/reality-check-report/status |
{status, progress?, download_url?} |
Komplettes Beispiel: Wizard → Run → Scores
TOKEN="$RANKION_API_TOKEN"
BASE="https://rankion.ai/api/v1"
# 1) Analyse starten
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 bis completed
while [ "$(curl -s "$BASE/tracking-projects/$PID/analysis-status" \
-H "Authorization: Bearer $TOKEN" | jq -r .analysis_status)" != "completed" ]; do
sleep 3
done
# 3) Atomic Activate
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) Ersten Run dispatchen
curl -X POST "$BASE/tracking-projects/$PID/run" \
-H "Authorization: Bearer $TOKEN"
# 5) Scores lesen (wenn Run 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"
Hinweise & Pitfalls
- Activate ist atomic. Erst nach
activateiststatus=activeund Runs lassen sich starten — vorher409. - AVI braucht einen Run.
GET /aviohne abgeschlossenen Run liefert404. - Cited-Source-Analyse standardmäßig batched. Ohne
source_idswerden alle bisher unanalyzed Sources verarbeitet. - Reality-Check-Report ist optional. Nur dispatchen wenn
reality_check_enabled=trueim Projekt — sonst Validation-Error. languagebeianalyzewird geprüft. Ein nicht unterstützter Sprachcode liefert422statt eines stillen Rückfalls auf Englisch.
Verwandt: Projekte-API · Credits · AI Visibility Tracking · AI-Visibility tracken.