API

Website audit

You are reading the Data API docs

baseurl: api.seranking.com
Data API and Project API apikeys are not interchangeable. Use the correct apikey to avoid authentication errors.
Data apikey example:
80cfee7d-xxxx-xxxx-xxxx-fc8500816bb3 (UUID format)
Project apikey example:
253a73adxxxxxxxxxxxxxx340aa0a939 (40-char hex)
Get your apikeys in your account:
Questions or 401 errors? Email [email protected].

The Website Audit API provides a comprehensive suite of tools to programmatically manage the full lifecycle of your technical SEO audits. These endpoints allow you to launch new crawls, monitor their progress, and retrieve detailed reports and page-level data.

Create an Audit

These endpoints launch a new website audit. Use the Standard endpoint for most websites, and the Advanced endpoint for sites that rely heavily on JavaScript to render content, such as Single-Page Applications (SPAs).

⚠️ Cost Information: Be aware of the cost difference before launching an audit.

  • Standard Audits cost 2 credits per crawled page.
  • Advanced Audits cost 20 credits per crawled page.

Create Standard Audit

Launches a standard audit that crawls the HTML of a website. This is suitable for most static and server-side rendered sites.

Copy
POST /v1/site-audit/audits/standard

POST Request

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits/standard' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token YOUR_API_KEY' \
--data '{
    "domain": "example.com",
    "title": "Standard Audit for Example.com",
    "settings": {
        "max_pages": 10000,
        "source_subdomain": 0
    }
}'

Create Advanced Audit

Launches an advanced audit that renders JavaScript before analyzing the page. Use this for single-page applications (SPAs) or any site where content is loaded dynamically.

Copy
POST /v1/site-audit/audits/advanced

POST Request

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits/advanced' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token YOUR_API_KEY' \
--data '{
    "domain": "spa-example.com",
    "title": "Advanced Audit for SPA-Example.com",
    "settings": {
        "max_pages": 100,
        "source_subdomain": 1
    }
}'

Request Parameters

ParameterTypeRequiredDefaultDescription
domainstringyesThe domain to be audited. Example: domain.com
titlestringnodomainA custom title for the audit report. Max 300 characters.
settingsobjectnoAn object containing specific audit settings. Only include parameters you want to override. See the Audit Settings table below.

Audit Settings

The settings object allows for detailed customization of the website crawl. All parameters are optional and apply to both audit types.

NameDescriptionPossible ValuesDefault Value
source_siteScan all pages by following internal links from the homepage. If 0, scans only from sitemap or a provided list.1 (yes), 0 (no)1
source_sitemapScan the sitemap.xml file.1 (yes), 0 (no)1
source_subdomainScan subdomains. If 0, subdomain links are treated as external.1 (yes), 0 (no)0
source_fileUse a custom list of pages for the audit.1 (yes), 0 (no)0
check_robotsFollow the directives in the robots.txt file.1 (yes), 0 (no)1
ignore_paramsIgnore URL parameters.0 (none), 1 (all), 2 (custom list)0
custom_paramsA list of URL parameters to ignore when ignore_params is 2.Comma-separated stringutm_source, utm_medium, …
ignore_noindexIgnore pages with a noindex tag.1 (yes), 0 (no)0
ignore_nofollowIgnore links with a nofollow attribute.1 (yes), 0 (no)0
user_agentThe User-Agent header to use for the crawl.0-130 (SE Ranking bot)
loginLogin for Basic HTTP Authentication.Stringnull
passwordPassword for Basic HTTP Authentication.Stringnull
max_pagesMaximum number of pages to crawl.1-3000001000
max_depthMaximum crawl depth.1-10010
max_reqMaximum number of requests per second.1-500500
max_redirectsMaximum number of redirects to follow.1-505
min_title_lenMinimum length for the <title> tag.1-1000020
max_title_lenMaximum length for the <title> tag.1-1000065
min_description_lenMinimum length for the meta description.1-100001
max_description_lenMaximum length for the meta description.1-10000158
max_sizeMaximum page size in kilobytes.1-1000003000
min_wordsMinimum word count per page.1-10000250
max_h1_lenMaximum length for <h1> tags.1-10000100
max_h2_lenMaximum length for <h2> tags.1-10000100
allowOnly crawl URLs that start with this path.Stringnull
disallowDo not crawl URLs that start with this path.Stringnull
hideHide URLs and resources that start with this path from the report.Stringnull

