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 .

Learn more about Site Audit ›

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.

Base URL
HTTP
https://api.semrush.com/management/v1/projects/{ID}/siteaudit

Reports

A set of reports about your product.

Base URL
HTTP
https://api.semrush.com/reports/v1/projects/{ID}/siteaudit

Jump to FiltersFilters

To apply a filter to a report, add the filter parameter with a URL-encoded string.

Filter string format
HTTP
[+-]|field|operator|value1;...;valueN
Parameter
Values
Description
sign
”+” or ”-“
Include or exclude
field
string
Filter by the specified field
operation
Bw, Ew, Eq, Co
Bw - begins withEw - ends withEq - equalsCo - contains
values
string
List of values separated by ’;’
Example filter string
HTTP
+|source_url|Co|semrush;site_audit

If you want to apply a number of filters, keep adding the filter parameter.

Example
HTTP
https://api.semrush.com/reports/v1/projects/{ID}/siteaudit/snapshot/{snapshotId}/issue/{issueId}?filter={filter1}&filter={filter2}&filter={filter3}

Jump to Issue IDsIssue IDs

Value
Description
1
5xx errors
2
4xx errors
3
Title tag is missing or empty
4
Blocked from crawling
6
Duplicate title tag
7
Duplicate content
8
Broken internal links
9
Pages not crawled
10
DNS resolution issue
11
We couldn’t open the page’s URL
13
Broken internal images
15
Duplicate meta descriptions
16
Invalid robots.txt format
17
Invalid sitemap.xml format
18
Incorrect pages found in sitemap.xml
19
www resolve issues
20
Viewport not configured
21
Large HTML page size
22
Missing canonical tags in AMP pages
26
Non-secure pages
27
Certificate Expiration
28
Old security protocol version
29
Certificate registered to incorrect name
30
Issues with mixed content
32
Neither canonical URL nor 301 redirect from HTTP homepage
33
Redirect chains and loops
34
AMP Pages with HTML Issues
35
AMP Pages with Style and Layout Issues
36
AMP Pages with Templating Issues
38
Broken canonical URLs
39
Multiple canonical URLs
40
Meta refresh redirects
41
Broken internal JavaScript and CSS files
42
Insecure encryption algorithms
43
Sitemap file too large
44
Malformed links
45
Structured data that contains markup errors
46
Viewport width not set
111
Slow page load speed
12
Broken external links
14
Broken external images
31
Links lead to HTTP pages for HTTPS site
101
Title element is too short
102
Title element is too long
103
Missing h1
104
Multiple h1 tags
105
Duplicate content in h1 and title
106
Missing meta description
108
Too many on-page links
109
Temporary redirects
110
Missing ALT attributes
112
Low text to HTML ratio
113
Too many URL parameters
114
Missing hreflang and lang attributes
115
Encoding not declared
116
Doctype not declared
117
Low word count
120
Incompatible plugins used
121
Frames used
122
Underscores in URL
123
Nofollow attributes in internal links
124
Sitemap.xml not specified in robots.txt
125
Sitemap.xml not found
126
HTTPS encryption not used
127
No SNI support
128
HTTP URLs in sitemap.xml for HTTPS site
129
Uncompressed pages
130
Disallowed internal resources
131
Uncompressed JavaScript and CSS files
132
Uncached JavaScript and CSS files
133
Too large JavaScript and CSS total size
134
Too many JavaScript and CSS files
135
Unminified JavaScript and CSS files
136
Warning - Too long URLs
137
Llms.txt not found
201
Too long URLs
202
Nofollow attributes in external links
203
Robots.txt not found
205
No HSTS support
206
Orphaned pages (Google Analytics)
207
Orphaned sitemap pages
208
Pages have high Document Interactive Time
209
Blocked by X-Robots-Tag: noindex HTTP header
210
Disallowed external resources
211
Broken external JavaScript and CSS files
212
Page crawl depth
213
Pages with only one internal link
214
Permanent redirects
215
Resources formatted as page links
216
Links with no anchor text
217
Links with non-descriptive anchor text
218
External pages or resources with 403 HTTP status code
219
Llms.txt has formatting issues
220
Too much content
221
Outdated content
222
Low semantic HTML usage
223
Content not optimized

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

POSThttps://api.semrush.com/management/v1/projects/{ID}/siteaudit/enable?key=YOUR_API_KEY

Request Parameters

keyRequired

The API key for your Semrush account.

Value/Type: string

idRequired

Value/Type: ID

domainRequired

The project URL.

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

