Get a site audit
Read the newest site audit of a website, or one by id, with its progress, score and issues grouped by type.
https://api.rankparse.com/v1/site-auditFreeAPI keyReturns a site audit of one website: its status and progress, a score, and the issues found grouped by type, each with its severity, a plain explanation, how to fix it, how many pages are affected and how that changed since the previous completed audit. It reads stored results and never crawls.
To see the pages behind an issue, use List audit issues. To start one, use Run a site audit.
Query parameters
site_idstringrequiredA website id from Websites. A missing, unknown, archived or other workspace's id returns 404 site_audit_site_not_found.
audit_idstringAn audit id from history or Run a site audit. Defaults to the newest audit of the website. An id that is not one of this website's audits returns 404 site_audit_not_found.
Response
site_idstringThe website asked for.
hoststringThe website's canonical host.
eligiblebooleanfalse when the website cannot be audited. audit is then null and issues and history are empty.
reasonstring | nullnull when eligible. not_verified when no verified Google or Bing property is attached, plan_required when the workspace is on the Free plan. See Eligibility.
max_pagesintegerThe page budget a new audit would get on this plan. Absent when not eligible.
auditobject | nullThe audit. null for an eligible website that has never been audited.
Show propertiesHide properties
audit_idstringFor example aud_Qm3x9bT2kZ7vLw1PdRf8N.
statusstringqueued, running, completed or failed.
requested_atintegerUnix milliseconds.
started_atinteger | nullWhen the first chunk started, in Unix milliseconds. null while queued.
finished_atinteger | nullWhen the audit completed or failed. null while it runs.
max_pagesintegerThe page budget of this audit.
crawled_hoststring | nullThe host that was crawled: where the home page landed. null before the crawl starts.
sitemap_foundboolean | nullWhether an XML sitemap was found. null before the crawl starts.
pages_crawledintegerPages fetched so far (answered, failed or blocked by robots.txt).
pages_discoveredintegerPages found so far, fetched or not. Both numbers grow while the audit runs, so pages_crawled / pages_discovered is a progress indicator, not a percentage of the final total.
page_limit_reachedbooleantrue when the page budget stopped the crawl. The counts then cover only the crawled pages.
scoreinteger | null0 to 100: the share of checked pages with no error-level issue. null until the audit completes. See Score.
error_codestring | nullSet when status is failed. See Statuses.
summaryobject | nullSet when the audit completes: pages_checked, pages_with_errors, by_severity (counts of error, warning and notice issues), by_issue (a count per issue id), issues_found and issues_stored (these differ only when more than 5,000 issues were found).
issuesarrayOne entry per issue type found, errors first, then by count.
Show propertiesHide properties
issue_idstringFor example broken_internal_link. See the catalog.
severitystringerror, warning or notice.
titlestringWhat the issue is, in a short sentence.
fixstringHow to fix it, in plain language.
countintegerPages affected (or 1 for a website-level issue such as no_sitemap).
change_since_previousinteger | nullThis audit's count minus the previous completed audit's. Negative means fewer. null when there is no previous audit.
resolved_since_previousarrayIssue types the previous completed audit had and this one does not, each { issue_id, title, was } where was is the old count. Empty when there is no previous audit.
previous_auditobject | null{ audit_id, score, finished_at } of the completed audit used for the comparison.
historyarrayThe kept audits, newest first (at most 3): { audit_id, status, score, pages_crawled, requested_at, finished_at }.
Behavior and limits
- Cost: 0 credits. It reads stored results only.
- While an audit runs:
audit.statusisqueuedorrunning,scoreandsummaryarenull, andissuesis empty until it completes. - Permissions: needs the
site.readcapability. - Rate limit: 60 requests per minute per key. See Rate limiting.
Errors
| HTTP | Code | When |
|---|---|---|
| 401 | invalid_api_key | Missing, invalid or revoked API key. |
| 403 | capability_missing | Your workspace role cannot read websites. |
| 404 | site_audit_site_not_found | site_id is missing or not a website in your workspace. |
| 404 | site_audit_not_found | audit_id is not an audit of this website. |
| 429 | rate_limited | More than 60 requests in a minute. |
See Errors for the error body format.
Related
MCP tool: get_site_audit (accepts site_id and audit_id).