Website Audit
Website Audit API provides endpoints to manage the full lifecycle of technical SEO audits. You can launch new audits, monitor progress, retrieve detailed reports, page-level data, and historical snapshots.
Create audit
POST https://api4.seranking.com/audit/create
Launches an audit that crawls the HTML of a website. Suitable for most static and server-side rendered sites.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| domain | String | Yes | Domain to be audited (e.g., domain.com). |
| title | String | No | Custom title of the audit report (max 300 characters). Defaults to domain. |
| settings | Object | No | Audit configuration settings. Only include parameters you want to override (see settings object below). |
settings object (optional)
- Crawl sources:
| Parameter | Type | Description |
|---|---|---|
| source_site | Integer | Scan pages by following internal links from the homepage (1 – yes, 0 – no). If 0, scans only from the sitemap or a provided list. Defaults to 1. |
| source_sitemap | Integer | Scan pages from the sitemap.xml file (1 – yes, 0 – no). Defaults to 1. |
| source_subdomain | Integer | Scan subdomains (1 – yes, 0 – no). If 0, subdomain links are treated as external. Defaults to 0. |
| source_file | Integer | Scan only URLs from a custom list (1 – yes, 0 – no). Defaults to 0. |
- Crawl behavior:
| Parameter | Type | Description |
|---|---|---|
| check_robots | Integer | Follow robots.txt directives (1 – yes, 0 – no). Defaults to 1. |
| ignore_noindex | Integer | Ignore pages with a noindex tag (1 – yes, 0 – no). Defaults to 0. |
| ignore_nofollow | Integer | Ignore links with a nofollow attribute (1 – yes, 0 – no). Defaults to 0. |
| ignore_params | Integer | Ignore URL parameters (0 – none, 1 – all, 2 – custom list). Defaults to 0. |
| custom_params | String | Custom URL parameters to ignore when ignore_params is set to 2. Defaults to:utm_source,utm_medium,utm_term,utm_content,utm_campaign,cid,PHPSESSID |
| user_agent | Integer | User-Agent header to use for the crawl. Defaults to 0.Possible values: • 0 – SE Ranking bot • 1 – Googlebot • 2 – Googlebot Image • 3 – Bingbot • 4 – Yahoo! Slurp • 5 – YandexBot • 6 – BaiduSpider • 7 – Chrome on Windows • 8 – Chrome on macOS • 9 – Chrome on iOS • 10 – Firefox on Windows • 11 – Firefox on Linux • 12 – Safari on macOS • 13 – Opera on Windows |
| csr | Integer | Enable JavaScript rendering (1 – enabled, 0 – disabled). Defaults to 0.Essential for SPAs and sites with dynamically loaded content. |
| login | String | Username for Basic HTTP Authentication. Defaults to null. |
| password | String | Password for Basic HTTP Authentication. Defaults to null. |
- Crawl limits:
| Parameter | Type | Description |
|---|---|---|
| max_pages | Integer | Maximum number of pages to crawl (1–300,000). Defaults to 1000. |
| max_depth | Integer | Maximum crawl depth (1–100). Defaults to 10. |
| max_req | Integer | Maximum number of requests per second (1–500). Defaults to 500. |
| max_redirects | Integer | Maximum number of redirects to follow (1–50). Defaults to 5. |
| max_size | Integer | Maximum page size in kilobytes (1–100,000). Defaults to 3000. |
- On-page thresholds:
| Parameter | Type | Description |
|---|---|---|
| min_title_len | Integer | Minimum title length (1–10,000). Defaults to 20. |
| max_title_len | Integer | Maximum title length (1–10,000). Defaults to 65. |
| min_description_len | Integer | Minimum meta description length (1–10,000). Defaults to 1. |
| max_description_len | Integer | Maximum meta description length (1–10,000). Defaults to 158. |
| min_words | Integer | Minimum word count per page (1–10,000). Defaults to 250. |
| max_h1_len | Integer | Maximum H1 length (1–10,000). Defaults to 100. |
| max_h2_len | Integer | Maximum H2 length (1–10,000). Defaults to 100. |
- URL filtering:
| Parameter | Type | Description |
|---|---|---|
| allow | String | Crawl only URLs that start with the specified path. Defaults to null. |
| disallow | String | Exclude URLs that start with the specified path. Defaults to null. |
| hide | String | Hide URLs and resources that start with the specified path. Defaults to null. |
- Scheduling:
| Parameter | Type | Description |
|---|---|---|
| schedule_type | String | Audit execution frequency. Possible values: manual, week, month. Defaults to manual. |
| schedule_day | Integer | Day of month for the scheduled audit when schedule_type is month (1-31). Defaults to 1. |
| schedule_wdays | Array | Days of week for the scheduled audit when schedule_type is week (array of integers 1-7). Defaults to []. |
| schedule_hour | Integer | Hour of day (UTC) for the scheduled audit (0-23). Defaults to 0. |
| schedule_repeat | Integer | Enable repeated audits (1 – yes, 0 – no). Defaults to 0. |
| schedule_repeat_interval | Integer | Interval in weeks between repeated audits (when schedule_repeat is 1). Defaults to 2. |
- Reporting:
| Parameter | Type | Description |
|---|---|---|
| send_report | Integer | Send the audit report via email (1 – yes, 0 – no). Defaults to 1. |
| report_emails | String | Email addresses to receive the audit report. If empty "", the report is sent to the account owner. |
Request example
curl --location 'https://api4.seranking.com/audit/create' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token YOUR_API_KEY' \
--data '{
"domain": "example.com",
"title": "Full Audit - example.com",
"settings": {
"source_site": 1,
"source_sitemap": 1,
"source_subdomain": 1,
"source_file": 0,
"check_robots": 1,
"ignore_noindex": 1,
"ignore_nofollow": 1,
"ignore_params": 2,
"custom_params": "utm_source, utm_medium, utm_term, utm_content, utm_campaign, cid, PHPSESSID, fbclid, gclid",
"csr": 0,
"user_agent": 0,
"login": "",
"password": "",
"max_pages": 10000,
"max_depth": 15,
"max_req": 300,
"max_redirects": 10,
"max_size": 5000,
"min_title_len": 30,
"max_title_len": 60,
"min_description_len": 50,
"max_description_len": 160,
"min_words": 300,
"max_h1_len": 70,
"max_h2_len": 80,
"allow": "/blog\n/products",
"disallow": "/admin\n/staging",
"hide": "/cdn-cgi\n/wp-json",
"schedule_type": "week",
"schedule_wdays": [1, 2],
"schedule_hour": 6,
"schedule_day": 1,
"schedule_repeat": 1,
"schedule_repeat_interval": 1,
"send_report": 1,
"report_emails": "[email protected], [email protected]"
}
}'
Response parameters
If successful, the server returns a JSON object containing the unique ID for the newly created audit.
| Parameter | Type | Description |
|---|---|---|
| id | Integer | Unique identifier of the audit report. |
Response example
{
"id": 700237036
}
List audits
GET https://api4.seranking.com/audit/list
Retrieves all audits associated with the account. Supports filtering and pagination.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | Integer | No | Number of audits to return. Defaults to 100. |
| offset | Integer | No | Number of audits to skip before starting to collect the result set. Defaults to 0. |
| search | String | No | Filters audits by matching title or URL. |
| date_start | String | No | Start date for filtering audits (in YYYY-MM-DD). |
| date_end | String | No | End date for filtering audits (in YYYY-MM-DD). |
Request example
curl --location 'https://api4.seranking.com/audit/list?limit=10&offset=0&search=booking.com&date_start=2025-07-01&date_end=2025-07-31' \
--header 'Authorization: Token YOUR_API_KEY'
Response parameters
If successful, the server returns a JSON object containing the total number of audits and an array of audit objects.
| Parameter | Type | Description |
|---|---|---|
| total | Integer | Number of audits matching the filter criteria. |
| items | Array | Array of audit objects. |
Each object in the items array has the following structure:
| Parameter | Type | Description |
|---|---|---|
| id | Integer | Unique identifier of the audit report. |
| group_id | Integer | Audit group identifier. |
| url | String | URL of the audited website. |
| title | String | Title of the audit report. |
| has_project | Boolean | Indicates whether the audit is linked to a project. |
| site_id | Integer | Internal site identifier. |
| last_update | String | Date of last audit update ( in YYYY-MM-DD). |
| status | String | Current audit status (for example, finished, processing). |
| error | String | Error message if the audit failed, otherwise null. |
| error_params | Object | Error details if available. |
| stats | Object | Latest audit statistics. |
| prev_stats | Object | Statistics from the previous audit run (can be null). |
| version | String | Audit engine version. |
| owner_account_id | Integer | Owner account identifier. |
| is_new | Integer | Indicates whether the audit is newly created (1 – yes, 0 – no). |
Response example
{
"items": [
{
"id": 700138456,
"group_id": 0,
"url": "http://booking.com",
"title": "booking.com",
"has_project": true,
"site_id": 10113599,
"last_update": "2025-07-08",
"status": "finished",
"error": null,
"error_params": null,
"stats": {
"score": 69,
"errors": 2303,
"warnings": 3710,
"notices": 10875,
"crawled": 1830
},
"prev_stats": null,
"version": "2.0",
"owner_account_id": 4242308,
"is_new": 1
}
],
"total": 1
}
Get audit status
GET https://api4.seranking.com/audit/{audit_id}/
Returns the real-time status of a specific audit. Useful for monitoring crawl progress before fetching the full report.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| audit_id | Integer | Yes | Unique audit ID (path parameter). |
Request example
curl --location 'https://api4.seranking.com/audit/700183831/' \
--header 'Authorization: Token YOUR_API_KEY'
Response parameters
If successful, the server returns a JSON object containing the current audit status and key metrics.
| Parameter | Type | Description |
|---|---|---|
| status | String | Current audit status. Possible values: queued, processing, finished, cancelled, expired. |
| total_pages | Integer | Number of pages crawled. |
| total_errors | Integer | Number of errors found. |
| total_warnings | Integer | Number of warnings found. |
| total_passed | Integer | Number of passed checks. |
| start_time | String | Audit start timestamp. |
| audit_time | String | Audit completion timestamp. Present if the audit is finished. |
Response example
{
"total_pages": 1009,
"total_warnings": 979,
"total_errors": 346,
"total_passed": 77,
"status": "finished",
"start_time": "2025-07-29 11:06:23",
"audit_time": "2025-07-29 11:19:33"
}
Get audit report
GET https://api4.seranking.com/audit/{audit_id}/report
Returns a complete audit report, including health score, domain properties, and issues.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| audit_id | Integer | Yes | Unique audit ID (path parameter). |
Request example
curl --location 'https://api4.seranking.com/audit/700183831/report' \
--header 'Authorization: Token YOUR_API_KEY'
Response parameters
If successful, the server returns a JSON object containing the complete audit report.
| Parameter | Type | Description |
|---|---|---|
| is_finished | Boolean | Indicates whether the audit is completed. |
| score_percent | Integer | Overall website health score (0–100). |
| total_pages | Integer | Number of pages crawled. |
| total_errors | Integer | Number of errors found. |
| total_warnings | Integer | Number of warnings found. |
| total_notices | Integer | Number of notices found. |
| total_passed | Integer | Number of passed checks. |
| audit_time | String | Audit completion timestamp. |
| domain_props | Object | Domain properties and metadata (see domain_props object below). |
| sections | Array | An array of objects, where each object represents a category of audit checks (see sections array below). |
domain_props object
| Parameter | Type | Description |
|---|---|---|
| dt | Integer | Domain trust score. |
| domain | String | Domain name. |
| domains | String | Number of referring domains. |
| expdate | String | Expiration date of domain registration. |
| updated | String | Last update timestamp. |
| backlinks | String | Number of backlinks pointing to the domain. |
| index_google | String | Number of pages indexed in Google. |
| all_checked | Boolean | Indicates whether all domain checks are completed. |
sections array
| Parameter | Type | Description |
|---|---|---|
| uid | String | Section identifier. |
| name | String | Section name. |
| props | Object | Section checks and results. Object where each key is a check identifier and the value is a check result object (see structure below). |
Each props object has the following structure:
| Parameter | Type | Description |
|---|---|---|
| code | String | Unique check identifier. |
| status | String | Check result. Possible values: error, warning, notice, passed. |
| name | String | Check name. |
| value | Integer | Number of affected pages. |
Response example
{
"total_pages": 1009,
"total_warnings": 979,
"total_errors": 346,
"total_passed": 77,
"total_notices": 3915,
"is_finished": true,
"domain_props": {
"dt": 44,
"domain": "www.vitality.co.uk",
"domains": "3401",
"expdate": "2025-08-30",
"updated": "2025-07-29 12:07:28",
"backlinks": "212249",
"index_bing": 15500,
"all_checked": true,
"index_yahoo": 15500,
"index_google": "1380"
},
"sections": [
{
"uid": "security_v2",
"name": "Security",
"props": {
"no_https": {
"code": "no_https",
"status": "error",
"name": "No HTTPS encryption",
"value": 0
},
"mixed_content": {
"code": "mixed_content",
"status": "error",
"name": "Mixed content",
"value": 0
}
}
},
{
"uid": "crawling_v2",
"name": "Crawling & Indexing",
"props": {
"http4xx": {
"code": "http4xx",
"status": "error",
"name": "4XX HTTP Status Codes",
"value": 28
},
"blocked_by_noindex": {
"code": "blocked_by_noindex",
"status": "notice",
"name": "Blocked by noindex",
"value": 34
}
}
}
],
"score_percent": 80,
"audit_time": "2025-07-29 11:19:33",
"version": "2.0"
}
Get all crawled pages
GET https://api4.seranking.com/audit/{audit_id}/pages
Returns a paginated list of all URLs found during the audit. The response provides a complete sitemap as identified by the crawler, including pages with and without detected issues.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| audit_id | Integer | Yes | Unique audit ID (path parameter). |
| limit | Integer | No | Number of pages to return (query parameter). Defaults to 100. |
| offset | Integer | No | Number of pages to skip before starting to collect the result set (query parameter). Defaults to 0. |
Request example
curl --location 'https://api4.seranking.com/audit/700183831/pages?limit=10&offset=0' \
--header 'Authorization: Token YOUR_API_KEY'
Response parameters
If successful, the server returns a JSON object containing the total number of crawled pages and an array of page objects.
| Parameter | Type | Description |
|---|---|---|
| items | Array | Array of objects representing individual crawled pages. |
| total | Integer | Total number of pages crawled during the audit. |
Each object in the items array has the following structure:
| Parameter | Type | Description |
|---|---|---|
| id | String | Unique internal identifier of the page. |
| url | String | Full URL of the crawled page. |
| status | String | HTTP status code returned by the page. |
| depth | String | Crawl depth of the page (distance from the start page). |
| load_ms | String | Page load time in milliseconds. |
| title | String | Content of the title tag. |
| description | String | Content of the meta description tag. |
| h1 | String | Content of the first h1 tag. |
| words_count | String | Number of words found on the page. |
| issues | String | Number of issues found on the page. |
| errors | String | Number of errors found on the page. |
| warnings | String | Number of warnings found on the page. |
| notices | String | Number of notices found on the page. |
| inlinks | String | Number of internal links pointing to the page. |
| outlinks_internal | String | Number of internal links found on the page. |
| outlinks_external | String | Number of external links found on the page. |
| canonical_url | String | Canonical URL specified for the page. |
| indexable_status | String | Indexability status of the page. |
Response example
{
"total": 1009,
"items": [
{
"id": "50958380",
"url": "[https://www.vitality.co.uk/](https://www.vitality.co.uk/)",
"url_len": "27",
"type": "doc",
"url_protocol": "https",
"sitemap": "0",
"status": "200",
"size": "156676",
"depth": "1",
"noindex": "0",
"first_ms": "35",
"load_ms": "1373",
"robots": "index, follow",
"nofollow": "0",
"xrobots": null,
"title_len": "53",
"description_len": "139",
"chars": "153843",
"h1_len": "35",
"h2_len": "16",
"html_ratio": "40",
"blocked_robots": "0",
"img": "21",
"hreflang": null,
"hreflang_link": null,
"refresh_time": null,
"meta_refresh": "0",
"redirect_url": null,
"canonical_url": "[https://www.vitality.co.uk/](https://www.vitality.co.uk/)",
"single_h1": "1",
"single_h2": "0",
"h3_count": "9",
"h4_count": "33",
"h5_count": "0",
"h6_count": "0",
"words_count": "1621",
"total_links": "230",
"mixed_count": null,
"mixed": null,
"last_modified": null,
"content_hash": "9d657683ebd385ba700d4301f1ef854f",
"title": "Vitality Insurance | Award-Winning Insurance Provider",
"description": "Vitality is a leading UK insurer offering health and life insurance. Get your quote today and unlock discounts and rewards from top brands.",
"h1": "Live longer with Vitality insurance",
"h2": "Health insurance",
"issues": "2",
"errors": "0",
"warnings": "0",
"notices": "2",
"refpages": "921",
"inlinks": "922",
"inlinks_nofollow": "0",
"inlinks_follow": "922",
"redirect_links": "4",
"redirect_count": "5",
"img_size": "700322",
"css_size": "443163",
"js_size": "543728",
"outlinks_external": "12",
"outlinks_internal": "83",
"title_duplicate": "0",
"description_duplicate": "0",
"h1_duplicate": "0",
"amp": "0",
"indexable": "1",
"indexable_status": "ok",
"traffic_forecast": "10716",
"num_keywords": "48369",
"recheck_status": null,
"time_check": "2025-07-29 11:06:30"
},
{
"id": "50958398",
"url": "[https://www.vitality.co.uk/health-insurance/](https://www.vitality.co.uk/health-insurance/)",
"url_len": "44",
"type": "doc",
"url_protocol": "https",
"sitemap": "1",
"status": "200",
"size": "181179",
"depth": "2",
"noindex": "0",
"first_ms": "0",
"load_ms": "496",
"robots": "index, follow",
"nofollow": "0",
"xrobots": null,
"title_len": "52",
"description_len": "121",
"chars": "178088",
"h1_len": "26",
"h2_len": "33",
"html_ratio": "42",
"blocked_robots": "0",
"img": "27",
"hreflang": null,
"hreflang_link": null,
"refresh_time": null,
"meta_refresh": "0",
"redirect_url": null,
"canonical_url": "[https://www.vitality.co.uk/health-insurance/](https://www.vitality.co.uk/health-insurance/)",
"single_h1": "1",
"single_h2": "0",
"h3_count": "20",
"h4_count": "39",
"h5_count": "0",
"h6_count": "0",
"words_count": "3032",
"total_links": "239",
"mixed_count": null,
"mixed": null,
"last_modified": null,
"content_hash": "5b6d17dbcb03b2405450db10f86dd43a",
"title": "Health Insurance in the UK | Get Private Health Care",
"description": "Get top-rated health insurance in the UK, with real benefits and incentives from your healthcare plan. Get a quote today.",
"h1": "Health insurance in the UK",
"h2": "What is private health insurance?",
"issues": "3",
"errors": "0",
"warnings": "1",
"notices": "2",
"refpages": "896",
"inlinks": "898",
"inlinks_nofollow": "0",
"inlinks_follow": "898",
"redirect_links": "0",
"redirect_count": "4",
"img_size": "2316745",
"css_size": "443163",
"js_size": "543728",
"outlinks_external": "12",
"outlinks_internal": "86",
"title_duplicate": "0",
"description_duplicate": "0",
"h1_duplicate": "0",
"amp": "0",
"indexable": "1",
"indexable_status": "ok",
"traffic_forecast": "4928",
"num_keywords": "13021",
"recheck_status": null,
"time_check": "2025-07-29 11:06:45"
}
]
}
Get audit pages by issue
GET https://api4.seranking.com/audit/{audit_id}/pages/issues
Retrieves a paginated list of all URLs affected by a specific issue within the audit. The issue code can be obtained from the audit report.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| audit_id | Integer | Yes | Unique audit ID (path parameter). |
| code | String | Yes | Unique issue code (for example, title_duplicate). |
| limit | Integer | No | Number of URLs to return. Defaults to 100. |
| offset | Integer | No | Number of URLs to skip before starting to collect the result set. Defaults to 0. |
Request example
curl --location 'https://api4.seranking.com/audit/700183831/pages/issues?code=title_duplicate&limit=10&offset=0' \
--header 'Authorization: Token YOUR_API_KEY'Response parameters
If successful, the server returns a JSON object containing the total number of affected URLs and the list of URLs.
| Parameter | Type | Description |
|---|---|---|
| total_urls | Integer | Number of URLs affected by the issue. |
| urls | Array | Array of URLs affected by the issue. |
| urls_type | String | Format of the urls array. For this endpoint, it is typically simple_urls_array. |
Response example
{
"total_urls": 143,
"urls": [
"https://www.vitality.co.uk/life-insurance/accident-and-fracture-cover/",
"https://www.vitality.co.uk/business/health-insurance/callback/",
"https://www.vitality.co.uk/media/vitality-employee-challenges-programme-goes-live/",
"https://www.vitality.co.uk/media/bbq-blunders-the-bbq-foods-fooling-brits/",
"https://www.vitality.co.uk/media/vitality-launches-cpd-accredited-sustainability-webinar-series-for-advisers/",
"https://www.vitality.co.uk/media/vitality-welcomes-new-partners-to-the-programme/",
"https://www.vitality.co.uk/media/sneezing-season-slams-first-time-sufferers/",
"https://www.vitality.co.uk/media/vitality-calls-for-greater-focus-on-burnout/",
"https://www.vitality.co.uk/media/vitality-research-reveals-gaps-in-employee-awareness-of-sick-leave-policies/",
"https://www.vitality.co.uk/media/vitality-parkrun-celebrate-record-breaking/"
],
"urls_type": "simple_urls_array"
}
Get all issues for URL
GET https://api4.seranking.com/audit/{audit_id}/issues
Retrieves detailed information about all issues detected on a specific page, including errors, warnings, and notices. The response also includes complete page metadata.
Request parameters
url_id or url must be provided.| Parameter | Type | Required | Description |
|---|---|---|---|
| audit_id | Integer | Yes | Unique audit ID (path parameter). |
| url_id | Integer | Conditional | Unique page ID. |
| url | String | Conditional | Full page URL. |
Request example
Example with url_id:
curl --location 'https://api4.seranking.com/audit/700183831/issues?url_id=50958380' \
--header 'Authorization: Token YOUR_API_KEY'
Example with url:
curl --location 'https://api4.seranking.com/audit/700183831/issues?url=https://www.vitality.co.uk/' \
--header 'Authorization: Token YOUR_API_KEY'
Response parameters
If successful, the server returns a JSON object containing page data and issues.
| Parameter | Type | Description |
|---|---|---|
| url | String | Full URL of the page. |
| page_data | Object | Complete metadata and metrics for the page. |
| issues | Array | Array of issue objects detected on the page. |
Each object in the issues array has the following structure:
| Parameter | Type | Description |
|---|---|---|
| code | String | Unique identifier of the issue. |
| type | String | Issue severity. Possible values: error, warning, notice. |
| group | String | Issue category. |
| snippet | Object | Detailed information about the issue. For example, a list of redirecting URLs or an oversized CSS file. |
Response example
{
"url": "https://www.vitality.co.uk/",
"page_data": {
"h1": "Live longer with Vitality insurance",
"h2": "Health insurance",
"js": 6,
"css": 1,
"doc": 83,
"img": 21,
"lang": "en",
"cache": "no-cache, no-store",
"chars": 153843,
"title": "Vitality Insurance | Award-Winning Insurance Provider",
"words": 1621,
"ext_js": 4,
"h1_len": 35,
"h2_len": 16,
"robots": "index, follow",
"ext_doc": 12,
"h1_hash": "4c57f3fc38a26dcc202c11b8975f590e",
"inlinks": 922,
"js_size": 543728,
"css_size": 443163,
"encoding": "gzip",
"h1_count": 1,
"h2_count": 14,
"h3_count": 9,
"h4_count": 33,
"img_size": 700322,
"refpages": 921,
"canonical": "https://www.vitality.co.uk/",
"title_len": 53,
"html_ratio": 40,
"time_check": "2025-07-29 11:06:30",
"title_hash": "c33af508bc32002acac1e3a12606c626",
"description": "Vitality is a leading UK insurer offering health and life insurance. Get your quote today and unlock discounts and rewards from top brands.",
"total_links": 230,
"errors_count": 0,
"issues_count": 2,
"num_keywords": 48369,
"notices_count": 2,
"redirect_count": 5,
"redirect_links": 4,
"warnings_count": 0,
"description_len": 139,
"description_hash": "3bb8e0f3905c4b7203a8b7cae91f890b",
"traffic_forecast": 10716
},
"issues": [
{
"code": "extlinks3xx",
"type": "notice",
"group": "links_v2",
"snippet": {
"type": "urls",
"value": [
{
"status": "302",
"url": "https://members.vitality.co.uk/my-points/confirm-an-activity"
},
{
"status": "302",
"url": "https://members.vitality.co.uk/"
}
]
}
},
{
"code": "css_big",
"type": "notice",
"group": "css",
"snippet": {
"type": "urls",
"value": [
{
"status": "200",
"url": "https://www.vitality.co.uk/dist/vds/css/presales.css?v=2025.6.30121236",
"size": "443163"
}
]
}
}
]
}
Get all links
GET https://api4.seranking.com/audit/{audit_id}/links
Returns a paginated list of all links found during the audit. Allows for a complete analysis of internal and external links, including their status, attributes, and source pages.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| audit_id | Integer | Yes | Unique audit ID (path parameter). |
| page_type | String | No | Filters links by type. Possible values: internal, external, all. Defaults to all. |
| filter | Array | No | Array of filter objects to apply advanced filtering conditions (see filter object below). |
| limit | Integer | No | Number of links to return. |
| offset | Integer | No | Number of links to skip before starting to return results. |
filter object
To build complex queries, add an array of filter parameters to the URL query string. This allows you to chain multiple conditions together using logical operators. Each filter consists of three parts, formatted with an index in brackets (e.g., filter[0], filter[1]).
| Parameter | Type | Required | Description |
|---|---|---|---|
| param | String | Yes | Link field to filter by. Possible values: status, type, source_noindex, nofollow, anchor_type. |
| value | String | Yes | Value to match. |
| type | String | No | Logical operator used to combine conditions. Possible values: and, or. Required starting from the second filter condition. |
Example 1: OR Logic
To find all internal links that have a status code of either 301 OR 302:
curl --location 'https://api4.seranking.com/audit/700183831/links?page_type=internal&limit=10&filter[0][param]=status&filter[0][value]=301&filter[1][param]=status&filter[1][value]=302&filter[1][type]=or' \
--header 'Authorization: Token YOUR_API_KEY'
filter[0]sets the base condition (status = 301).filter[1][type]=orexplicitly connects the next condition (status = 302) with an OR.
Example 2: AND Logic
To find all broken (404) image links (anchor_type = image).
curl --location 'https://api4.seranking.com/audit/700183831/links?page_type=internal&limit=10&filter[0][param]=status&filter[0][value]=404&filter[1][param]=anchor_type&filter[1][value]=image&filter[1][type]=and' \
--header 'Authorization: Token YOUR_API_KEY'
filter[0]sets the base condition (status = 404).filter[1][type]=andmust be included to connect the second condition (anchor_type = image) with an AND. Omitting it would result in an error.
Request example
Example without filters:
curl --location 'https://api4.seranking.com/audit/700183831/links?page_type=all&limit=4&offset=0' \
--header 'Authorization: Token YOUR_API_KEY'
Example with filters:
curl --location 'https://api4.seranking.com/audit/700183831/links?page_type=internal&limit=10&filter[0][param]=status&filter[0][value]=404&filter[1][param]=anchor_type&filter[1][value]=image&filter[1][type]=and' \
--header 'Authorization: Token YOUR_API_KEY'Response parameters
If successful, the server returns the 200 HTTP status code and an object containing the total number of matching links and a list of link objects. Returns HTTP 404 if the audit is not found (for more information, see Error handling).
| Parameter | Type | Description |
|---|---|---|
| total | Integer | Total number of links matching the request criteria. |
| items | Array | Array of link objects. |
Each object in the items array has the following structure:
| Parameter | Type | Description |
|---|---|---|
| url | String | Destination URL. |
| id | String | Unique link identifier. |
| status | String | HTTP status code of the destination URL. |
| type | String | Link type (for example, hyperlink or canonical). |
| source_url | String | URL of the page where the link was found. |
| source_noindex | String | Indicates whether the source page has a noindex directive (1 –yes, 0 – no). |
| nofollow | String | Indicates whether the link has a nofollow attribute (1 –yes, 0 – no). |
| anchor | String | Visible anchor text of the link. |
| anchor_type | String | Anchor type (for example, text or image). |
| alt | String | Alt attribute of the link, if available. |
| title | String | Title attribute of the link, if available. |
Response example
{
"total": 103624,
"items": [
{
"url": "[https://www.vitality.co.uk/](https://www.vitality.co.uk/)",
"id": "1153787496",
"status": "200",
"type": "hyperlink",
"source_url": "[https://www.vitality.co.uk/advisers/](https://www.vitality.co.uk/advisers/)",
"source_noindex": "1",
"nofollow": "0",
"alt": "",
"anchor_type": "text",
"anchor": "Personal",
"title": ""
},
{
"url": "[https://www.vitality.co.uk/](https://www.vitality.co.uk/)",
"id": "1153787624",
"status": "200",
"type": "hyperlink",
"source_url": "[https://www.vitality.co.uk/business/](https://www.vitality.co.uk/business/)",
"source_noindex": "0",
"nofollow": "0",
"alt": "",
"anchor_type": "text",
"anchor": "Personal",
"title": ""
},
{
"url": "[https://www.vitality.co.uk/](https://www.vitality.co.uk/)",
"id": "1153787774",
"status": "200",
"type": "hyperlink",
"source_url": "[https://www.vitality.co.uk/community/](https://www.vitality.co.uk/community/)",
"source_noindex": "0",
"nofollow": "0",
"alt": "",
"anchor_type": "text",
"anchor": "Personal",
"title": ""
},
{
"url": "[https://www.vitality.co.uk/](https://www.vitality.co.uk/)",
"id": "1153787908",
"status": "200",
"type": "hyperlink",
"source_url": "[https://www.vitality.co.uk/healthcare-providers/](https://www.vitality.co.uk/healthcare-providers/)",
"source_noindex": "0",
"nofollow": "0",
"alt": "",
"anchor_type": "text",
"anchor": "Personal",
"title": ""
}
]
}
Get audit history
GET https://api4.seranking.com/audit/{audit_id}/history
Retrieves historical data for a specific audit run, including audit settings, domain metrics, and issue summaries.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| audit_id | Integer | Yes | Unique audit ID (path parameter). |
| date | String | Yes | The specific date of the historical audit to retrieve (YYYY-MM-DD). |
Request example
curl --location 'https://api4.seranking.com/audit/700183831/history?date=2025-07-29' \
--header 'Authorization: Token YOUR_API_KEY'
Response parameters
If successful, the server returns the 200 HTTP status code and an object containing historical audit data. Returns HTTP 404 if the audit or specified date is not found (for more information, see Error handling).
| Parameter | Type | Description |
|---|---|---|
| audit_time | String | Date and time when the audit was completed. |
| domain_data | Object | Domain metrics at the time of the audit. |
| settings | Object | Audit configuration used for this historical run. |
| pages_data | Object | Number of affected pages grouped by issue code. |
| totals | Object | Summary statistics of the audit results. |
| version | String | Audit engine version. |
domain_data object
| Parameter | Type | Description |
|---|---|---|
| domain | String | Audited domain. |
| backlinks | String | Number of backlinks. |
| index_google | String | Number of pages indexed by Google. |
| dt | Integer | Domain trust score. |
totals object
| Parameter | Type | Description |
|---|---|---|
| total_pages | Integer | Total number of audited pages. |
| total_warnings | Integer | Total number of warnings found. |
| total_errors | Integer | Total number of errors found. |
| total_passed | Integer | Total number of passed checks. |
Response example
{
"audit_time": "2025-07-29 11:19:33",
"domain_data": {
"dt": 44,
"domain": "www.vitality.co.uk",
"backlinks": "212249",
"index_google": "1380"
},
"settings": {
"source_site": 1,
"source_sitemap": 1,
"max_pages": 1000,
"max_depth": 10
},
"pages_data": {
"css3xx": 1,
"css_big": 880,
"h1_long": 19,
"http4xx": 28,
"title_duplicate": 143,
"description_duplicate": 169
},
"totals": {
"total_pages": 1009,
"total_warnings": 979,
"total_errors": 346,
"total_passed": 77
},
"version": "2.0"
}
Update audit title
POST https://api4.seranking.com/audit/{audit_id}/update
Updates the title of an existing website audit report.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| audit_id | Integer | Yes | Unique audit ID (path parameter). |
| title | String | Yes | New title for the audit report. Maximum length is 300 characters. |
Request example
curl --location --request POST 'https://api4.seranking.com/audit/700183831/update' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token YOUR_API_KEY' \
--data '{
"title": "New Example Audit Title"
}'
Response parameters
If successful, the server returns the 200 HTTP status code with an empty response body. Returns HTTP 404 if the audit is not found (for more information, see Error handling).
Response example
No response body.
Delete audit
POST https://api4.seranking.com/audit/{audit_id}/delete
Permanently deletes the specified website audit report and all associated data. This action can’t be undone.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| audit_id | Integer | Yes | Unique audit ID (path parameter). |
Request example
curl --location --request POST 'https://api4.seranking.com/audit/700183831/delete' \
--header 'Authorization: Token YOUR_API_KEY'
Response parameters
If successful, the server returns the 200 HTTP status code and an empty response body. Returns HTTP 404 if the audit is not found (for more information, see Error handling).
Response example
No response body.
Recheck audit
POST https://api4.seranking.com/audit/{audit_id}/recheck
Re-runs the audit using the same settings. This allows you to track changes and verify that issues have been resolved.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| audit_id | Integer | Yes | Unique audit ID (path parameter). |
Request example
curl --location --request POST 'https://api4.seranking.com/audit/700183831/recheck' \
--header 'Authorization: Token YOUR_API_KEY'
Response parameters
If successful, the server returns the 200 HTTP status code with an empty response body. Returns HTTP 404 if the audit is not found (for more information, see Error handling).
Response example
No response body.
