API

Website Audit

The Website Audit API crawls sites on demand and surfaces technical SEO issues: broken links, missing tags, slow pages, indexability problems, and more. Results are retrieved on demand.

Plan limits apply to the total number of pages crawled. Creating an audit and rechecking an audit both count crawled pages against that plan limit. All other operations (reads and configuration updates) are free.


Create audit

POST https://api.seranking.com/v1/project-management/audits

Creates a website audit that crawls the HTML of a target site. Suitable for static and server-side-rendered sites. Enable csr in settings for JavaScript-rendered pages.

Note: Page crawl limit depends on your subscription plan.

Request parameters

ParameterTypeRequiredDescription
domainStringYesDomain to be audited (e.g., domain.com).
titleStringNoCustom title of the audit report (max 300 characters). Defaults to domain.
settingsObjectNoAudit configuration settings. Only include parameters you want to override (see settings object below).

Request example

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits' \
--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.

ParameterTypeDescription
idIntegerUnique identifier of the audit report.

Response example

Copy
{
   "id": 700237036
}

List audits

GET https://api.seranking.com/v1/project-management/audits

Returns all audits associated with the account, with pagination and filtering.

Request parameters

ParameterTypeRequiredDescription
limitIntegerNoNumber of audits to return. Defaults to 100.
offsetIntegerNoNumber of audits to skip before starting to collect the result set. Defaults to 0.
searchStringNoFilters audits by matching title or URL.
date_startStringNoStart date for filtering audits (in YYYY-MM-DD).
date_endStringNoEnd date for filtering audits (in YYYY-MM-DD).

Request example

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits?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.

ParameterTypeDescription
totalIntegerNumber of audits matching the filter criteria.
itemsArrayArray of audit objects.

Each object in the items array has the following structure:

ParameterTypeDescription
idIntegerUnique identifier of the audit report.
group_idIntegerAudit group identifier.
urlStringURL of the audited website.
titleStringTitle of the audit report.
has_projectBooleanIndicates whether the audit is linked to a project.
site_idIntegerInternal site identifier.
last_updateStringDate of last audit update ( in YYYY-MM-DD).
statusStringCurrent audit status (for example, finished, processing).
errorStringError message if the audit failed, otherwise null.
error_paramsObjectError details if available.
statsObjectLatest audit statistics.
prev_statsObjectStatistics from the previous audit run (can be null).
versionStringAudit engine version.
owner_account_idIntegerOwner account identifier.
is_newIntegerIndicates whether the audit is newly created (1 – yes, 0 – no).

Response example

Copy
{
    "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://api.seranking.com/v1/project-management/audits/status

Returns the real-time status of a specific audit. Useful for monitoring crawl progress before fetching the full report.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).

Request example

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits/status?audit_id=123' \
--header 'Authorization: Token YOUR_API_KEY'

Response parameters

If successful, the server returns a JSON object containing the current audit status and key metrics.

ParameterTypeDescription
statusStringCurrent audit status. Possible values: queued, processing, finished, cancelled, expired.
total_pagesIntegerNumber of pages crawled.
total_errorsIntegerNumber of errors found.
total_warningsIntegerNumber of warnings found.
total_passedIntegerNumber of passed checks.
start_timeStringAudit start timestamp.
audit_timeStringAudit completion timestamp. Present if the audit is finished.

Response example

Copy
{
    "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://api.seranking.com/v1/project-management/audits/report

Returns a complete audit report, including health score, domain properties, and issues.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).

Request example

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits/report?audit_id=123' \
--header 'Authorization: Token YOUR_API_KEY'

Response parameters

If successful, the server returns a JSON object containing the complete audit report.

ParameterTypeDescription
is_finishedBooleanIndicates whether the audit is completed.
score_percentIntegerOverall website health score (0–100).
total_pagesIntegerNumber of pages crawled.
total_errorsIntegerNumber of errors found.
total_warningsIntegerNumber of warnings found.
total_noticesIntegerNumber of notices found.
total_passedIntegerNumber of passed checks.
audit_timeStringAudit completion timestamp.
domain_propsObjectDomain properties and metadata (see domain_props object below).
sectionsArrayAn array of objects, where each object represents a category of audit checks (see sections array below).

