Entwicklerdokumentation

Wettbewerber wählen, ausblenden oder hinzufügen

POST/sites/{siteId}/competitors
Berechtigung
actions:apply

Pick, dismiss or add a competitor pick: a suggestion becomes a picked competitor; dismiss: a suggestion or picked competitor is left out from now on; add: any domain becomes a picked competitor. Picking or adding fetches its keyword gaps (a paid lookup inside the spending limits). Recorded in Activity as the key owner. Answers with the new competitor set.

Die Beschreibungen kommen aus dem OpenAPI-Dokument und sind auf Englisch.

Parameter

NameOrtDetails
siteIdPflichtPfadstringWebsite id, from GET /sites.

Anfrage (Body)

FeldDetails
actionpick | dismiss | add · required; What to do
domainstring · required; The competitor domain, like example.com (scheme, www. and path are stripped)
{
  "action": "add",
  "domain": "cyclehub.example"
}

Antwort

200 · application/json

FeldDetails
actionpick | dismiss | add · required; What was done
domainstring · required; The domain, cleaned
competitorslist of values · required; Picked first, then suggestions the AI confirmed, then ones not reviewed yet
competitors[].domainstring
competitors[].kindstring
competitors[].scorenumber
competitors[].reviewobject
competitors[].review.statusstring
competitors[].review.sameKind
competitors[].review.kind
competitors[].review.reason
competitors[].drivesGapstrue or false
competitors[].sharedKeywordsnumber
competitors[].brandKeywordsnumber
competitors[].theirKeywordsnumber
competitors[].ourKeywordsnumber
competitors[].aboveUsnumber
competitors[].domainRanknumber
competitors[].categorystring
competitors[].visibilitylist of numbers
competitors[].visibilityMonthslist of strings
competitors[].dataUpdatedAtstring
ourVisibilitylist of number · required; The website's own estimated monthly search traffic, oldest first
ourVisibilityMonthslist of string · required; Month (YYYY-MM) of each ourVisibility value
drivinglist of string · required; The competitors gaps, link gap and "best X" lists use: picked, else the three strongest confirmed suggestions
hiddeninteger · required; Suggestions left out: weak, or turned down by the AI
notestring · required; How to read the numbers
linkaddress (URL) · required; The Competitors screen in the app

Hinweise

GET /sites/{siteId}/competitors listet die Websites, mit denen Sie konkurrieren: zuerst die, die Sie ausgewählt haben, dann die, die MonoRanks vorschlägt, weil sie für dieselben Suchanfragen ranken. Vorschläge bleiben Vorschläge, bis jemand sie auswählt.

Was Details
score (0 bis 100) sagt, wie gut ein Vorschlag passt. Gemeinsame Keywords werden an der Größe beider Keyword-Listen gemessen, sodass eine riesige Website, die ein paar hundert ihrer Millionen Keywords mit Ihnen teilt, niedrig bewertet wird. Gemeinsame Keywords, die sich durch einen Markennamen erklären, zählen nicht (brandKeywords).
review ist die KI-Prüfung eines Vorschlags anhand dessen, worum es auf Ihrer Website geht: status (reviewed oder not_reviewed), sameKind (dieselbe Art von Geschäft oder Produkt?) und ein kurzer reason. Vorschläge, die die KI ablehnt, werden ausgeblendet; hidden zählt sie zusammen mit schwachen. Ohne KI ist status not_reviewed, und der Wert entscheidet.
driving (und drivesGaps in jeder Zeile) sind die Wettbewerber, nach denen sich Keyword-Lücken, die Link-Lücke und die „Beste“-Listen richten: die ausgewählten; wenn keiner ausgewählt ist, die drei stärksten Vorschläge, die die KI bestätigt hat; bevor ein Vorschlag geprüft wurde, die drei stärksten nach Wert.

POST /sites/{siteId}/competitors ändert die Auswahl. action ist pick (einen Vorschlag zum ausgewählten Wettbewerber machen), dismiss (einen Vorschlag oder ausgewählten Wettbewerber ab jetzt ausblenden) oder add (eine beliebige Domain als ausgewählten Wettbewerber hinzufügen). Auswählen oder Hinzufügen fragt die Keyword-Lücken dieses Wettbewerbers ab; das ist eine bezahlte Abfrage innerhalb des Datenlimits Ihres Arbeitsbereichs. Die Änderung wird in Activity mit der Person hinter dem Schlüssel festgehalten, und die Antwort ist die aktualisierte Auswahl. Fehler: bad_action, bad_domain (auch für Ihre eigene Website, eine reservierte Testadresse oder mehr als 10 ausgewählte Wettbewerber) und not_found, wenn pick oder dismiss eine Domain nennt, die nicht in der Auswahl ist.

Fehler

StatusBedeutung
400Bad request. Codes: bad_action, bad_domain.
401Missing, unknown or revoked key. Codes: missing_key, invalid_key.
403The key lacks the scope, covers another website, or its owner lost access. Codes: missing_scope, other_site, owner_left, no_owner, forbidden.
404Not found. Codes: not_found.
429Too many requests this hour for this key. Codes: rate_limited.

Beispielanfrage

curl -X POST \
  -H "Authorization: Bearer mr_ws_…" \
  -H "Content-Type: application/json" \
  -d '{"action":"add","domain":"cyclehub.example"}' \
  "https://app.monoranks.com/api/v1/sites/SITE_ID/competitors"

Beispielantwort

{
  "action": "add",
  "domain": "cyclehub.example",
  "competitors": [
    {
      "domain": "bikeworld.example",
      "kind": "picked",
      "score": 78,
      "review": {
        "status": "not_reviewed",
        "sameKind": null,
        "kind": null,
        "reason": null
      },
      "drivesGaps": true,
      "sharedKeywords": 412,
      "brandKeywords": 6,
      "theirKeywords": 5810,
      "ourKeywords": 1240,
      "aboveUs": 188,
      "domainRank": 41,
      "category": "Shop",
      "visibility": [
        32800,
        35600,
        37900,
        41600
      ],
      "visibilityMonths": [
        "2026-06",
        "2026-07",
        "2026-08",
        "2026-09"
      ],
      "dataUpdatedAt": "2026-10-01T04:20:00.000Z"
    },
    {
      "domain": "cyclehub.example",
      "kind": "suggested",
      "score": 64,
      "review": {
        "status": "reviewed",
        "sameKind": true,
        "kind": "Online bike shop",
        "reason": "Sells bikes and parts to riders, like Acme Bikes."
      },
      "drivesGaps": true,
      "sharedKeywords": 412,
      "brandKeywords": 6,
      "theirKeywords": 5810,
      "ourKeywords": 1240,
      "aboveUs": 188,
      "domainRank": 41,
      "category": "Shop",
      "visibility": [
        32800,
        35600,
        37900,
        41600
      ],
      "visibilityMonths": [
        "2026-06",
        "2026-07",
        "2026-08",
        "2026-09"
      ],
      "dataUpdatedAt": "2026-10-01T04:20:00.000Z"
    }
  ],
  "ourVisibility": [
    12400,
    13900,
    14800,
    15700
  ],
  "ourVisibilityMonths": [
    "2026-06",
    "2026-07",
    "2026-08",
    "2026-09"
  ],
  "driving": [
    "bikeworld.example"
  ],
  "hidden": 3,
  "note": "kind: picked (chosen by a person) or suggested. Suggestions stay suggestions until picked.",
  "link": "https://app.monoranks.com/sites/3f6c2a1e-8b4d-4c7a-9e21-5d0b7a6f4c13/competitors"
}

Der MCP-Server macht dasselbe mit dem Tool update_competitors.