Ver una auditoría
GET
/sites/{siteId}/audits/{auditId}- Permiso
sites:read- Herramienta MCP
audit_status
Get one audit's status Also answers for the recheck an already_running error named. pagesCrawled moves while it runs.
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. |
auditIdObligatorio | ruta | stringAudit id, from POST /sites/{siteId}/audits or GET /sites/{siteId}/audits. |
Respuesta
200 · application/json
| Campo | Detalles |
|---|---|
id | string · required; Audit id |
kind | audit | recheck | hook · required; audit: full audit; recheck: rechecks issues; hook: started by a deploy hook |
status | queued | running | done | failed | cancelled · required; Where the audit stands |
stage | robots | crawl | analyze | done · required; Step it is at |
pagesCrawled | integer · required; Pages crawled so far |
pagesDiscovered | integer · required; Pages found so far |
pageBudget | integer · required; Most pages this audit crawls |
timeLimitMinutes | integer · required; Time limit, in minutes |
cappedByPlan | true or false · required; True when the website's own budget was above the plan's pages per audit, so the audit got the plan's limit |
coverage | object or null · required; Sitemap coverage; null when no sitemap is known |
coverage.sitemapUrls | integer · required; Addresses in the sitemap |
coverage.sitemapCrawled | integer · required; Of those, crawled |
coverage.percent | integer · required; Share crawled, 0–100 |
partialReason | string or null · required; Why it stopped early: page budget reached, page budget of your plan reached, time budget reached or cancelled; null when it covered everything it found |
issuesFound | integer or null · required; Issues found; null until it is done |
startedBy | person | schedule · required; Started by a person (app, API or MCP) or the weekly schedule |
queuedAt | string or null · required; When it was queued |
startedAt | string or null · required; When it started |
finishedAt | string or null · required; When it finished |
error | string or null · required; Why it failed |
link | string · required; The Audit screen in the app |
Errores
| Estado | Significado |
|---|---|
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. |
Petición de ejemplo
curl \
-H "Authorization: Bearer mr_ws_…" \
"https://app.monoranks.com/api/v1/sites/SITE_ID/audits/AUDIT_ID"const res = await fetch("https://app.monoranks.com/api/v1/sites/SITE_ID/audits/AUDIT_ID", {
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/audits/AUDIT_ID",
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/audits/AUDIT_ID");
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/audits/AUDIT_ID", { headers: { Authorization: "Bearer mr_ws_…" } });Respuesta de ejemplo
{
"id": "d4f6a8c0-2e4a-4c6e-8a0c-4e6a8c0e2a4b",
"kind": "audit",
"status": "done",
"stage": "done",
"pagesCrawled": 412,
"pagesDiscovered": 418,
"pageBudget": 500,
"timeLimitMinutes": 30,
"cappedByPlan": false,
"coverage": {
"sitemapUrls": 398,
"sitemapCrawled": 391,
"percent": 98
},
"partialReason": null,
"issuesFound": 23,
"startedBy": "schedule",
"queuedAt": "2026-10-04T02:00:01.000Z",
"startedAt": "2026-10-04T02:00:04.000Z",
"finishedAt": "2026-10-04T02:41:12.000Z",
"error": null,
"link": "https://app.monoranks.com/sites/3f6c2a1e-8b4d-4c7a-9e21-5d0b7a6f4c13/audit"
}{
"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": "No audit with this id for this website."
}
}{
"error": {
"code": "rate_limited",
"message": "More than 1200 requests this hour for this key."
}
}El servidor MCP hace lo mismo con la herramienta audit_status.