Response Parameters

If successful, the server returns a JSON object containing the unique ID for the newly created audit.

ParameterData TypeDescriptionExample
idintegerThe unique identifier for the audit report.700237036

Example Request

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits/standard' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token 80cfee7d-d060-2b3c-a707-fc8500816bb3' \
--data '{
    "domain": "example.com",
    "title": "Example Audit Title",
    "settings": {
        "source_site": 1,
        "source_sitemap": 1,
        "source_subdomain": 0,
        "source_file": 0,
        "check_robots": 1,
        "ignore_params": 0,
        "custom_params": "utm_source,utm_medium,utm_term,utm_content,utm_campaign",
        "ignore_noindex": 0,
        "ignore_nofollow": 0,
        "user_agent": 0,
        "login": "",
        "password": "",
        "max_pages": 10000,
        "max_depth": 10,
        "max_req": 500,
        "max_redirects": 5,
        "min_title_len": 20,
        "max_title_len": 65,
        "min_description_len": 1,
        "max_description_len": 158,
        "max_size": 3000,
        "min_words": 250,
        "max_h1_len": 100,
        "max_h2_len": 100
    }
}'

Example Response

A successful request returns a JSON object containing the unique ID of the created audit.

Copy
{
   "id": 700237036
}

List audits

This endpoint retrieves a list of all website audits associated with your account, providing key details and statistics for each.

GET Request

The request should be made as a GET request. You can use query parameters to paginate the results.

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits?limit=10&offset=0&search=booking.com&date_start=2025-07-01&date_end=2025-07-31' \
--header 'Authorization: Token YOUR_API_KEY'

Request Parameters

ParameterTypeRequiredDefaultDescription
limitIntegerNo100The number of audits to return in the list.
offsetIntegerNo0The starting position (offset) for the list of audits.
searchStringNoFilters the list by a search term matching the audit’s title or URL.
date_startStringNoThe start date for filtering audits (YYYY-MM-DD).
date_endStringNoThe end date for filtering audits (YYYY-MM-DD).

Response Parameters

If successful, the server returns a JSON object containing the total count of audits and an array of audit objects.

ParameterData TypeDescription
totalIntegerThe total number of audits matching the filter criteria.
itemsArrayAn array of objects, each representing a website audit.

Each object in the items array has the following structure:

ParameterData TypeDescriptionExample
idIntegerThe unique identifier for the audit report.700138456
urlStringThe URL of the audited website.http://booking.com
titleStringThe title of the audit report.booking.com
last_updateStringThe date the audit was last updated (YYYY-MM-DD).2025-07-08
statusStringThe current status of the audit (e.g., finished, processing).finished
statsObjectAn object containing the latest statistics for the audit (score, errors, warnings, notices, crawled).{
“score”: 69,
“errors”: 2303,
“warnings”: 3710,
“notices”: 10875,
“crawled”: 1830
}
prev_statsObjectAn object containing statistics from the previous audit run. Can be null if no prior data exists.null

Example Request

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits?limit=4&offset=0&search=booking.com&date_start=2025-07-01&date_end=2025-07-31' \
--header 'Authorization: Token YOUR_API_KEY'

Example Response

A successful request returns a JSON object containing the unique ID of the created audit.

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

This endpoint allows you to check the real-time status of a specific website audit, whether it’s queued, currently processing, or already finished. This is useful for monitoring the progress of a crawl before fetching the full report.

GET Request

The request should be made as a GET request with the audit_id included in the query string.

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits/status?audit_id=700183831' \
--header 'Authorization: Token YOUR_API_KEY'

Request Parameters

ParameterTypeRequiredDefaultDescription
audit_idIntegerYesThe unique identifier of the audit to check.

Response Parameters

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

ParameterData TypeDescription
statusStringThe current status of the audit. Possible values: queued, processing, finished, cancelled, expired.
total_pagesIntegerThe number of pages crawled so far.
total_errorsIntegerThe current count of critical issues found.
total_warningsIntegerThe current count of warnings found.
total_passedIntegerThe current count of checks that have passed.
start_timeStringThe timestamp for when the audit began.
audit_timeStringThe timestamp for when the audit was completed. This will be present if the status is finished.