domain_props object

ParameterTypeDescription
dtIntegerDomain trust score.
domainStringDomain name.
domainsStringNumber of referring domains.
expdateStringExpiration date of domain registration.
updatedStringLast update timestamp.
backlinksStringNumber of backlinks pointing to the domain.
index_googleStringNumber of pages indexed in Google.
all_checkedBooleanIndicates whether all domain checks are completed.

sections array

ParameterTypeDescription
uidStringSection identifier.
nameStringSection name.
propsObjectSection 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:

ParameterTypeDescription
codeStringUnique check identifier.
statusStringCheck result. Possible values: error, warning, notice, passed.
nameStringCheck name.
valueIntegerNumber of affected pages.

Response example

Copy
{
    "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"
}

Recheck audit

POST https://api.seranking.com/v1/project-management/audits/recheck

Re-runs the audit using the same settings. This allows you to track changes and verify that issues have been resolved.

Note: Rechecking an audit consumes the same credits as creating a new audit.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).

Request example

Copy
curl --location --request POST 'https://api.seranking.com/v1/project-management/audits/recheck?audit_id=123' \
--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.


Delete audit

DELETE https://api.seranking.com/v1/project-management/audits

Permanently deletes the specified website audit report and all associated data. This action can’t be undone.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).

Request example

Copy
curl --location --request DELETE 'https://api.seranking.com/v1/project-management/audits?audit_id=123' \
--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.


Get audit settings

GET https://api.seranking.com/v1/project-management/audits/settings

Returns the full saved configuration for an audit: crawl sources, limits, thresholds, schedule, notification recipients, disabled issue codes, external URL ignore list, and engine version.

Call this before updateAuditSettings for partial updates, especially when modifying disabled_issues or schedule_wdays (both are replace operations).

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).

Request example

Copy
curl --location --request POST 'https://api.seranking.com/v1/project-management/audits/settings?audit_id=123' \
--header 'Authorization: Token YOUR_API_KEY'

Response parameters

Response fields match the Audit settings object. The API returns every field with its current value.

Response example

Copy
{
"source_site": 1,
"source_sitemap": 1,
"source_subdomain": 0,
"source_file": 0,
"check_robots": 1,
"ignore_noindex": 0,
"ignore_nofollow": 0,
"ignore_params": 0,
"user_agent": 0,
"csr": 0,
"max_pages": 1000,
"max_depth": 10,
"max_req": 500,
"max_redirects": 5,
"max_size": 3000,
"min_title_len": 20,
"max_title_len": 65,
"min_description_len": 1,
"max_description_len": 158,
"min_words": 250,
"max_h1_len": 100,
"max_h2_len": 100,
"schedule_type": "manual",
"schedule_hour": 0,
"schedule_repeat": 0,
"send_report": 1,
"disabled_issues": ["slow_loading", "speed_index"],
"disallow_ext": "cdn.example.com\nhttps://tracking.example.com/pixel",
"version": "2.0"
}

Update audit settings

PATCH https://api.seranking.com/v1/project-management/audits/settings

Updates the configuration of an existing audit. Applies partial-update (merge) semantics: only the fields in the request body change.

Warning: disabled_issues and schedule_wdays are REPLACE operations. The array you send replaces the full saved list. Fetch the current values with getAuditSettings before modifying them.

Sitemaps and custom page lists have their own endpoints. See addAuditSitemap and addAuditSourcePages. Updating only the audit title has a dedicated endpoint. See updateAuditTitle.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).
audit_idObjectNoFields to change. See Audit settings object.

Request example

Copy
curl --location --globoff --request PATCH 'https://api.seranking.com/v1/project-management/audits/settings?audit_id={audit_id}' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token YOUR_API_KEY' \
--data '{
"settings": {
"max_pages": 50000,
"max_depth": 20,
"schedule_type": "week",
"schedule_wdays": [1, 3, 5],
"disabled_issues": ["slow_loading"],
"disallow_ext": "cdn.example.com\nhttps://tracking.example.com/pixel"
}
}'

