A page title compared with the top 5 Google results
GET
/sites/{siteId}/pages/{pageId}/title-compare- Berechtigung
pages:read- MCP-Tool
title_compare
A page title compared with the top 5 Google results The stored comparison (null until it was run once) and the searches it can be run for, best first. Reading never costs anything.
Die Beschreibungen kommen aus dem OpenAPI-Dokument und sind auf Englisch.
Parameter
| Name | Ort | Details |
|---|---|---|
siteIdPflicht | Pfad | stringWebsite id, from GET /sites. |
pageIdPflicht | Pfad | stringPage id, from GET /pages or GET /pages/findings. |
Antwort
200 · application/json
| Feld | Details |
|---|---|
page | object · required |
page.id | string · required |
page.url | address (URL) · required |
page.title | string or null · required |
keywordChoices | list of object · required |
keywordChoices[].keyword | string · required |
keywordChoices[].source | tracked | keyword | search_console · required; tracked: a tracked keyword that ranks with this page; keyword: a keyword whose Search Console page is this one; search_console: a search the page appears for |
keywordChoices[].clicks | integer · required; Search Console clicks, 28 days |
keywordChoices[].impressions | integer · required; Search Console impressions, 28 days |
keywordChoices[].position | number or null · required; Tracked position, else the 28-day average |
keywordChoices[].storedResults | date (YYYY-MM-DD) or null · required; Day of stored results that a run would reuse for free |
comparison | object · required |
comparison.keyword | string |
comparison.locationCode | number |
comparison.languageCode | string |
comparison.comparedAt | string |
comparison.results | object |
comparison.results.date | string |
comparison.results.source | string |
comparison.results.checkUrl | string |
comparison.results.top | list of objects |
comparison.results.top[].position | number |
comparison.results.top[].domain | string |
comparison.results.top[].url | string |
comparison.results.top[].title | string |
comparison.results.top[].length | number |
comparison.ours | object |
comparison.ours.title | string |
comparison.ours.length | number |
comparison.ours.position | |
comparison.ours.positionSource | |
comparison.findings | list of objects |
comparison.findings[].key | string |
comparison.findings[].values | object |
comparison.findings[].values.ours | number |
comparison.findings[].values.min | number |
comparison.findings[].values.max | number |
comparison.notes | list of strings |
comparison.notesLanguage | string |
comparison.suggestions | list of objects |
comparison.suggestions[].title | string |
comparison.suggestions[].length | number |
comparison.suggestions[].why | string |
comparison.resultsCostUsd | number |
link | address (URL) · required; The page in the app, at the comparison |
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/pages/PAGE_ID/title-compare"const res = await fetch("https://app.monoranks.com/api/v1/sites/SITE_ID/pages/PAGE_ID/title-compare", {
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/pages/PAGE_ID/title-compare",
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/pages/PAGE_ID/title-compare");
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/pages/PAGE_ID/title-compare", { headers: { Authorization: "Bearer mr_ws_…" } });Beispielantwort
{
"page": {
"id": "c7a9e1b3-5d7f-4b9c-8e1a-3c5e7a9b1d2f",
"url": "https://acmebikes.com/learn/what-is-aeo/",
"title": "What is AEO? A simple explanation"
},
"keywordChoices": [
{
"keyword": "what is aeo",
"source": "search_console",
"clicks": 0,
"impressions": 412,
"position": 88.4,
"storedResults": "2026-10-09"
}
],
"comparison": {
"keyword": "what is aeo",
"locationCode": 2840,
"languageCode": "en",
"comparedAt": "2026-10-09T08:12:51.000Z",
"results": {
"date": "2026-10-09",
"source": "live",
"checkUrl": "https://www.google.com/search?q=what%20is%20aeo&num=10&hl=en&gl=US",
"top": [
{
"position": 1,
"domain": "enterprise-search.example",
"url": "https://enterprise-search.example/aeo-guide",
"title": "What is Answer Engine Optimization? Enterprise Guide to AEO",
"length": 59
},
{
"position": 2,
"domain": "searchfuture.example",
"url": "https://searchfuture.example/blog/what-is-aeo",
"title": "What is answer engine optimization (AEO)? Understanding AEO for the future of search",
"length": 84
},
{
"position": 3,
"domain": "aeoguide.example",
"url": "https://aeoguide.example/",
"title": "Answer Engine Optimization: Complete AEO Guide [2026]",
"length": 53
},
{
"position": 4,
"domain": "marketingdocs.example",
"url": "https://marketingdocs.example/aeo",
"title": "What Is Answer Engine Optimization (AEO)? A Complete Guide",
"length": 58
},
{
"position": 5,
"domain": "aisearchtools.example",
"url": "https://aisearchtools.example/learn/aeo",
"title": "Show Up in AI Search with Answer Engine Optimization (AEO)",
"length": 58
}
]
},
"ours": {
"title": "What is AEO? A simple explanation",
"length": 33,
"position": null,
"positionSource": null
},
"findings": [
{
"key": "length",
"values": {
"ours": 33,
"min": 53,
"max": 84
}
},
{
"key": "phrase",
"values": {
"phrase": "answer engine optimization",
"count": 5,
"n": 5
}
},
{
"key": "phrase",
"values": {
"phrase": "guide",
"count": 3,
"n": 5
}
},
{
"key": "farDown",
"values": {
"position": 0
}
}
],
"notes": [
"Every top result spells out \"Answer Engine Optimization\"; your title only says \"AEO\", so people who search the full name do not see their words."
],
"notesLanguage": "en",
"suggestions": [
{
"title": "What is AEO? Answer Engine Optimization Explained",
"length": 49,
"why": "Keeps your plain question and spells out the full name people search for."
},
{
"title": "What is AEO (Answer Engine Optimization)? A Simple Guide",
"length": 56,
"why": "Adds the full name and the word guide that most top results use, in your simple voice."
}
],
"resultsCostUsd": 0.002
},
"link": "https://app.monoranks.com/sites/3f6c2a1e-8b4d-4c7a-9e21-5d0b7a6f4c13/pages/c7a9e1b3-5d7f-4b9c-8e1a-3c5e7a9b1d2f#title-compare"
}{
"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": "Page not found. Use a page_id from page_findings or list_pages, or the exact crawled url."
}
}{
"error": {
"code": "rate_limited",
"message": "More than 1200 requests this hour for this key."
}
}Der MCP-Server macht dasselbe mit dem Tool title_compare.