مستندات توسعه دهندگان

انتخاب، کنار گذاشتن یا افزودن رقیب

POST/sites/{siteId}/competitors
Scope
actions:apply
ابزار MCP
update_competitors

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.

توضیح ها از سند OpenAPI می آیند و انگلیسی اند.

پارامترها

ناممحلتوضیح
siteIdاجباریpathstringWebsite id, from GET /sites.

بدنه درخواست

فیلدتوضیح
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"
}

پاسخ

200 · application/json

فیلدتوضیح
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

نکته ها

GET /sites/{siteId}/competitors سایت هایی را که با آن ها رقابت می کنید فهرست می کند: اول رقبایی که خودتان انتخاب کرده اید، بعد سایت هایی که MonoRanks پیشنهاد می دهد چون روی همان جست وجوها رتبه دارند. پیشنهاد تا وقتی کسی انتخابش نکند، پیشنهاد می ماند.

مورد توضیح
score (0 تا 100) نشان می دهد یک پیشنهاد چقدر به شما نزدیک است. کلمات کلیدی مشترک نسبت به اندازه هر دو فهرست سنجیده می شوند؛ پس سایت غول پیکری که فقط چند صد کلمه از میلیون ها کلمه اش با شما مشترک است، امتیاز پایینی می گیرد. کلمات مشترکی که فقط به خاطر اسم برند مشترک اند حساب نمی شوند (brandKeywords).
review نتیجه بررسی هوش مصنوعی است که پیشنهاد را با موضوع سایت شما مقایسه می کند: status (reviewed یا not_reviewed)، sameKind (آیا همان نوع کسب وکار یا محصول است؟) و یک reason کوتاه. پیشنهادهایی که هوش مصنوعی رد کند پنهان می شوند و hidden تعدادشان را همراه با پیشنهادهای ضعیف نشان می دهد. اگر هوش مصنوعی در دسترس نباشد، status برابر not_reviewed است و امتیاز تصمیم می گیرد.
driving (و drivesGaps در هر ردیف) رقبایی هستند که شکاف کلمات کلیدی، شکاف لینک و فهرست های «بهترین ها» بر اساس آن ها ساخته می شوند: رقبایی که انتخاب کرده اید؛ اگر هیچ کدام را انتخاب نکرده باشید، سه پیشنهاد قوی تری که هوش مصنوعی تأییدشان کرده؛ و تا قبل از بررسی هر پیشنهادی، سه پیشنهاد قوی تر بر اساس امتیاز.

POST /sites/{siteId}/competitors فهرست رقبا را عوض می کند. action یکی از این هاست: pick (یک پیشنهاد را رقیب انتخاب شده می کند)، dismiss (یک پیشنهاد یا رقیب انتخاب شده را از این به بعد پنهان می کند) یا add (هر دامنه ای را به عنوان رقیب انتخاب شده اضافه می کند). انتخاب یا اضافه کردن، شکاف کلمات کلیدی آن رقیب را می گیرد که یک استعلام پولی داخل سقف داده فضای کاری شماست. تغییر به نام صاحب کلید در Activity ثبت می شود و پاسخ، فهرست به روزشده رقباست. خطاها: bad_action، bad_domain (برای سایت خودتان، یک آدرس تستی رزروشده یا بیشتر از 10 رقیب انتخاب شده هم همین است) و not_found وقتی pick یا dismiss دامنه ای را نام ببرد که در فهرست نیست.

خطاها

کدمعنی
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.

نمونه درخواست

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"

نمونه پاسخ

{
  "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"
}

سرور MCP همین کار را با ابزار update_competitors انجام می دهد.