Documentación para desarrolladores

Preparación para IA

GET/sites/{siteId}/geo
Permiso
ai:read
Herramienta MCP
geo_access

AI crawler access, llms.txt and entity signals from the last audit.

Las descripciones vienen del documento OpenAPI y están en inglés.

Parámetros

NombreDóndeDetalles
siteIdObligatoriorutastringWebsite id, from GET /sites.

Respuesta

200 · application/json

CampoDetalles
checkedAtstring or null · required; When it was last checked
robotsTxtok | missing | error | · required; What /robots.txt answered
crawlerslist of object · required
crawlers[].botstring · required; Crawler user agent
crawlers[].ownerstring · required; Company behind it
crawlers[].purposestring · required; What it is used for
crawlers[].kindtraining | search | both · required; What the crawler feeds: model training, AI search answers, or both
crawlers[].allowedtrue or false or null · required; robots.txt lets it read the home page; null when robots.txt could not be read
crawlers[].rulegroup | default | none · required; group: a robots.txt rule names this crawler; default: the * rules apply; none: no rule applies
llmsTxtobject or null · required
llmsTxt.presenttrue or false · required; A text file is at /llms.txt
llmsTxt.urlstring · required; Address read
llmsTxt.statusinteger or null · required; HTTP status
llmsTxt.bytesinteger · required; Size in bytes
llmsTxt.checkedAtstring or null · required; When it was read
entityobject or null · required; Who the website is, as AI assistants can read it
entity.organizationSchematrue or false · required; An Organization schema is on the website
entity.organizationNamestring or null · required; Name in that schema
entity.sameAslist of string · required; Profiles the schema links (sameAs)
entity.aboutPagestring or null · required; Path of the About page
entity.contactPagestring or null · required; Path of the Contact page
entity.napAgreestrue or false or null · required; Name, address and phone in the schema match the contact page; null: nothing to compare
notestring · required; How to read the fields
linkaddress (URL) · required; The AI readiness screen in the app

Errores

EstadoSignificado
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.
503Switched 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/geo"

Respuesta de ejemplo

{
  "checkedAt": "2026-10-04T02:18:44.000Z",
  "robotsTxt": "ok",
  "crawlers": [
    {
      "bot": "GPTBot",
      "owner": "OpenAI",
      "purpose": "Training data for OpenAI models",
      "kind": "training",
      "allowed": false,
      "rule": "group"
    },
    {
      "bot": "OAI-SearchBot",
      "owner": "OpenAI",
      "purpose": "ChatGPT search results and citations",
      "kind": "search",
      "allowed": true,
      "rule": "default"
    },
    {
      "bot": "ChatGPT-User",
      "owner": "OpenAI",
      "purpose": "Pages a ChatGPT user asks about, fetched live",
      "kind": "search",
      "allowed": true,
      "rule": "default"
    },
    {
      "bot": "ClaudeBot",
      "owner": "Anthropic",
      "purpose": "Training data for Claude models",
      "kind": "training",
      "allowed": true,
      "rule": "default"
    },
    {
      "bot": "Claude-SearchBot",
      "owner": "Anthropic",
      "purpose": "Improves the quality of Claude's search results",
      "kind": "search",
      "allowed": true,
      "rule": "default"
    },
    {
      "bot": "Claude-User",
      "owner": "Anthropic",
      "purpose": "Pages a Claude user asks about, fetched live",
      "kind": "search",
      "allowed": true,
      "rule": "default"
    },
    {
      "bot": "PerplexityBot",
      "owner": "Perplexity",
      "purpose": "Perplexity search index and citations",
      "kind": "search",
      "allowed": true,
      "rule": "default"
    },
    {
      "bot": "Google-Extended",
      "owner": "Google",
      "purpose": "Gemini training and grounding (not Google Search)",
      "kind": "training",
      "allowed": true,
      "rule": "default"
    },
    {
      "bot": "Applebot-Extended",
      "owner": "Apple",
      "purpose": "Apple Intelligence training",
      "kind": "training",
      "allowed": true,
      "rule": "default"
    },
    {
      "bot": "CCBot",
      "owner": "Common Crawl",
      "purpose": "Open crawl used to train many models",
      "kind": "training",
      "allowed": false,
      "rule": "group"
    },
    {
      "bot": "Bytespider",
      "owner": "ByteDance",
      "purpose": "ByteDance models",
      "kind": "training",
      "allowed": false,
      "rule": "group"
    },
    {
      "bot": "meta-externalagent",
      "owner": "Meta",
      "purpose": "Meta AI training and product indexing",
      "kind": "both",
      "allowed": true,
      "rule": "default"
    },
    {
      "bot": "Amazonbot",
      "owner": "Amazon",
      "purpose": "Improves Amazon products and may train Amazon AI models",
      "kind": "both",
      "allowed": true,
      "rule": "default"
    }
  ],
  "llmsTxt": {
    "present": false,
    "url": "https://acmebikes.com/llms.txt",
    "status": 404,
    "bytes": 0,
    "checkedAt": "2026-10-04T02:18:44.000Z"
  },
  "entity": {
    "organizationSchema": true,
    "organizationName": "Acme Bikes",
    "sameAs": [
      "https://www.instagram.com/acmebikes",
      "https://www.youtube.com/@acmebikes"
    ],
    "aboutPage": "/about/",
    "contactPage": "/contact/",
    "napAgrees": true
  },
  "note": "From the last audit, or the last check after MonoRanks wrote crawler rules or llms.txt through WordPress.",
  "link": "https://app.monoranks.com/sites/3f6c2a1e-8b4d-4c7a-9e21-5d0b7a6f4c13/geo"
}

El servidor MCP hace lo mismo con la herramienta geo_access.