Site Audit
Jump to Basic docBasic doc
Jump to About Site Audit APIAbout Site Audit API
The Site Audit API lets you automatically crawl websites, identify technical SEO issues, and retrieve structured reports about site health and performance. With this API, you can run new audits, monitor ongoing crawl progress, and access detailed reports on errors, warnings, and notices .
Jump to MethodsMethods
The Site Audit API methods require you to replace the
{ID}placeholder in the method URL with your project ID. Learn how to get your project ID ›
The Site Audit API methods are divided into two groups:
- Management
- Reports
Management
Allows you to enable the Site Audit tool and edit an existing Site Audit campaign.
https://api.semrush.com/management/v1/projects/{ID}/siteauditReports
A set of reports about your product.
https://api.semrush.com/reports/v1/projects/{ID}/siteauditJump to FiltersFilters
To apply a filter to a report, add the filter parameter with a URL-encoded string.
[+-]|field|operator|value1;...;valueN+|source_url|Co|semrush;site_auditIf you want to apply a number of filters, keep adding the filter parameter.
https://api.semrush.com/reports/v1/projects/{ID}/siteaudit/snapshot/{snapshotId}/issue/{issueId}?filter={filter1}&filter={filter2}&filter={filter3}Jump to Issue IDsIssue IDs
Jump to Enable Site Audit toolEnable Site Audit tool
Price: 100 API units per request
This request lets you enable the Site Audit tool for a project to schedule audits, include or exclude pages from the crawl, and set the number of pages to crawl.
About the Site Audit configuration ›
Jump to EndpointEndpoint
Request Parameters
domainRequired
Value/Type: string
scheduleDay
Specifies the day of the week (from 1 to 7) for periodic execution; use 0 for manual start.
Value/Type: integer
notify
Value/Type: boolean
allow
Allow directive in the project.Value/Type: array of strings
disallow
Disallow directive in the project.Value/Type: array of strings
pageLimitRequired
Value/Type: integer
userAgentType
The type of user agent. Available values:
8: SiteAuditBot Mobile
7: SiteAuditBot Desktop
3: GoogleBot Mobile
2: GoogleBot Desktop
9: OpenAI-Search
Value/Type: integer
removedParameters
Value/Type: array of strings
crawlSubdomains
Specifies whether to crawl subdomains of the selected domain. Available values:
true: SemrushBot will crawl the selected domain and its subdomains.
false: SemrushBot will crawl only the selected domain.
Value/Type: boolean
respectCrawlDelay
Specifies whether SemrushBot will follow the Crawl-delay directive in robots.txt. Available values:
true: SemrushBot will follow the Crawl-delay directive in robots.txt.
false: SemrushBot will crawl pages with a one-second interval.
Value/Type: boolean
{
"domain": "www.mysite.com",
"scheduleDay": 1,
"notify": false,
"allow": ["", "", ""],
"disallow": ["", "", ""],
"pageLimit": 1000,
"userAgentType": 2,
"removedParameters": ["", "", ""],
"crawlSubdomains": true,
"respectCrawlDelay": false
}Jump to Edit campaignEdit campaign
Price: 100 API units per request
This request lets you edit an existing Site Audit campaign to reschedule audits and change the scope of pages to crawl and the number of pages.
About the Site Audit configuration ›
Jump to EndpointEndpoint
Request Parameters
domainRequired
Value/Type: string
scheduleDay
Specifies the day of the week (from 1 to 7) for periodic execution; use 0 for manual start.
Value/Type: integer
notify
Value/Type: boolean
allow
Allow directive in the project.Value/Type: array of strings
disallow
Disallow directive in the project.Value/Type: array of strings
pageLimitRequired
Value/Type: integer
userAgentType
The type of user agent. Available values:
8: SiteAuditBot Mobile
7: SiteAuditBot Desktop
3: GoogleBot Mobile
2: GoogleBot Desktop
9: OpenAI-Search
Value/Type: integer
removedParameters
Value/Type: array of strings
crawlSubdomains
Specifies whether to crawl subdomains of the selected domain. Available values:
true: SemrushBot will crawl the selected domain and its subdomains.
false: SemrushBot will crawl only the selected domain.
Value/Type: boolean
respectCrawlDelay
Specifies whether SemrushBot will follow the Crawl-delay directive in robots.txt. Available values:
true: SemrushBot will follow the Crawl-delay directive in robots.txt.
false: SemrushBot will crawl pages with a one-second interval.
Value/Type: boolean
jsRendering
Specifies whether SemrushBot will render JavaScript files during crawling. Available values:
RENDER_ALL: Allows the bot to render JavaScript files.
DISABLED: The bot will crawl only the HTML files.
Value/Type: string
{
"domain": "www.mysite.com",
"scheduleDay": 1,
"notify": false,
"allow": ["", "", ""],
"disallow": ["", "", ""],
"pageLimit": 1000,
"userAgentType": 2,
"removedParameters": ["", "", ""],
"crawlSubdomains": true,
"respectCrawlDelay": false
}Jump to Get list of campaign snapshotsGet list of campaign snapshots
Price: 100 API units per request
This request lets you get a list of previous audit IDs along with their completion dates.
Jump to EndpointEndpoint
Request Parameters
snapshot_id
Value/Type: string
finish_date
The timestamp in the Unix format showing when the last audit was completed, such as 1410178856809.
Value/Type: integer
{
"snapshots": [
{
"snapshot_id": "540d9e420cf2e0c1006966e3",
"finish_date": 1410178856809
},
{
"snapshot_id": "54102bd20cf2e0c100696a10",
"finish_date": 1410345954754
}
]
}Jump to Get text descriptions about issuesGet text descriptions about issues
Price: 100 API units per request
This request lets you get a detailed explanation of an issue and its cause. That helps you understand why an issue could be harmful to a website and how it can be fixed.
About the Site Audit Issues report ›
Jump to EndpointEndpoint
Request Parameters
title
Value/Type: string
title_page
Value/Type: string
url_column
Value/Type: string
info_column
Value/Type: string
{
"issues": [
{
"id": 14,
"title": "Broken external images",
"title_page": "##count## external images are broken",
"url_column": "Image URL",
"info_column": "HTTP Code"
}
]
}Jump to Run auditRun audit
Price: 100 API units per request
This request lets you run an audit.
Jump to EndpointEndpoint
Request Parameters
snapshot_id
Value/Type: string
{
"snapshot_id": "54102d92e4b0f889a040c9c8"
}Jump to Get information about campaignGet information about campaign
Price: 100 API units per request
This request provides you with a summary of the most recent audit. It includes information on the number of issues found, such as Errors, Warnings, and Notices, as well as the number of checks that passed or failed. Also, it shows the number of pages crawled and the pages yet to be crawled, along with the date of the last audit.
About the Site Audit Issues report ›
Jump to EndpointEndpoint
Request Parameters
id
Value/Type: integer
url
Value/Type: string
name
Value/Type: string
status
RUNNING, FINISHED, CHECKING, or SAVING.Value/Type: string
errors
Value/Type: integer
warnings
Value/Type: integer
notices
Value/Type: integer
broken
Value/Type: integer
blocked
Value/Type: integer
redirected
Value/Type: integer
healthy
Value/Type: integer
haveIssues
Value/Type: integer
haveIssuesDelta
The difference in the number of issues found during the previous and last audits.
Value/Type: integer
defects
The list of issue IDs detected on crawled pages and the number of times each issue was detected.
Value/Type: object
markups
The number of markups detected on crawled pages. Supported markups are Twitter Card, Open Graph, Schema.org, and microformats.
Value/Type: object
depths
The number of clicks required for SemrushBot to reach the analyzed page from the homepage.
Value/Type: object
crawlSubdomains
Specifies whether to crawl subdomains of the selected domain. Available values:
true: SemrushBot will crawl the selected domain and its subdomains.
false: SemrushBot will crawl only the selected domain.
Value/Type: boolean
respectCrawlDelay
Specifies whether SemrushBot will follow the Crawl-delay directive in robots.txt. Available values:
true: SemrushBot will follow the Crawl-delay directive in robots.txt.
false: SemrushBot will crawl pages with a one-second interval.
Value/Type: boolean
user_agent_type
The type of user agent. Available values:
8: SiteAuditBot Mobile
7: SiteAuditBot Desktop
3: GoogleBot Mobile
2: GoogleBot Desktop
9: OpenAI-Search
Value/Type: integer
last_audit
Value/Type: integer
last_failed_audit
Value/Type: integer
next_audit
Value/Type: integer
running_pages_crawled
Value/Type: integer
running_pages_limit
Value/Type: integer
pages_crawled
Value/Type: integer
pages_limit
Value/Type: integer
total_checks
Value/Type: integer
errors_delta
The difference in the number of errors found during the previous and last audits.
Value/Type: integer
warnings_delta
The difference in the number of warnings found during the previous and last audits.
Value/Type: integer
notices_delta
The difference in the number of notices found during the previous and last audits.
Value/Type: integer
mask_allow
Allow directive in the project.Value/Type: array of strings
mask_disallow
Disallow directive in the project.Value/Type: array of strings
removedParameters
Value/Type: array of strings
excluded_checks
The IDs of issues, such as errors, warnings, and notices, excluded from the audit scope.
Value/Type: array of integers
{
"id": 4594705336925861,
"name": "test",
"url": "semrush.com",
"status": "FINISHED",
"errors": 228,
"warnings": 391,
"notices": 9,
"broken": 0,
"blocked": 0,
"redirected": 2,
"healthy": 1,
"haveIssues": 2,
"haveIssuesDelta": 0,
"defects": {
"109": 2
},
"markups": {
"twitterCard": 0,
"openGraph": 0,
"schemaOrg": 0,
"microfomats": 0
},
"depths": {
"0": 3
},
"crawlSubdomains": true,
"respectCrawlDelay": false,
"user_agent_type": 2,
"last_audit": 1410346398040,
"last_failed_audit": 0,
"next_audit": -1,
"running_pages_crawled": 178,
"running_pages_limit": 500,
"pages_crawled": 178,
"pages_limit": 500,
"total_checks": 22725,
"errors_delta": 0,
"warnings_delta": 0,
"notices_delta": 0,
"mask_allow": [
],
"mask_disallow": [
],
"removedParameters": [
"rr",
"r",
"p"
],
"excluded_checks": null
}Jump to Get information about snapshotGet information about snapshot
Price: 10000 API units per request
This request provides you with an overview of an audit, including the website’s score, issues, and the number of performed checks.
About the Site Audit Issues report ›
Jump to EndpointEndpoint
Request Parameters
snapshot_idRequired
The snapshot ID obtained from the Run audit or Get list of campaign snapshots request response.
Value/Type: string
quality.value
Value/Type: integer
quality.delta
Value/Type: integer
snapshot_id
Value/Type: string
pages_crawled
Value/Type: integer
finish_date
Value/Type: integer
warnings|errors|notices.count
Value/Type: integer
warnings|errors|notices.delta
The difference in the number of issues found during the previous and last audits.
Value/Type: integer
warnings|errors|notices.checks
Value/Type: integer
{
"quality": {
"value": 42,
"delta": 0
},
"errors": [
{
"id": 1,
"count": 4,
"delta": 0,
"checks": 174
},
],
"warnings": [
{
"id": 101,
"count": 2,
"delta": 0,
"checks": 127
},
],
"notices": [
{
"id": 201,
"count": 1,
"delta": 0,
"checks": 127
},
],
"snapshot_id": "54102d92e4b0f889a040c9c8",
"pages_crawled": 178,
"finish_date": 1410346398040
}Jump to Detailed report for issueDetailed report for issue
Price: 100 API units per request
This report provides a description of an issue, when that issue was detected, and the URLs of affected pages. Fetches data for the last snapshot.
About the Site Audit Issues report ›
Jump to EndpointEndpoint
Request Parameters
snapshot_idRequired
The snapshot ID obtained from the Run audit or Get list of campaign snapshots request response.
Value/Type: string
sort
DESCValue/Type: object
page
1Value/Type: integer
limit
10Value/Type: integer
limit
Value/Type: integer
page
Value/Type: integer
total
Value/Type: integer
target_url
The target URL. For example, in the case of a broken link issue, the target URL provided will demonstrate a webpage that returns an error status.
Value/Type: string
page_id
Value/Type: string
source_url
Value/Type: string
https://api.semrush.com/reports/v1/projects/{ID}/siteaudit/snapshot/{snapshotId}/issue/{issueId}?page={page}&filter={filter}&sort={sort}&limit={limit}&key=YOUR_API_KEY{
"limit": 10,
"page": 1,
"total": 101,
"data": [
{
"target_url": "http://semrush.com/errors/404.html",
"page_id": "54102d9e0cf2e0c100696c88",
"source_url": "http://semrush.com"
},
],
"issue_id": 8
}Jump to Get page ID by URLGet page ID by URL
Price: 100 API units per request
This request helps you get an ID of a crawled page.
Jump to EndpointEndpoint
Request Parameters
urlRequired
Value/Type: string
limit
Value/Type: integer, default is 10
page_id
Value/Type: string
total
Value/Type: integer
{
"data": [
{
"url": "http://semrush.com",
"page_id": "54102d9e0cf2e0c100696c88"
},
],
"total": 178
}Jump to Get information about pageGet information about page
Price: 1000 API units per request
This request lets you get information about the page and the list of its issues.
About the Crawled Pages report ›
Jump to EndpointEndpoint
Request Parameters
pageIdRequired
Value/Type: string
title
Value/Type: string
url
Value/Type: string
notices|warnings|errors.data.discovered
Value/Type: integer
notices|warnings|errors.data.info
Value/Type: object
notices|warnings|errors.data.target_url
The target URL. For example, in the case of a broken link issue, the target URL provided will demonstrate a webpage that returns an error status.
Value/Type: string
notices|warnings|errors.total
Value/Type: integer
page_id
Value/Type: string
{
"title": "Web Tutorials • Mike & Associates",
"url": "http://semrush.com",
"notices": [
{
"id": 202,
"data": [
{
"discovered": 1410178856809,
"info": null,
"target_url": "http://%/test.com"
}
],
"total": 8
}
],
"warnings": [
{
"id": 110,
"data": [
{
"discovered": 1410178856809,
"info": null,
"target_url": "http://semrush.com/index_files/html.jpg"
},
],
"total": 200
}
],
"errors": [
{
"id": 8,
"data": [
{
"discovered": 1410178856809,
"info": "503",
"target_url": "http://semrush.com/errors/503.html"
},
],
"total": 101
},
],
"page_id": "54102d9e0cf2e0c100696c88"
}Jump to Get snapshots historyGet snapshots history
Price: 10000 API units per request
Alternative price: 10000 API units by one snapshot
This request lets you see audit results for a selected period.
The request price increases if you get several snapshots in one request. For example, if I run the audit five times and then run the request, it’ll cost you 50,000 API units.
Jump to EndpointEndpoint
Request Parameters
limitRequired
7.Value/Type: integer
offsetRequired
0.Value/Type: integer
quality.value
Value/Type: integer
quality.delta
Value/Type: integer
snapshot_id
Value/Type: string
pages_crawled
Value/Type: integer
finish_date
The timestamp in the Unix format showing when the last audit was completed, such as 1410346398040.
Value/Type: integer
warnings|errors|notices.count
Value/Type: integer
warnings|errors|notices.delta
The difference in the number of issues found during the previous and last audits.
Value/Type: integer
warnings|errors|notices.checks
Value/Type: integer
{
"data": [
{
"quality": {
"value": 42,
"delta": 0
},
"errors": [
{
"id": 1,
"count": 4,
"delta": 0,
"checks": 174
},
],
"warnings": [
{
"id": 101,
"count": 2,
"delta": 0,
"checks": 127
},
],
"notices": [
{
"id": 201,
"count": 1,
"delta": 0,
"checks": 127
},
],
"snapshot_id": "54102d92e4b0f889a040c9c8",
"pages_crawled": 178,
"finish_date": 1410346398040
},
],
"total": 0,
"limit": 0,
"offset": 0
}Last updated: January 29, 2026