Example Request

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits/status?audit_id=700183831' \
--header 'Authorization: Token YOUR_API_KEY'

Example Response

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

This endpoint retrieves the full, detailed report for a completed website audit. The report includes the site’s overall health score, domain properties, and a section-by-section breakdown of all checks performed, categorized by issue type (errors, warnings, notices).

GET Request

The request should be made as a GET request with the audit_id included in the query string.

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits/report?audit_id=700183831' \
--header 'Authorization: Token YOUR_API_KEY'

Request Parameters

ParameterTypeRequiredDefaultDescription
audit_idIntegerYesThe unique identifier of the audit for which to retrieve the report.

Response Parameters

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

ParameterData TypeDescription
is_finishedBooleanIndicates if the audit has completed. The report is only available if this is true.
score_percentIntegerThe overall health score of the website, from 0 to 100.
total_pagesIntegerThe total number of pages crawled during the audit.
total_errorsIntegerThe total count of critical issues found.
total_warningsIntegerThe total count of warnings found.
total_noticesIntegerThe total count of minor issues or notices.
total_passedIntegerThe total count of checks that passed successfully.
audit_timeStringThe timestamp for when the audit was completed.
domain_propsObjectAn object containing general data about the audited domain. See details below.
sectionsArrayAn array of objects, where each object represents a category of audit checks (e.g., Security, Content).

domain_props Object

ParameterData TypeDescription
expdateStringThe expiration date of the domain registration.
backlinksStringThe total number of backlinks pointing to the domain.
index_googleStringThe number of pages indexed in Google.

sections Array Each object in the sections array contains a uid (unique ID), a name for the category, and a props object. The props object lists all the individual checks for that category. Each check includes:

  • code: A unique identifier for the check (e.g., no_https).
  • status: The result of the check (error, warning, notice, passed).
  • name: A human-readable name for the check.
  • value: The number of pages affected by this issue.

Example Request

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits/report?audit_id=700183831' \
--header 'Authorization: Token YOUR_API_KEY'

Example Response

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

Get audit pages by issue

This endpoint retrieves a paginated list of all URLs affected by a specific issue within a given audit. You can identify the code for an issue by first fetching the main audit report.

GET Request

The request should be made as a GET request with all parameters included in the query string.

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits/pages?code=title_duplicate&audit_id=700183831&limit=10&offset=0' \
--header 'Authorization: Token YOUR_API_KEY'

Request Parameters

ParameterTypeRequiredDefaultDescription
audit_idIntegerYesThe unique identifier of the audit report.
codeStringYesThe unique code for the issue (e.g., title_duplicate).
limitIntegerNo100The number of URLs to return in the list.
offsetIntegerNo0The starting position (offset) for the list of URLs.

Response Parameters

If successful, the server returns a JSON object containing the total count of affected URLs and an array of the URLs themselves.

ParameterData TypeDescription
total_urlsIntegerThe total number of URLs affected by this specific issue.
urlsArrayAn array of strings, where each string is a URL affected by the issue.
urls_typeStringDescribes the format of the urls array. For this endpoint, it is typically simple_urls_array.

Example Request

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits/pages?code=title_duplicate&audit_id=700183831&limit=10&offset=0' \
--header 'Authorization: Token YOUR_API_KEY' 

Example Response

A successful request returns a JSON object containing the unique ID of the created audit.

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 audit history by date

This endpoint retrieves a historical snapshot of a specific audit run, providing the full context of that audit, including the settings used, domain data at the time, and a summary of all issues found.

GET Request

The request should be made as a GET request with all parameters included in the query string.

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits/history?audit_id=700183831&date=2025-07-29' \
--header 'Authorization: Token YOUR_API_KEY'

Request Parameters

ParameterTypeRequiredDefaultDescription
audit_idIntegerYesThe unique identifier of the audit.
dateStringYesThe specific date of the historical audit to retrieve (YYYY-MM-DD).

Response Parameters

If successful, the server returns a JSON object containing the complete historical data for the specified audit run.