Specifies whether an email notification is sent after the audit is completed.

Value/Type: boolean

allow

Masks the Allow directive in the project.

Value/Type: array of strings

disallow

Masks the Disallow directive in the project.

Value/Type: array of strings

pageLimitRequired

The number of crawled pages.

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

Specifies URL parameters to be excluded from the audit scope.

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

Request example
{
	"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

POSThttps://api.semrush.com/management/v1/projects/{ID}/siteaudit/save?key=YOUR_API_KEY

Request Parameters

keyRequired

The API key for your Semrush account.

Value/Type: string

idRequired

Value/Type: ID

domainRequired

The project URL.

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

Specifies whether an email notification is sent after the audit is completed.

Value/Type: boolean

allow

Masks the Allow directive in the project.

Value/Type: array of strings

disallow

Masks the Disallow directive in the project.

Value/Type: array of strings

pageLimitRequired

The number of crawled pages.

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

Specifies URL parameters to be excluded from the audit scope.

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

Request example
{
	"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

GEThttps://api.semrush.com/reports/v1/projects/{ID}/siteaudit/snapshots?key=YOUR_API_KEY

Request Parameters

keyRequired

The API key for your Semrush account.

Value/Type: string

idRequired

Value/Type: ID

Response exampleJSON
{
  "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

GEThttps://api.semrush.com/reports/v1/projects/{ID}/siteaudit/meta/issues?key=YOUR_API_KEY

Request Parameters

keyRequired

The API key for your Semrush account.

Value/Type: string

idRequired

Value/Type: ID

Response exampleJSON
{
  "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

POSThttps://api.semrush.com/reports/v1/projects/{ID}/siteaudit/launch?key=YOUR_API_KEY

Request Parameters

keyRequired

The API key for your Semrush account.

Value/Type: string

idRequired

Value/Type: ID

Response exampleJSON
{
  "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

GEThttps://api.semrush.com/reports/v1/projects/{ID}/siteaudit/info?key=YOUR_API_KEY

Request Parameters

keyRequired

The API key for your Semrush account.

Value/Type: string

idRequired

Value/Type: ID

Response exampleJSON
{
  "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

GEThttps://api.semrush.com/reports/v1/projects/{ID}/siteaudit/snapshot?key=YOUR_API_KEY&snapshot_id={snapshot_id}

Request Parameters

keyRequired

The API key for your Semrush account.

Value/Type: string

idRequired

Value/Type: ID

snapshot_idRequired

The snapshot ID obtained from the Run audit or Get list of campaign snapshots request response.

Value/Type: string

Response exampleJSON
{
  "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

GEThttps://api.semrush.com/reports/v1/projects/{ID}/siteaudit/snapshot/{snapshotId}/issue/

Request Parameters

keyRequired

The API key for your Semrush account.

Value/Type: string

idRequired

Value/Type: ID

snapshot_idRequired

The snapshot ID obtained from the Run audit or Get list of campaign snapshots request response.

Value/Type: string

issueIdRequired

Value/Type: integer

sort

The sorting type. Default value: DESC

Value/Type: object

page

The page number. Default value: 1

Value/Type: integer

limit

The result limit on one page. Default value: 10

Value/Type: integer

Request example
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
Response exampleJSON
{
  "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

GEThttps://api.semrush.com/reports/v1/projects/{ID}/siteaudit/page/list?url={url}&limit={limit}&key=YOUR_API_KEY

Request Parameters

keyRequired

The API key for your Semrush account.

Value/Type: string

idRequired

Value/Type: ID

urlRequired

The URL for the search; contains match.

Value/Type: string

limit

The data line limit.

Value/Type: integer, default is 10

Response exampleJSON
{
  "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

GEThttps://api.semrush.com/reports/v1/projects/{ID}/siteaudit/page/{pageId}?key=YOUR_API_KEY

Request Parameters

keyRequired

The API key for your Semrush account.

Value/Type: string

idRequired

Value/Type: ID

pageIdRequired

The page ID.

Value/Type: string

Response exampleJSON
{
  "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

GEThttps://api.semrush.com/reports/v1/projects/{ID}/siteaudit/history?limit={limit}&offset={offset}&key=YOUR_API_KEY

Request Parameters

keyRequired

The API key for your Semrush account.

Value/Type: string

idRequired

Value/Type: ID

limitRequired

The limit. Default value: 7.

Value/Type: integer

offsetRequired

The offset. Default value: 0.

Value/Type: integer

Response exampleJSON
{
  "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

Was this page helpful?