خلاصه جست وجو
GET
/sites/{siteId}/search/summary- Scope
search:read- ابزار MCP
search_summary
Search Console totals vs the previous period, with top pages and queries Clicks, impressions, CTR and position over the last 7, 28 or 90 days (ending at the last imported day) next to the period before, with the 10 top pages and queries. Without stored Search Console data the answer is { connected: false, note }.
توضیح ها از سند OpenAPI می آیند و انگلیسی اند.
پارامترها
| نام | محل | توضیح |
|---|---|---|
siteIdاجباری | path | stringWebsite id, from GET /sites. |
days | query | 72890default 28Length of the period in days. Other values fall back to 28. |
پاسخ
200 · application/json
| فیلد | توضیح |
|---|---|
connected | true or false |
period | object |
period.from | string |
period.to | string |
previous | object |
previous.from | string |
previous.to | string |
totals | object |
totals.clicks | number |
totals.impressions | number |
totals.ctr | number |
totals.position | number |
previousTotals | object |
previousTotals.clicks | number |
previousTotals.impressions | number |
previousTotals.ctr | number |
previousTotals.position | number |
topPages | list of objects |
topPages[].key | string |
topPages[].clicks | number |
topPages[].impressions | number |
topPages[].ctr | number |
topPages[].position | number |
topPages[].prevClicks | number |
topPages[].prevPosition | number |
topQueries | list of objects |
topQueries[].key | string |
topQueries[].clicks | number |
topQueries[].impressions | number |
topQueries[].ctr | number |
topQueries[].position | number |
topQueries[].prevClicks | number |
topQueries[].prevPosition | number |
topQueries[].topPage | string |
note | string |
خطاها
| کد | معنی |
|---|---|
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. |
نمونه درخواست
curl \
-H "Authorization: Bearer mr_ws_…" \
"https://app.monoranks.com/api/v1/sites/SITE_ID/search/summary"const res = await fetch("https://app.monoranks.com/api/v1/sites/SITE_ID/search/summary", {
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/search/summary",
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/search/summary");
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/search/summary", { headers: { Authorization: "Bearer mr_ws_…" } });نمونه پاسخ
{
"connected": true,
"period": {
"from": "2026-09-06",
"to": "2026-10-03"
},
"previous": {
"from": "2026-08-09",
"to": "2026-09-05"
},
"totals": {
"clicks": 4820,
"impressions": 162400,
"ctr": 0.0297,
"position": 14.2
},
"previousTotals": {
"clicks": 4310,
"impressions": 151900,
"ctr": 0.0284,
"position": 15.1
},
"topPages": [
{
"key": "https://acmebikes.com/guides/how-to-choose-a-gravel-bike",
"clicks": 912,
"impressions": 24300,
"ctr": 0.0375,
"position": 6.8,
"prevClicks": 840,
"prevPosition": 7.4
},
{
"key": "https://acmebikes.com/bikes/gravel",
"clicks": 655,
"impressions": 18120,
"ctr": 0.0361,
"position": 9.1,
"prevClicks": 702,
"prevPosition": 8.7
}
],
"topQueries": [
{
"key": "acme bikes",
"clicks": 540,
"impressions": 1980,
"ctr": 0.2727,
"position": 1.2,
"prevClicks": 512,
"prevPosition": 1.3,
"topPage": "https://acmebikes.com/"
},
{
"key": "best gravel bike under 1500",
"clicks": 214,
"impressions": 8650,
"ctr": 0.0247,
"position": 7.9,
"prevClicks": 168,
"prevPosition": 9.4,
"topPage": "https://acmebikes.com/guides/how-to-choose-a-gravel-bike"
}
],
"note": "CTR and position are computed from sums over the period, never averaged across rows."
}{
"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."
}
}سرور MCP همین کار را با ابزار search_summary انجام می دهد.