Response

HTTP 200 OK with an empty body.


Reset audit settings

POST https://api.seranking.com/v1/project-management/audits/settings/reset

Restores every setting to its default value, including crawl sources, limits, thresholds, schedule, notifications, disabled_issues, and disallow_ext.

Note: Sitemaps and source-pages lists are not removed by this call. Delete them through deleteAuditSitemap or deleteAuditSourcePages if needed.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).

Request example

Copy
curl --location --globoff --request PATCH 'https://api.seranking.com/v1/project-management/audits/settings/reset?audit_id={audit_id}' \
--header 'Authorization: Token YOUR_API_KEY'

Response

HTTP 200 OK with an empty body.


Update audit title

PATCH https://api.seranking.com/v1/project-management/audits

Updates the title of an existing website audit report.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).
titleStringYesNew title for the audit report. Maximum length is 300 characters.

Request example

Copy
curl --location --request PATCH 'https://api.seranking.com/v1/project-management/audits?audit_id=123' \
--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.


Get all crawled pages

GET https://api.seranking.com/v1/project-management/audits/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

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).
limitIntegerNoNumber of pages to return (query parameter). Defaults to 100.
offsetIntegerNoNumber of pages to skip before starting to collect the result set (query parameter). Defaults to 0.

Request example

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits/pages?audit_id=123&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.

ParameterTypeDescription
itemsArrayArray of objects representing individual crawled pages.
totalIntegerTotal number of pages crawled during the audit.

Each object in the items array has the following structure:

ParameterTypeDescription
idStringUnique internal identifier of the page.
urlStringFull URL of the crawled page.
statusStringHTTP status code returned by the page.
depthStringCrawl depth of the page (distance from the start page).
load_msStringPage load time in milliseconds.
titleStringContent of the title tag.
descriptionStringContent of the meta description tag.
h1StringContent of the first h1 tag.
words_countStringNumber of words found on the page.
issuesStringNumber of issues found on the page.
errorsStringNumber of errors found on the page.
warningsStringNumber of warnings found on the page.
noticesStringNumber of notices found on the page.
inlinksStringNumber of internal links pointing to the page.
outlinks_internalStringNumber of internal links found on the page.
outlinks_externalStringNumber of external links found on the page.
canonical_urlStringCanonical URL specified for the page.
indexable_statusStringIndexability status of the page.

Response example

Copy
{
"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://api.seranking.com/v1/project-management/audits/issue-pages

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

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).
codeStringYesUnique issue code (for example, title_duplicate).
limitIntegerNoNumber of URLs to return. Defaults to 100.
offsetIntegerNoNumber of URLs to skip before starting to collect the result set. Defaults to 0.

Request example

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits/issue-pages?audit_id=123&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.

ParameterTypeDescription
total_urlsIntegerNumber of URLs affected by the issue.
urlsArrayArray of URLs affected by the issue.
urls_typeStringFormat of the urls array. For this endpoint, it is typically simple_urls_array.

Response example

Copy
{
"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 issues by URL

GET https://api.seranking.com/v1/project-management/audits/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

Note: Either url_id or url must be provided.
ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).
url_idIntegerConditionalUnique page ID.
urlStringConditionalFull page URL.

Request example

Example with url_id:

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits/issues?audit_id=123&url_id=50958380' \
--header 'Authorization: Token YOUR_API_KEY'

Example with url:

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits/issues?audit_id=123&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.

ParameterTypeDescription
urlStringFull URL of the page.
page_dataObjectComplete metadata and metrics for the page.
issuesArrayArray of issue objects detected on the page.

Each object in the issues array has the following structure:

ParameterTypeDescription
codeStringUnique identifier of the issue.
typeStringIssue severity. Possible values: error, warning, notice.
groupStringIssue category.
snippetObjectDetailed information about the issue. For example, a list of redirecting URLs or an oversized CSS file.

Response example

