List issues
GET
/sites/{siteId}/issues- Scope
issues:read- MCP tool
list_issues
List issues The same list as the app's Issues screen, newest first (at most 500). Keyword tasks (KW-*) are left out here and listed under /actions.
Parameters
| Name | In | Details |
|---|---|---|
siteIdRequired | path | stringWebsite id, from GET /sites. |
status | query | stringComma-separated statuses: open, in_progress, recheck_queued, resolved, ignored, reopened. Default: open, reopened, in_progress, recheck_queued. |
Response
200 · application/json
| Field | Details |
|---|---|
issues | list of values · required |
issues[].id | string |
issues[].ruleId | string |
issues[].title | string |
issues[].category | string |
issues[].severity | string |
issues[].confidence | string |
issues[].status | string |
issues[].affectedPages | number |
issues[].template | string |
issues[].summary | string |
issues[].firstSeen | string |
issues[].lastSeen | string |
issues[].lastRecheck | object |
issues[].lastRecheck.at | string |
issues[].lastRecheck.present | number |
issues[].lastRecheck.checked | number |
issues[].lastRecheck.crawlId | string |
issues[].lastRecheck.passed | true or false |
issues[].link | string |
Errors
| Status | Meaning |
|---|---|
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. |
Example request
curl \
-H "Authorization: Bearer mr_ws_…" \
"https://app.monoranks.com/api/v1/sites/SITE_ID/issues"const res = await fetch("https://app.monoranks.com/api/v1/sites/SITE_ID/issues", {
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/issues",
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/issues");
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/issues", { headers: { Authorization: "Bearer mr_ws_…" } });Example response
{
"issues": [
{
"id": "b2e4c6a8-1d3f-4a5b-9c7d-0e2f4a6b8c1d",
"ruleId": "SEO-ONP-011",
"title": "Meta description missing on 3 pages (/products/*)",
"category": "On-page",
"severity": "warning",
"confidence": "high",
"status": "open",
"affectedPages": 3,
"template": "Template: /products/*",
"summary": "3 pages have no meta description. Google shows a snippet cut from the page instead.",
"firstSeen": "2026-09-20T02:40:03.000Z",
"lastSeen": "2026-10-04T02:41:12.000Z",
"lastRecheck": {
"at": "2026-10-02T09:12:44.000Z",
"present": 3,
"checked": 3,
"crawlId": "e5a7c9e1-3f5b-4d7f-9b1d-5f7b9d1f3b5c",
"passed": false
},
"link": "https://app.monoranks.com/sites/3f6c2a1e-8b4d-4c7a-9e21-5d0b7a6f4c13/issues/b2e4c6a8-1d3f-4a5b-9c7d-0e2f4a6b8c1d"
}
]
}{
"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."
}
}The MCP server does the same with the tool list_issues.