Zum Inhalt springen
rankion.ai
API

Competitor-Analyses-API

Competitor-Analyses-API ist ein API in der Rankion.ai-Knowledge-Base: Konkurrenz-Analysen starten, Content-Gaps und Topic-Cluster abrufen.

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 Competitor-Analyses-API führt eine vollständige Konkurrenz-Analyse für ein Projekt durch: Top-10-SERP-Konkurrenten ermitteln, deren Content-Strategie clustern, Gaps identifizieren und Re-Ranking auf Basis tatsächlicher SERP-Overlap-Metriken. Alle Endpoints liegen unter /v1/... und sind team-scoped.

Modul-Kontext: Competitor Analysis.

Endpoints

Method Endpoint Beschreibung Credits
GET /v1/competitor-analyses Alle Analysen des Teams (paginated) —
POST /v1/competitor-analyses Neue Analyse — Body: {project_id, seed_keyword, market?, country?, language?} → 202 20
GET /v1/competitor-analyses/{id} Detail mit Konkurrenten-Liste, Topic-Clustern, Coverage-Matrix —
GET /v1/competitor-analyses/{id}/gaps Content-Gaps (Themen, die Top-Konkurrenten covern, dein Projekt nicht) —
POST /v1/competitor-analyses/{id}/rerank-competitors Konkurrenten neu rangieren (z.B. nach Domain-Authority statt SERP-Frequenz) —

Analyse starten

TOKEN="$RANKION_API_TOKEN"
BASE="https://rankion.ai/api/v1"

curl -X POST "$BASE/competitor-analyses" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{
    "project_id":12,
    "seed_keyword":"crm software",
    "market":"global",
    "country":"US",
    "language":"en"
  }'

Response 202 Accepted:

{
  "id": 8,
  "status": "pending",
  "message": "Competitor analysis dispatched"
}

Der Job läuft asynchron 2–4 Minuten — er sammelt SERP-Top-10 für Seed + 20 verwandte Keywords, scrapet die Top-Konkurrenten-Domains, clustert deren Content per Embeddings und vergleicht gegen das eigene Projekt.

Detail abrufen

curl "$BASE/competitor-analyses/$ID" \
  -H "Authorization: Bearer $TOKEN"

Response-Shape:

{
  "id": 8,
  "project_id": 12,
  "status": "completed",
  "seed_keyword": "crm software",
  "competitors": [
    {
      "domain": "hubspot.com",
      "serp_appearances": 47,
      "avg_position": 2.4,
      "coverage_score": 88,
      "topic_clusters": ["crm-pricing","crm-onboarding","crm-integrations"]
    }
  ],
  "topic_clusters": [
    {
      "label": "crm-pricing",
      "keywords": ["crm pricing","cheap crm","free crm"],
      "competitors_covering": ["hubspot.com","salesforce.com"],
      "self_coverage": false
    }
  ],
  "credits_used": 20
}

coverage_score = wie umfassend ein Konkurrent das Themenfeld abdeckt (0–100). self_coverage: false markiert Cluster, in denen dein Projekt fehlt — direkter Lead für Content-Briefs.

Gaps abrufen

curl "$BASE/competitor-analyses/$ID/gaps" \
  -H "Authorization: Bearer $TOKEN"

Liefert priorisierte Content-Lücken:

{
  "data": [
    {
      "topic": "crm-pricing-comparison",
      "search_volume": 3400,
      "difficulty": 28,
      "competitors_covering": 7,
      "priority": "high",
      "suggested_brief": "Vergleichstabelle der Top-10 CRMs nach Pricing-Tier..."
    }
  ]
}

priority ist eine Heuristik aus search_volume, difficulty und competitors_covering — high-priority Gaps sind die typischen Quick-Wins.

Komplettes Beispiel: Analyse → Gaps → Artikel-Brief

PID=12

# 1) Analyse dispatchen
ID=$(curl -s -X POST "$BASE/competitor-analyses" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"project_id":'$PID',"seed_keyword":"crm software","language":"en"}' \
  | jq -r .id)

# 2) Pollen bis completed (~3 min)
while [ "$(curl -s "$BASE/competitor-analyses/$ID" \
  -H "Authorization: Bearer $TOKEN" | jq -r .status)" != "completed" ]; do
  sleep 30
done

# 3) Top-3 high-priority Gaps holen
GAPS=$(curl -s "$BASE/competitor-analyses/$ID/gaps" \
  -H "Authorization: Bearer $TOKEN" \
  | jq -c '[.data[] | select(.priority=="high")][:3]')

# 4) Für jeden Gap einen Artikel-Stub anlegen (<a href="/wiki/api/articles" class="wiki-link">Artikel-API</a>)
echo "$GAPS" | jq -c '.[]' | while read GAP; do
  TOPIC=$(echo "$GAP" | jq -r .topic)
  curl -X POST "$BASE/projects/$PID/articles" \
    -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
    -d "{\"title\":\"$TOPIC\",\"status\":\"draft\"}"
done

Re-Rerank

Wenn die SERP-basierte Rangfolge nicht zur Geschäftslogik passt (z.B. du willst nach Domain-Authority oder Marken-Relevanz sortieren), kannst du die Konkurrenten neu rangieren ohne die Analyse erneut zu fahren:

curl -X POST "$BASE/competitor-analyses/$ID/rerank-competitors" \
  -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
  -d '{"sort_by":"domain_authority","direction":"desc"}'

Hinweise & Pitfalls

  • 20 Credits sind upfront. Bei failed-Status werden Credits über die normale Refund-Logik zurückgebucht — siehe Credits.
  • Async — 2–4 Minuten. Nicht synchron pollen mit < 10s Intervall, der Endpoint liefert Status nur grob-granular.
  • seed_keyword ist der Hebel. Zu generisch ("software") → Konkurrenten nicht thematisch passend. Spezifisch ("b2b crm software for agencies") → bessere Ergebnisse.
  • Re-Rerank ist non-destructive. Die Original-SERP-Rangfolge bleibt im Feld competitors_serp_order erhalten.

Verwandt: Projekte-API · Artikel-API · Credits · Competitor Analysis.

Letzte Aktualisierung:

Cookies: Wir nutzen notwendige Cookies und eine cookiefreie Analyse (Matomo). Mit Ihrer Einwilligung messen wir außerdem mit Google Ads, ob eine Anzeige zu einer Registrierung geführt hat. Dabei setzt Google Cookies, Daten können in die USA übertragen werden. Widerruf jederzeit auf der Cookie-Seite. Details