Copy
{
"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 found links

GET https://api.seranking.com/v1/project-management/audits/found-links

Returns every hyperlink found across the site. Supports filter chains for advanced queries (e.g., all nofollow external links returning 4xx).

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).
page_typeObjectNoFields to change. See Audit settings object.
limitIntegerNoNumber of links to return.
offsetIntegerNoStarting position for pagination.
filterArrayNoFilter chain. Each entry is { param, value, type? }. See below.

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]).

ParameterTypeRequiredDescription
paramStringYesLink field to filter by. Possible values: status, type, source_noindex, nofollow, anchor_type.
valueStringYesValue to match.
typeStringNoLogical 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:

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits/issue-pages?audit_id=123&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]=or explicitly connects the next condition (status = 302) with an OR.
Example 2: AND Logic

To find all broken (404) image links (anchor_type = image).

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits/issue-pages?audit_id=123&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]=and must 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:

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits/issue-pages?audit_id=123&page_type=all&limit=4&offset=0' \
--header 'Authorization: Token YOUR_API_KEY'

Example with filters:

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits/issue-pages?audit_id=123&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).

ParameterTypeDescription
totalIntegerTotal number of links matching the request criteria.
itemsArrayArray of link objects.

Each object in the items array has the following structure:

ParameterTypeDescription
urlStringDestination URL.
idStringUnique link identifier.
statusStringHTTP status code of the destination URL.
typeStringLink type (for example, hyperlink or canonical).
source_urlStringURL of the page where the link was found.
source_noindexStringIndicates whether the source page has a noindex directive (1 –yes, 0 – no).
nofollowStringIndicates whether the link has a nofollow attribute (1 –yes, 0 – no).
anchorStringVisible anchor text of the link.
anchor_typeStringAnchor type (for example, text or image).
altStringAlt attribute of the link, if available.
titleStringTitle attribute of the link, if available.

Response example

Copy
{
"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://api.seranking.com/v1/project-management/audits/history

Retrieves historical data for a specific audit run, including audit settings, domain metrics, and issue summaries.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).
dateStringYesThe specific date of the historical audit to retrieve (YYYY-MM-DD).

Request example

Copy
curl --location 'https://api.seranking.com/v1/project-management/audits/history?audit_id=123&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).

ParameterTypeDescription
audit_timeStringDate and time when the audit was completed.
domain_dataObjectDomain metrics at the time of the audit.
settingsObjectAudit configuration used for this historical run.
pages_dataObjectNumber of affected pages grouped by issue code.
totalsObjectSummary statistics of the audit results.
versionStringAudit engine version.

domain_data object

ParameterTypeDescription
domainStringAudited domain.
backlinksStringNumber of backlinks.
index_googleStringNumber of pages indexed by Google.
dtIntegerDomain trust score.

totals object

ParameterTypeDescription
total_pagesIntegerTotal number of audited pages.
total_warningsIntegerTotal number of warnings found.
total_errorsIntegerTotal number of errors found.
total_passedIntegerTotal number of passed checks.

Response example

Copy
{
    "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"
}

List audit sitemaps

GET https://api.seranking.com/v1/project-management/audits/sitemaps

Returns every sitemap configured as a crawl source for an audit, with per-sitemap page counts. Sitemaps are only used when settings.source_sitemap is 1. The flag auto-enables when a sitemap is added.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).

Request example

Copy
curl --location --request GET 'https://api.seranking.com/v1/project-management/audits/sitemaps?audit_id=123' \
--header 'Authorization: Token YOUR_API_KEY'

Response parameters

ParameterTypeDescription
itemsArraySource-pages list records.
items[].idIntegerList identifier. Use in deleteAuditSourcePages.
items[].nameStringUploaded filename.
items[].pages_countIntegerURLs contained in the list.

Response example

Copy
{
"items": [
{
"id": 8421,
"url": "https://example.com/sitemap.xml",
"pages_count": 1820
}
]
}

Add audit sitemap

POST https://api.seranking.com/v1/project-management/audits/sitemaps