ParameterData TypeDescription
audit_timeStringThe exact timestamp when the historical audit was completed.
domain_dataObjectAn object containing general data about the domain at the time of the audit (e.g., backlinks, indexed pages).
settingsObjectAn object detailing all the configuration settings that were used for this specific audit run.
pages_dataObjectAn object where each key is an issue code (e.g., title_duplicate) and the value is the number of pages affected by that issue.
totalsObjectAn object summarizing the final counts for the audit (total_pages, total_warnings, total_errors).

Example Request

Copy
curl --location 'https://api.seranking.com/v1/site-audit/audits/history?audit_id=700183831&date=2025-07-29' \
--header 'Authorization: Token YOUR_API_KEY'

Example Response

A successful request returns a JSON object containing the unique ID of the created audit.

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

Update Audit Title

This endpoint allows you to change the title of an existing website audit report.

PATCH Request

The request should be made as a PATCH request. The ID of the audit to be updated is passed as a query parameter, and the new title is sent in the JSON request body.

Copy
curl --location --request PATCH 'https://api.seranking.com/v1/site-audit/audits?audit_id=89263' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token YOUR_API_KEY' \
--data '{
    "title": "New Example Audit Title"
}'

Request Parameters

Query Parameter

ParameterTypeRequiredDefaultDescription
audit_idIntegerYesThe unique identifier of the audit to update.

Body Parameter

ParameterTypeRequiredDefaultDescription
titleStringYesThe new title for the audit report. Max 300 characters.

Response Parameters

If successful, the server returns an HTTP 200 OK status code with an empty response body, confirming that the title has been updated.

Example Request

Copy
curl --location --request PATCH 'https://api.seranking.com/v1/site-audit/audits?audit_id=89263' \
--header 'Content-Type: application/json' \
--header 'Authorization: Token YOUR_API_KEY' \
--data '{
    "title": "New Title for Ananda Ioga Audit"
}'

Example Response

A successful request returns an empty response with a 200 OK status code.

Copy
[]

Delete Audit

This endpoint permanently deletes a specified website audit report and all of its associated data. This action cannot be undone.

DELETE Request

The request should be made as a DELETE request with the audit_id of the report to be deleted included in the query string.

Copy
curl --location --request DELETE 'https://api.seranking.com/v1/site-audit/audits?audit_id=89263' \
--header 'Authorization: Token YOUR_API_KEY'

Request Parameters

ParameterTypeRequiredDefaultDescription
audit_idIntegerYesThe unique identifier of the audit to delete.

Response

If successful, the server returns an HTTP 200 OK status code with an empty response body, confirming that the audit has been deleted.

Example Request

Copy
curl --location --request DELETE 'https://api.seranking.com/v1/site-audit/audits?audit_id=89263' \
--header 'Authorization: Token YOUR_API_KEY'

Example Response

A successful request returns an empty response with a 200 OK status code.

Copy
[]

Recheck Audit

These endpoints initiate a new crawl for a previously completed audit, using the same settings as the original run. This is useful for tracking changes and verifying that issues have been resolved.

⚠️ Cost Information: Rechecking an audit incurs the same cost as creating a new one.

  • Standard Audits cost 2 credits per crawled page.
  • Advanced Audits cost 20 credits per crawled page.

Recheck Standard Audit

Launches a new standard crawl for an existing audit.

Copy
POST /v1/site-audit/audits/recheck/standard

Recheck Advanced Audit

Launches a new advanced crawl with JavaScript rendering for an existing audit.

Copy
POST /v1/site-audit/audits/recheck/advanced

Request Parameters

ParameterTypeRequiredDefaultDescription
audit_idstringyesThe unique identifier of the audit to recheck. This is passed as a query parameter.

Response 

If successful, the server returns an HTTP 200 OK status code with an empty response body, confirming that the recheck has been initiated.

Example Request

Standard Recheck

Copy
curl --location --request POST 'https://api.seranking.com/v1/site-audit/audits/recheck/standard?audit_id=700237033' \
--header 'Authorization: Token YOUR_API_KEY'

Advanced Recheck

Copy
curl --location --request POST 'https://api.seranking.com/v1/site-audit/audits/recheck/advanced?audit_id=700237033' \
--header 'Authorization: Token YOUR_API_KEY'

Example Response

A successful request returns an empty response with a 200 OK status code.

Copy
[]