get_page_audit
get_page_audit MCP tool: fetch a single Page Audit by id. Minimal payload while running, full report once COMPLETED.
Updated 2026-05-07
get_page_audit
get_page_audit fetches a single Page Audit by id. It's the polling endpoint of the audit lifecycle: while PENDING/GENERATING, the response is intentionally minimal so the agent doesn't waste tokens. On COMPLETED, the response includes the full summary (totalModifications, geoScore, …) and modifications (the structured diff to apply on the page).
When to use
After calling run_page_audit, poll this tool until status: "COMPLETED". Typical interval: 10–20 seconds. The audit is bound by an LLM generation, not network latency, so polling more aggressively does not speed things up.
Input
| Field | Type | Description |
|---|---|---|
projectId |
string (CUID) | Project scope. The tool returns audit_not_found if the audit doesn't belong to this project. |
auditId |
string (CUID) | The id returned by run_page_audit. |
Response
Still running
{
"ok": true,
"auditId": "clx_rep_42",
"status": "GENERATING",
"pageUrl": "https://example.com/features/integrations",
"pageTitle": "Native integrations — Example",
"isComplete": false,
"message": "Audit still running. Typical completion: 30-90 seconds. Poll this tool again.",
"createdAt": "2026-05-05T09:00:00.000Z",
"updatedAt": "2026-05-05T09:00:30.000Z"
}
Completed
{
"ok": true,
"auditId": "clx_rep_42",
"status": "COMPLETED",
"pageUrl": "https://example.com/features/integrations",
"pageTitle": "Native integrations — Example",
"keyword": "Native integrations — Example",
"isComplete": true,
"summary": {
"totalModifications": 12,
"geoScore": 71,
"...": "feature-specific summary fields"
},
"modifications": [ /* structured list of recommended changes */ ],
"totalCostUsd": 0.083,
"createdAt": "2026-05-05T09:00:00.000Z",
"updatedAt": "2026-05-05T09:01:13.000Z"
}
Failed
{
"ok": true,
"auditId": "clx_rep_42",
"status": "FAILED",
"pageUrl": "https://example.com/features/integrations",
"isComplete": true,
"errorMessage": "Page returned 503; could not parse content."
}
Not found
{
"ok": false,
"error": "audit_not_found",
"message": "No page audit with this id is attached to the given project. Verify the auditId returned by run_page_audit."
}
Tips and patterns
- Branch on
isComplete, not onstatus. BothCOMPLETEDandFAILEDare terminal —isComplete: trueflags both. - Don't render the modifications array verbatim to the user. It's structured for downstream rendering: walk it and output the changes that matter for the page in plain language.
- Cap polling. After ~3 minutes without
isComplete: true, treat the audit as stuck and surface the issue rather than continuing to poll forever.
Related tools
- run_page_audit — queue the audit this tool polls.
- list_page_audits — list all audits in the project (newest first) without polling individual ids.