Registers a sitemap URL as a crawl source. Auto-sets settings.source_sitemap to 1 so the next run uses it.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).
urlStringYesAbsolute sitemap URL (e.g., https://example.com/sitemap.xml).

Request example

Copy
curl --location --request POST 'https://api.seranking.com/v1/project-management/audits/sitemaps?audit_id=123' \
--header 'Authorization: Token YOUR_API_KEY' \
--data '{
"url": "https://example.com/sitemap.xml"
}'

Response parameters

ParameterTypeDescription
idIntegerNew sitemap identifier.

Response example

Copy
{
"id": 8421
}

Delete audit source pages

DELETE https://api.seranking.com/v1/project-management/audits/sitemaps

Removes a sitemap from an audit’s crawl sources. Does not toggle settings.source_sitemap off. Use updateAuditSettings if you want to disable sitemap crawling entirely.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).
sitemap_idIntegerYesSitemap identified from List Audit Sitemaps.

Request example

Copy
curl --location --request DELETE 'https://api.seranking.com/v1/project-management/audits/sitemaps?audit_id=123&sitemap_id=456' \
--header 'Authorization: Token YOUR_API_KEY'

Response

HTTP 204 No Content on success.


List audit source pages

GET https://api.seranking.com/v1/project-management/audits/source_pages

Returns every uploaded custom page list used as a crawl source. Source-pages lists are only used when settings.source_file is 1. The flag auto-enables when a list is added.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).

Request example

Copy
curl --location --request GET 'https://api.seranking.com/v1/project-management/audits/source_pages?audit_id=123' \
--header 'Authorization: Token YOUR_API_KEY'

Response parameters

ParameterTypeDescription
itemsArraySource-pages list records.
items[].idIntegerList identifier. Use in deleteAuditSourcePages.
items[].nameStringUploaded filename.
items[].pages_countIntegerURLs contained in the list.

Response example

Copy
{
"items": [
{
"id": 1732,
"name": "priority-pages.txt",
"pages_count": 240
}
]
}

Add audit source pages

POST https://api.seranking.com/v1/project-management/audits/source_pages

Uploads a custom list of URLs to crawl. The list is submitted as a multipart text file with one URL per line. Auto-sets settings.source_file to 1.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).
fileStringYesUTF-8 text file with one URL per line.

Request example

Copy
curl --location --request POST 'https://api.seranking.com/v1/project-management/audits/source_pages?audit_id=123' \
--header 'Authorization: Token YOUR_API_KEY' \
-F "[email protected]"

Response parameters

ParameterTypeDescription
idIntegerNew source-pages list identifier.

Response example

Copy
{
"id": 1732
}

Delete audit source pages

DELETE https://api.seranking.com/v1/project-management/audits/source_pages

Removes an uploaded custom page list. Does not toggle settings.source_file off. Use updateAuditSettings to disable custom-list crawling entirely.

Request parameters

ParameterTypeRequiredDescription
audit_idIntegerYesUnique audit ID (path parameter).
list_idStringYesList identifier from List Audit Source Pages.

Request example

Copy
curl --location --request DELETE 'https://api.seranking.com/v1/project-management/audits/source_pages?audit_id=123&list_id=789' \
--header 'Authorization: Token YOUR_API_KEY'

Response

HTTP 204 No Content on success.


Audit settings object

Used by createAudit, updateAuditSettings, getAuditSettings, and getAuditHistory. Every field is optional. Send only the fields to change; other values stay untouched (exceptions are called out below).

Crawl sources

ParameterTypeDescription
source_siteIntegerScan 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_sitemapIntegerScan pages from the sitemap.xml file (1 – yes, 0 – no). Defaults to 1.
source_subdomainIntegerScan subdomains (1 – yes, 0 – no). If 0, subdomain links are treated as external. Defaults to 0.
source_fileIntegerScan only URLs from a custom list (1 – yes, 0 – no). Defaults to 0.

Crawl behavior

