Documentación para desarrolladores

Check a page's facts against official sources

POST/sites/{siteId}/pages/{pageId}/claim-check
Permiso
actions:apply
Herramienta MCP
run_claim_check

Check a page's facts against official sources Runs the claim check and stores it, like "Check facts against official sources" in the app: up to 6 checkable claims (names, numbers, dates, what a product supports, legal statements; never opinions), each with its official source (a link the page gives, else the official page on the vendor's, regulator's or standard's own domain). The sources are read for free; each claim is judged only against the source's own sentences, and anything unsure is unverified. The two AI steps count as two AI uses; the same page and sources reuse the earlier answer unless rerun is true. Nothing is written to the website.

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

Parámetros

NombreDóndeDetalles
siteIdObligatoriorutastringWebsite id, from GET /sites.
pageIdObligatoriorutastringPage id, from GET /pages or GET /pages/findings.

Cuerpo de la petición

CampoDetalles
reruntrue or false · Ask the AI again even when the page and its sources did not change
languageen | de | es | fa · Language of the notes; default en
{
  "language": "en"
}

Respuesta

200 · application/json

CampoDetalles
pageobject · required
page.idstring · required
page.urladdress (URL) · required
checkobject · required
check.checkedAtstring
check.pageTextstring
check.linksFoundnumber
check.summaryobject
check.summary.claimsnumber
check.summary.matchesnumber
check.summary.differsnumber
check.summary.unverifiednumber
check.claimslist of objects
check.claims[].claimstring
check.claims[].onPagestring
check.claims[].aboutstring
check.claims[].sourceobject
check.claims[].source.urlstring
check.claims[].source.domainstring
check.claims[].source.fromstring
check.claims[].source.readtrue or false
check.claims[].verdictstring
check.claims[].reason
check.claims[].sourceSaysstring
check.claims[].notestring
check.notesLanguagestring
check.modelstring
costobject · required
cost.sourcesTriedinteger · required; Official pages tried (read for free)
cost.sourcesReadinteger · required; Official pages that could be read
cost.aiReusedtrue or false · required; The AI answers were reused for the same page and sources (no AI use counted)
linkaddress (URL) · required

Errores

EstadoSignificado
400Bad request. Codes: missing_argument.
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.
422The request cannot be carried out. Codes: no_text.
429A limit is reached. rate_limited: too many requests this hour for this key. Codes: rate_limited, limit.
502An outside service did not answer. Codes: failed.

Petición de ejemplo

curl -X POST \
  -H "Authorization: Bearer mr_ws_…" \
  -H "Content-Type: application/json" \
  -d '{"language":"en"}' \
  "https://app.monoranks.com/api/v1/sites/SITE_ID/pages/PAGE_ID/claim-check"

Respuesta de ejemplo

{
  "page": {
    "id": "c7a9e1b3-5d7f-4b9c-8e1a-3c5e7a9b1d2f",
    "url": "https://acmebikes.com/guides/ga4-privacy/"
  },
  "check": {
    "checkedAt": "2026-10-10T09:14:02.000Z",
    "pageText": "live",
    "linksFound": 3,
    "summary": {
      "claims": 3,
      "matches": 1,
      "differs": 1,
      "unverified": 1
    },
    "claims": [
      {
        "claim": "GA4 offers an option for IP anonymization",
        "onPage": "GA4 offers an option for IP anonymization, so switch it on first.",
        "about": "Google Analytics 4",
        "source": {
          "url": "https://support.google.com/analytics/answer/2763052",
          "domain": "support.google.com",
          "from": "suggested",
          "read": true
        },
        "verdict": "differs",
        "reason": null,
        "sourceSays": "In Google Analytics 4, IP masking is not necessary since IP addresses are not logged or stored.",
        "note": "Google says GA4 does not log or store IP addresses, so IP masking is not needed."
      },
      {
        "claim": "Consent Mode lets Google model conversions when visitors decline cookies",
        "onPage": "Consent Mode lets Google model conversions when visitors decline cookies.",
        "about": "Google Consent Mode",
        "source": {
          "url": "https://developers.google.com/tag-platform/security/concepts/consent-mode",
          "domain": "developers.google.com",
          "from": "page_link",
          "read": false
        },
        "verdict": "unverified",
        "reason": "not_read",
        "sourceSays": null,
        "note": null
      },
      {
        "claim": "GA4 keeps user-level data for at most 14 months",
        "onPage": "GA4 keeps user-level data for at most 14 months.",
        "about": "Google Analytics 4",
        "source": {
          "url": "https://support.google.com/analytics/answer/7667196",
          "domain": "support.google.com",
          "from": "page_link",
          "read": true
        },
        "verdict": "matches",
        "reason": null,
        "sourceSays": "For GA4 properties, user-level data can be retained for 2 months or 14 months.",
        "note": "Google lists 14 months as the longest retention for user-level data."
      }
    ],
    "notesLanguage": "en",
    "model": "claude-sonnet-4-6"
  },
  "cost": {
    "sourcesTried": 3,
    "sourcesRead": 2,
    "aiReused": false
  },
  "link": "https://app.monoranks.com/sites/3f6c2a1e-8b4d-4c7a-9e21-5d0b7a6f4c13/pages/c7a9e1b3-5d7f-4b9c-8e1a-3c5e7a9b1d2f#claim-check"
}

El servidor MCP hace lo mismo con la herramienta run_claim_check.