Listar brechas de respuesta
GET
/sites/{siteId}/ai-visibility/gaps- Permiso
ai:read- Herramienta MCP
answer_gaps
Questions where AI answers name others, never this website Active questions whose answers in the window never named the website while naming or linking other sites. A good start for a content brief.
Las descripciones vienen del documento OpenAPI y están en inglés.
Parámetros
| Nombre | Dónde | Detalles |
|---|---|---|
siteIdObligatorio | ruta | stringWebsite id, from GET /sites. |
weeks | query | integerdefault 4, min 1, max 12Sampling weeks back from the current one, 1 to 12. |
Respuesta
200 · application/json
| Campo | Detalles |
|---|---|
weeks | integer · required; Weeks read |
gaps | list of object · required |
gaps[].promptId | string · required; Question id |
gaps[].prompt | string · required; The question |
gaps[].answers | integer · required; Answers read |
gaps[].citedOthers | list of string · required; The five sites named most often |
gaps[].namedUs | integer · required; Answers that named the website; always 0 here |
note | string · required; How to read the list |
link | address (URL) · required; The AI readiness screen in the app |
Errores
| Estado | Significado |
|---|---|
400 | Bad request. Codes: bad_weeks. |
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. |
503 | Switched off for now. Codes: feature_off. |
Petición de ejemplo
curl \
-H "Authorization: Bearer mr_ws_…" \
"https://app.monoranks.com/api/v1/sites/SITE_ID/ai-visibility/gaps"const res = await fetch("https://app.monoranks.com/api/v1/sites/SITE_ID/ai-visibility/gaps", {
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/ai-visibility/gaps",
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/ai-visibility/gaps");
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/ai-visibility/gaps", { headers: { Authorization: "Bearer mr_ws_…" } });Respuesta de ejemplo
{
"weeks": 4,
"gaps": [
{
"promptId": "3e5a7c9e-1a3c-4e5a-8c7e-1a3c5e7a9c1e",
"prompt": "Which e-bike brands have the best warranty?",
"answers": 8,
"citedOthers": [
"trekbikes.com",
"specialized.com",
"rei.com"
],
"namedUs": 0
}
],
"note": "Active questions whose answers in the window never named the website while naming or linking others.",
"link": "https://app.monoranks.com/sites/3f6c2a1e-8b4d-4c7a-9e21-5d0b7a6f4c13/geo"
}{
"error": {
"code": "bad_weeks",
"message": "weeks must be a whole number from 1 to 12."
}
}{
"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."
}
}{
"error": {
"code": "feature_off",
"message": "AI visibility is switched off for now."
}
}El servidor MCP hace lo mismo con la herramienta answer_gaps.