ParameterTypeDescription
check_robotsIntegerFollow robots.txt directives (1 – yes, 0 – no). Defaults to 1.
ignore_noindexIntegerIgnore pages with a noindex tag (1 – yes, 0 – no). Defaults to 0.
ignore_nofollowIntegerIgnore links with a nofollow attribute (1 – yes, 0 – no). Defaults to 0.
ignore_paramsIntegerIgnore URL parameters (0 – none, 1 – all, 2 – custom list). Defaults to 0.
custom_paramsStringCustom 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_agentIntegerUser-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
csrIntegerEnable JavaScript rendering (1 – enabled, 0 – disabled). Defaults to 0.
Essential for SPAs and sites with dynamically loaded content.
csr_delayIntegerDelay in milliseconds before capturing the rendered page when csr is 1. Range 0–6,000.
loginStringUsername for Basic HTTP Authentication. Defaults to null.
passwordStringPassword for Basic HTTP Authentication. Defaults to null.

Crawl limits

ParameterTypeDescription
max_pagesIntegerMaximum number of pages to crawl (1–300,000). Defaults to 1000.
max_depthIntegerMaximum crawl depth (1–100). Defaults to 10.
max_reqIntegerMaximum number of requests per second (1–500). Defaults to 500.
max_redirectsIntegerMaximum number of redirects to follow (1–50). Defaults to 5.
max_sizeIntegerMaximum page size in kilobytes (1–100,000). Defaults to 3000.

On-page thresholds

ParameterTypeDescription
min_title_lenIntegerMinimum title length (1–10,000). Defaults to 20.
max_title_lenIntegerMaximum title length (1–10,000). Defaults to 65.
min_description_lenIntegerMinimum meta description length (1–10,000). Defaults to 1.
max_description_lenIntegerMaximum meta description length (1–10,000). Defaults to 158.
min_wordsIntegerMinimum word count per page (1–10,000). Defaults to 250.
max_h1_lenIntegerMaximum H1 length (1–10,000). Defaults to 100.
max_h2_lenIntegerMaximum H2 length (1–10,000). Defaults to 100.

URL filtering

Note: Multiple paths must be separated by newline.
ParameterTypeDescription
allowStringCrawl only URLs that start with the specified path. Defaults to null.
disallowStringExclude URLs that start with the specified path. Defaults to null.
disallow_extStringExternal URLs or domains to ignore when checking outbound links. Newline-separated. REPLACE operation.
hideStringHide URLs and resources that start with the specified path. Defaults to null.

Issue management

ParameterTypeDescription
disaled_issuesArrayIssue codes to disable (e.g., ["slow_loading", "speed_index"]). REPLACE operation: the array sent replaces the full list. Read the current list with getAuditSettings first. Issue codes match those in getAuditReport.

Scheduling

ParameterTypeDescription
schedule_typeStringAudit execution frequency. Possible values: manual, week, month. Defaults to manual.
schedule_dayIntegerDay of month for the scheduled audit when schedule_type is month (1-31). Defaults to 1.
schedule_wdayIntegerSingle day of the week (1–7, Monday–Sunday) when schedule_type is week. Legacy; prefer schedule_wdays.
schedule_wdaysArrayDays of week for the scheduled audit when schedule_type is week (array of integers 1-7). Defaults to [].
schedule_hourIntegerHour of day (UTC) for the scheduled audit (0-23). Defaults to 0.
schedule_repeatIntegerEnable repeated audits (1 – yes, 0 – no). Defaults to 0.
schedule_repeat_intervalIntegerInterval in weeks between repeated audits (when schedule_repeat is 1). Defaults to 2.

Reporting

Note: Multiple emails must be comma-separated.
ParameterTypeDescription
send_reportIntegerSend the audit report via email (1 – yes, 0 – no). Defaults to 1.
report_emailsStringEmail addresses to receive the audit report. If empty "", the report is sent to the account owner.

Learn how SE Ranking’s API can boost your SEO!

Hi! Meet our product experts!

One of them will walk you through the API and show you how to get the most out of it.

  • Enjoy a tailored demo on integrating rich, structured SEO data into your stack.
  • Pin down every tech detail live—auth, endpoints, rate limits, data formats.
  • Compare usage tiers and pricing so you can unlock maximum data value.

Request a free demo to see our tools and integrations in action

By clicking this button, you agree to SE Ranking’s
Terms of Service and Privacy Policy.