Wettbewerber auflisten
/sites/{siteId}/competitors- Berechtigung
search:read- MCP-Tool
competitors
The competitor set with scores and visibility Picked competitors, then suggestions the AI confirmed, then ones not reviewed yet. Dismissed, weak and turned-down suggestions are left out (hidden counts them). Estimates from the keyword index.
Die Beschreibungen kommen aus dem OpenAPI-Dokument und sind auf Englisch.
Parameter
| Name | Ort | Details |
|---|---|---|
siteIdPflicht | Pfad | stringWebsite id, from GET /sites. |
Antwort
200 · application/json
| Feld | Details |
|---|---|
competitors | list of values · required; Picked first, then suggestions the AI confirmed, then ones not reviewed yet |
competitors[].domain | string |
competitors[].kind | string |
competitors[].score | number |
competitors[].review | object |
competitors[].review.status | string |
competitors[].review.sameKind | |
competitors[].review.kind | |
competitors[].review.reason | |
competitors[].drivesGaps | true or false |
competitors[].sharedKeywords | number |
competitors[].brandKeywords | number |
competitors[].theirKeywords | number |
competitors[].ourKeywords | number |
competitors[].aboveUs | number |
competitors[].domainRank | number |
competitors[].category | string |
competitors[].visibility | list of numbers |
competitors[].visibilityMonths | list of strings |
competitors[].dataUpdatedAt | string |
ourVisibility | list of number · required; The website's own estimated monthly search traffic, oldest first |
ourVisibilityMonths | list of string · required; Month (YYYY-MM) of each ourVisibility value |
driving | list of string · required; The competitors gaps, link gap and "best X" lists use: picked, else the three strongest confirmed suggestions |
hidden | integer · required; Suggestions left out: weak, or turned down by the AI |
note | string · required; How to read the numbers |
link | address (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
| Status | Bedeutung |
|---|---|
401 | Missing, unknown or revoked key. Codes: missing_key, invalid_key. |
403 | The key lacks the scope, covers another website, or its owner lost access. Codes: missing_scope, other_site, owner_left, no_owner, forbidden. |
404 | Not found. Codes: not_found. |
429 | Too many requests this hour for this key. Codes: rate_limited. |
Beispielanfrage
curl \
-H "Authorization: Bearer mr_ws_…" \
"https://app.monoranks.com/api/v1/sites/SITE_ID/competitors"const res = await fetch("https://app.monoranks.com/api/v1/sites/SITE_ID/competitors", {
headers: { Authorization: "Bearer mr_ws_…" },
});
if (!res.ok) throw new Error((await res.json()).error.message);
const data = await res.json();import requests
res = requests.get(
"https://app.monoranks.com/api/v1/sites/SITE_ID/competitors",
headers={"Authorization": "Bearer mr_ws_…"},
)
res.raise_for_status()
data = res.json()<?php
$ch = curl_init("https://app.monoranks.com/api/v1/sites/SITE_ID/competitors");
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ["Authorization: Bearer mr_ws_…"],
CURLOPT_RETURNTRANSFER => true,
]);
$data = json_decode(curl_exec($ch), true);import axios from "axios";
const { data } = await axios.get("https://app.monoranks.com/api/v1/sites/SITE_ID/competitors", { headers: { Authorization: "Bearer mr_ws_…" } });Beispielantwort
{
"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"
}{
"error": {
"code": "missing_key",
"message": "Send the key as Authorization: Bearer mr_site_…"
}
}{
"error": {
"code": "missing_scope",
"message": "This key does not have the scope this call needs."
}
}{
"error": {
"code": "not_found",
"message": "Website not found."
}
}{
"error": {
"code": "rate_limited",
"message": "More than 1200 requests this hour for this key."
}
}Der MCP-Server macht dasselbe mit dem Tool competitors.