SE Ranking’s Major Data Quality Update 🚀 Learn more

Website audit (standalone)

Running an audit

Request format

POST /audit/create

Request parameters

NameRequiredDescription
domainYesWebsite for audit. Example: seranking.com
titleNoAudit title. Up to 300 characters. By default, will have the title of domain
group_idNoAudit group id. By default, set to 0 (general)
settingsNoAudit settings. Only the parameters that need changing are added (their value must be different from the default value).

Audit settings. All parameters are optional.

NameDescriptionPossible valuesDefault value
schedule_typeScanning frequency manual
week
month
manual
schedule_dayAudit start day1-311
schedule_hourAudit start hour0-230
schedule_wdaysThe days of the week on which the audit will run (from 1 to 7).[1,2,3,4,5,6,7][]
send_reportSend a report with audit results (1 – send, 0 – do not send)1,01  
report_emailsList of emails to send the report to“”By default, the report is sent to the account email
source_siteСrawl all pages of the site or not (starting from the main page and following internal links). If set to (0), only the sitemap or the list of submitted pages will be crawled.1,01
source_sitemapCrawl sitemap (sitemap.xml)1,01
source_subdomainCrawl website subdomains. Links to the website subdomains are considered external if not set to (0)1,00
source_fileUse a custom page list1,00
check_robotsCrawl the site according to the list of current instructions in the robots.txt file1,01
ignore_paramsIgnore URL parameters0(do not ignore), 1(all), 2(custom)0
custom_paramsList of ignored parameters. Used when ignore_params=2utm_source, utm_medium, utm_term, utm_content, utm_campaign, cid, PHPSESSID
ignore_noindexIgnore noindex0,10
ignore_nofollowIgnore nofollow0,10
user_agentUser-Agent header value (14 possible options for Website Audit) 0-130 (seranking bot)
loginLogin for Base HTTP authentication
passwordPassword for Base HTTP authentication
max_pagesMaximum number of pages to scan1-3000001000
max_depthMaximum scanning depth1-10010
max_reqMaximum number of requests per second1-500500
max_redirectsMaximum number of redirects1-505
min_title_lenMinimum title length1-1000020
max_title_lenMaximum title length1-1000065
min_description_lenMinimum meta description length1-100001
max_description_lenMaximum meta description length1-10000158
max_sizeMaximum page size in kilobytes1-1000003000
min_wordsMinimum number of words per page1-10000250
max_h1_lenMaximum size of H1 headers1-10000100
max_h2_lenMaximum size of H2 headers1-10000100
allowOnly allow checking for pages with URLs starting with
disallowDisallow checking for pages with URLs starting with
hideHide URLs and resources starting with

Result

If successful, the server returns the ID of the audit.

Example

{
“id”: 100000222
}

Restarting an audit

Request format

POST /audit/{report_id}/recheck

Result

If successful, the server returns the 200 HTTP code.

List of audits

Request format

POST /audit/list

Request parameters

NameDescription
limitNumber of entries in the list
offsetOffset value
group_idAudit group id. By default, set to 0 (general)
only_with_projectOnly audits with a project 
searchSearch filter by the title or website URL.
date_startSearch filter by the audit start date.
date_endSearch filter by the audit end date.

Result

Example

{
“items”: [
{
“id”: 6193559,
“url”: “http://seranking.com”,
“title”: “seranking.com”,
“has_project”: true,
“last_update”: “2023-06-16”,
“status”: “finished”,
“stats”: {
“score”: 66,
“errors”: 73,
“warnings”: 448,
“notices”: 389,
“crawled”: 100
},
“prev_stats”: {
“score”: 76,
“errors”: 72,
“warnings”: 447,
“notices”: 387,
“crawled”: 100
}
},

]
“total”: 810
}

Renaming an audit

Request format

POST /audit/{report_id}/edit

Request parameters

NameDescription
titleNew audit name. Maximum 300 characters.

Result

If successful, the server returns the 200 HTTP code.

Deleting an audit

Request format

POST /audit/{report_id}/delete

Result

If successful, the server returns the 200 HTTP code.

Audit status

Request format

GET /audit/{report_id}

or

GET /audit/?id={id}

Result

If successful, the server returns the audit status.

Example

{
“status”: “finished”,
“start_time”: “2018-06-15 12:41:13”,
“audit_time”: “2018-09-11 16:13:41”,
“total_pages”: 10,
“total_warnings”: 71,
“total_errors”: 21,
“total_passed”: 810
}

Response parameters

NameDescription
statuscanceled – the audit has been canceled;
expired – the audit is expired as more than 3 months have passed since it was completed.
queued – the audit is currently in a queue;processing – the audit is in progress;
finished – the audit has been completed.
start_timeAudit start time
audit_timeAudit end time
total_pagesTotal number of scanned pages
total_warningsTotal number of warnings 
total_errorsTotal number of critical errors
total_passedTotal number of passed checks

Audit report

Data is available only if the audit has been completed (“is_finished”: true).

Request format

GET /audit/{report_id}/report

Result

“is_finished”: true – available data for the audit report.
“is_finished”: false – if the audit is not completed.

Example

{
“is_finished”: false
}

{
“is_finished”: true,
“domain_props”: {
“archiveOrg”: “2003-02-26”,
“backlinks”: “4”,

},
“sections”: [
{
“uid”: “tech_audit”,
“name”: “Название раздела”,
“props”: [
{
“code”: “_images_500_count”,
“status”: “passed”,
“name”: “Изображений с ответом 5хх”,
“value”: “0”
},
…],

],
“score_percent”: 79,
“total_pages”: 10,
“total_warnings”: 71,
“total_errors”: 21,
“total_passed”: 810,
“audit_time”: “2018-09-11 16:13:41”
}

Response parameters

NameDescription
is_finishedAudit status
domain_propsDomain information (includes a list of general domain settings)
score_percentHealth Score (%)
audit_timeAudit end time
total_pagesTotal number of scanned pages
total_noticesTotal number of notices
total_warningsTotal number of warnings
total_errorsTotal number of critical errors
total_passedTotal number of passed checks
sectionsAudit sections
uidSection ID
nameSection name
propsList of section checks
NameDescription
expdateDomain expiration date
ipDomain IP address
backlinksNumber of backlinks
index_googleNumber of pages in Google’s index
index_bingNumber of pages in Bing’s index
index_yahooNumber of pages in Yahoo’s index
nameName
statusStatus (warning | error | passed) 
codeCheck code
valueCheck value

List of pages

List of pages for the specified check.

Request format

GET /audit/{report_id}/links?code={code}&limit=100&offset=10

Request parameters

NameRequiredDescription
codeYesCheck code. For more details, refer to GET /audit/{report_id}/report
limitNoTotal number of links. Max number of links – 1000
offsetNoOffset value

Result

If successful, the server returns the list of pages for the specified audit.

Example

For urls_type: urls_and_sources

{
“total_urls”: 10,
“urls”: [
{
“id”: 1248462,
“url”: “https://seranking.com/”
},

],
“urls_type”: “urls_and_sources”
}

For urls_type: simple_urls_array

{
“total_urls”: 10,
“urls”: [
“https://seranking.com/keyword-suggestion-tool.html”,

],
“urls_type”: “simple_urls_array”
}

For urls_type: duplicate_props

{
“total_urls”: 2,
“urls”: {
“Online SEO Tools by SE Ranking”: {
“found_on_urls”: [
{
“url”: “https://seranking.com/position-tracking.html”,
“id”: “1248466”,
“cnt”: “10”
},

],
}

,
“urls_type”: “duplicate_props”
}

Response parameters

NameDescription
total_urlsTotal number of URLs
urlsList of URLs. The format of the list depends on the type of check
urls_typeList type:
simple_urls_array
duplicate_props
urls_and_single_source
urls_and_sources

Errors

HTTP code Error message
400Invalid code

Audit history

Request format

GET /audit/{report_id}/history?date=2018-06-01

Request parameters

NameRequiredDescription
dateYesDate of the audit

Example

{
“audit_time”: “2023-05-29 00:19:41”,
“domain_data”: {
“dt”: 88,
“domain”: “seranking.com”,
“domains”: “15135”,
“expdate”: “2024-09-16”,
“updated”: “2023-05-29 00:01:03”,
“backlinks”: “810981”,
“index_bing”: 545828,
“all_checked”: true,
“index_yahoo”: 400372,
“index_google”: “131473”
},
“settings”: {
“schedule_type”: “week”,
“schedule_day”: 1,
“schedule_hour”: 0,
“schedule_wday”: 1,
“schedule_wdays”: [
“1”
],
“schedule_repeat”: 0,
“schedule_repeat_interval”: 2,
“send_report”: 1,
“report_email”: “”,
“report_emails”: “”,
“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, cid, PHPSESSID”,
“user_agent”: 0,
“login”: “”,
“password”: “”,
“max_pages”: 500,
“max_depth”: 10,
“max_req”: 500,
“min_title_len”: 20,
“max_title_len”: 65,
“min_description_len”: 1,
“max_description_len”: 158,
“max_size”: 3000,
“min_words”: 250,
“max_redirects”: 5,
“disable_audit”: 0,
“disabled_issues”: [],
“ignore_noindex”: 0,
“ignore_nofollow”: 0,
“max_h1_len”: 100,
“max_h2_len”: 100,
“allow”: “”,
“disallow”: “”,
“hide”: “”
},
“pages_data”: {
“css_big”: 343,
“h1_long”: 1,
“http4xx”: 2,
“js_many”: 48,
“links3xx”: 308,
“image_big”: 2,
“h2_missing”: 29,
“html_ratio”: 263,
“title_long”: 30,
“amp_missing”: 1,
“css_not_min”: 1,
“extlinks3xx”: 424,
“extlinks4xx”: 10,
“less_inlink”: 1,
“redirect3xx”: 13,
“title_short”: 11,
“h1_duplicate”: 31,
“image_no_alt”: 426,
“same_title_h1”: 1,
“links_nofollow”: 335,
“low_word_count”: 11,
“hreflang_return”: 50,
“links_no_anchor”: 415,
“title_duplicate”: 2,
“description_long”: 110,
“extlinks_nofollow”: 424,
“hreflang_xdefault”: 391,
“blocked_by_noindex”: 59,
“extlinks_no_anchor”: 60,
“redirect_temporary”: 5,
“blocked_by_nofollow”: 3,
“description_duplicate”: 2
},
“totals”: {
“total_pages”: 500,
“total_warnings”: 1917,
“total_errors”: 59,
“total_passed”: 102
}
}

Response parameters

NameDescription
audit_timeAudit end time
domain_dataParameters related to the domain and to the site as a whole
settingsSettings (the parameter may be missing if the site settings were not set separately)
pages_dataPages check parameters
totalsFor more details, refer to GET /audit/{report_id}/report

User seats (sub-accounts)

View of a user sub-accounts

Description

The method allows you to get a list of all sub-accounts of a user.

Request format

GET /users

Parameters:

NameDescription
limitDisplay limit per page, default 100
offsetSelection bias

Result

If successful, the server returns an object with a list of sub-accounts (list) and their total number as a separate entry (all_count).

Each element of the list array represents information about the sub-account.

NameDescription
account_idUnique account ID
account_emailEmail sub-account
account_first_nameName
account_last_nameLast name
account_ typeAccount type (user, client)
account_ langAccount language
account_ sites_countNumber of available websites per account
is_blocked_by_limitsbool value. Are the limits expired?

Response example

{
“list”: [
{
“account_id”: 36865,
“account_email”: “[email protected]”,
“account_first_name”: “John”,
“account_last_name”: “Doe”,
“account_type”: “user”,
“account_lang”: “ru”,
“account_sites_count”: 2,
“is_blocked_by_limits”: false
{
“account_id”: 36828,
“account_email”: “[email protected]”,
“account_first_name”: “Jane”,
“account_last_name”: “Doe”,
“account_type”: “client”,
“account_lang”: “ru”,
“account_sites_count”: 1,
“is_blocked_by_limits”: false
}
],
“all_count”: “2”
}

Getting extended information about a sub-account

Description

The method allows you to get extended information about the sub-account, including limits and permissions.

Request format

GET /users/{id}

Result

If successful, the server returns an object consisting of the three elements:

NameDescription
settingssub-account information
accesssub-account access
limitsub-account limits

The access element consists of the following fields:

NameDescription
audit_websiteWebsite audit
competitors_visibility_rankingVisibility ranking
audit_settingsAudit settings
backlink_monitorBacklink monitor
analytics_conversionsAnalytics: conversions
analytics_google_search_consoleGoogle search console
competitors_addedMain competitors
analytics_overviewAnalytics: overview
analytics_pagesAnalytics: pages
marketing_planMarketing plan
seo_potentialSEO potential
analytics_snippetsAnalytics: snippet
social_mediaSocial media
tools_backlinks_checkerTools: backlinks checker
tools_index_status_checkerTools: index status checker
tools_parameter_checkerTools: parameter checker
tools_keyword_grouperTools: keyword grouped
tools_engine_autocompleteTools: engine autocomplete
tools_search_volume_checkerTools: search volume checker
tools_competitive_researchTools: competitive research
tools_keyword_researchTools: keyword research
tools_one_page_seo_checkerTools: one-page seo checker
competitors_serpCompetitors serp
analytics_traffic_sourcesAnalytics: traffic sources
analytics_audienceAnalytics: audience
audit_page_changes_monitorAudit: page changes monitor
hide_search_volumeIs hide search volume for client account type
show_groupsShow groups
report_manualReport manual
report_scheduledReport scheduled
report_templateReport template

The limit element consists of the following fields:

NameDescription
siteint, limits on adding websites
keywordint, limits on adding keywords
backlinkint, limits on adding backlink checks
audit_accountint, website verification limit (per account)
audit_siteint, website check limit (per site per month)
balance.pamountint, payment limits
balance.periodstring, payment limit (day, week, month)

Response example:

{
“setting”: {
“account_id”: 36828,
“account_email”: “[email protected]”,
“account_first_name”: “Test”,
“account_last_name”: “Test”,
“account_type”: “user”,
“account_lang”: “ru”
},
“access”: [
“add_website”,
“audit_settings”,
“report_manual”,
“report_sheduled”,
“report_template”
],
“limit”: {
“site”: 10,
“keyword”: 5,
“backlink”: 10,
“audit_account”: 4,
“audit_site”: 3,
“balance”: {
“amount”: 5,
“period”: “day”
}
}
}

Sub-account creation

Description

The method allows you to create a sub-account and send a notification letter to the email of the created sub-account.

NameRequiredDescription
keyYesRequired value “data”
valueYesCreated account settings
setting.account_emailYesEmail of the future sub-account
setting.account_first_nameYesSub-account name
setting.account_last_nameNo Sub-account last name
setting.account_passwordYesSub-account password
setting.account_langNoAccount language. Two-letter code
setting.account_typeNoAccount type: client, user
limit.balance.periodNoValidity period for limits day,week,month
limit.balance.amountNoLimit value in money, int
accessNoAccess of the created sub-account to your personal account.

Request format

POST /users
[
{
“key”:”data”,
“value”: [
{“setting.account_email”:”[email protected]”},
{“setting.account_first_name”:”Test”},
{“setting.account_last_name”:”Test”},
{“setting.account_password”:”TestPassword”},
{“setting.account_type”:”user”},
{“limit.balance.period”:”day”},
{“limit.balance.amount”:10},
“access”: [
“add_website”,
“audit_settings”,
“report_manual”,
“report_sheduled”,
“report_template”
]
}
]
}
]

Result

If successful, the server returns a unique identifier for the added sub-account.

Response example:

{
“id”: 36872
}
NameDescription
idUnique account identifier

Deleting a sub-account

Description

The method allows you to delete a user’s sub-account.

Request format

DELETE /users/{id}

Result

If successful, the server returns an empty array

Response example

[]

Sub-account editing

Description

The method allows you to edit an existing sub-account.

NameRequiredDescription
keyYesRequired value “data”
valueYesSettings of the created account
setting.account_emailNoEmail of the future sub-account
setting.account_first_nameNoSub-account name
setting.account_last_nameNoSub-account last name
setting.account_passwordNoSub-account password
setting.account_langNoAccount language. Two-letter code
setting.account_typeNoAccount type: client, user
limit.balance.periodNoValidity period for limits day,week,month
limit.balance.amountNoLimit value in money, int
accessNoSection with new sub-account permissions

Request format

PATCH /users/{id}
[
{
“key”:”data”,
“value”: [
{“setting.account_email”:”[email protected]”},
{“setting.account_first_name”:”Test”},
{“setting.account_last_name”:”Test”},
{“setting.account_password”:”TestPassword”},
{“setting.account_type”:”user”},
{“limit.balance.period”:”day”},
{“limit.balance.amount”:10},
{“access”: [
“add_website”
]
}
]
}
]

Result

If successful, the server returns an empty array.

Response example:

{
[]
}

Getting a list of websites shared to a sub-account by a parent account

Description

The method allows you to get a list of websites available for a sub-account.

Request format

GET /users/{id}/shared-sites
NameDescription
idUnique account identifier

Result

If successful, the server returns an array of unique IDs of shared websites for a sub-account.

Response example:

[
39,
44
]

Getting a list of websites belonging to a sub-account

Description

The method allows you to get a list of websites belonging to a sub-account.

Request format

GET /users/{id}/own-sites
NameDescription
idUnique account identifier

Result

If successful, the server returns an array of unique website IDs belonging to the sub-account.

Response example:

[
39,
44
]

Granting a sub-account access to websites

Description

The method allows you to share a website with a sub-account.

Request format

POST /users/{id}/shared-sites
[39,42]
NameDescription
idUnique sub-account identifier
39, 42Unique website identifiers

Result

If successful, the server returns an empty array.

Response example

{
[]
}

Backlink Checker API

List of reports

The method allows to get a list of all backlink reports.

Request format

GET /backlink-reports?limit=100&offset=0&query=host

Request parameters

NameRequiredDescription
limitNoNumber of reports
offsetNoOffset
queryNoSearch string

Result

If successful, the server returns the list of backlink reports from the Backlink Checker tool and the total number of reports.

Response example

{
“total_reports”: 6,
“reports”: [
{
“id”: “11”,
“target”: “goods.ru”,
“mode”: “host”,
“backlinks”: “402717”,
“refdomains”: “2264”,
“created”: “2021-10-06 13:03:20”
},
{
“id”: “9”,
“target”: “gismeteo.by”,
“mode”: “host”,
“backlinks”: “10829727”,
“refdomains”: “2211”,
“created”: “2021-10-06 10:03:28”
},
{
“id”: “7”,
“target”: “travelbama.com”,
“mode”: “domain”,
“backlinks”: “785”,
“refdomains”: “199”,
“created”: “2021-10-06 09:56:05”
},
{
“id”: “6”,
“target”: “seranking.ru”,
“mode”: “domain”,
“backlinks”: “66160”,
“refdomains”: “1002”,
“created”: “2021-10-06 09:55:19”
},
{
“id”: “5”,
“target”: “seranking.com”,
“mode”: “domain”,
“backlinks”: “425573”,
“refdomains”: “5682”,
“created”: “2021-10-06 09:52:10”
},
{
“id”: “4”,
“target”: “niab.by”,
“mode”: “domain”,
“backlinks”: “9709”,
“refdomains”: “261”,
“created”: “2021-10-06 09:47:51”
}
]
}

Response parameters

NameDescription
total_reportsTotal number of reports
reportsArray of reports
idReport ID
targetTarget URL
modehost | domain | url
backlinksTotal number of backlinks for URL
refdomainsTotal number of referring domains for URL
createdDate and time of report creation

New report data

The method allows to get new backlink report data and the amount that will be withdrawn from the account for creating the report.

Request format

GET /backlink-reports/info?mode=host&target=hh.ru

Request parameters

NameRequiredDescription
modeYesdomain | host | url
targetYesDomain or exact URL

Result

If successful, the server returns new backlink report data and the amount that will be withdrawn from the account for creating the report.

Response example

{
“backlinks”: 12750493,
“domains”: 56528,
“price”: {
“amount”: 0.6,
“currency”: “USD”
},
“note”: “Note that only the first 10000 backlinks will be shown.”
}

Response parameters

NameDescription
backlinksTotal number of backlinks for the site
domainsTotal number of domains for the site
amountThe amount that will be withdrawn from the account for creating a report
currencyCurrency
noteNote

Errors

HTTP codeError message
400Invalid url
400Invalid domain
400Invalid mode
400Not enough money in your balance

Creating a report

The method allows to create a new backlink report.

Request format

POST /backlink-reports
{
“mode”:”domain”,
“target”:”http://host/url”
}

Request parameters

NameRequiredDescription
modeYesdomain | host | url
targetYesDomain or exact URL

Result

If successful, the server returns the ID of the created report.

Response example

{
“report_id”:1
}

Response parameters

NameDescription
report_idReport ID

Errors

HTTP codeError message
400Invalid url
400Invalid domain
400Invalid mode
400Failed to get backlinks. Try again later
400Not enough money in your balance

Deleting a report

The method allows to delete a backlink report.

Request format

DELETE /backlink-reports/{report_id}

Request parameters

NameRequiredDescription
report_idYesReport ID

Result

If successful, the server returns the 204 HTTP code.

Errors

HTTP codeError message
404Backlink report not found

Updating a report

The method allows to update a backlink report.

Request format

PUT /backlink-reports
{
“report_id”:1
}

Request parameters

NameRequiredDescription
report_idYesReport ID

Result

If successful, the server returns the 204 HTTP code.

Errors

HTTP codeError message
400Invalid report ID
404Backlink report not found
400Failed to get backlinks. Try again later
400Not enough money in your balance

Report overview

The method allows to get detailed information on all backlinks in the report.

Request format

GET /backlink-reports/{report_id}/overview

Request parameters

NameRequiredDescription
report_idYesReport ID

Result

If successful, the server returns detailed information on all backlinks in the report.

Response example

{
“report_id”:5,
“created”:”2021-10-06″,
“target”:”seranking.com”,
“mode”:”domain”,
“inlink_rank”:58,
“domain_inlink_rank”:82,
“backlinks”:{
“total”:425573,
“nofollow_backlinks”:18667,
“edu_backlinks”:11,
“gov_backlinks”:4,
“backlinks_to_homepage”:5915,
“backlinks_saved”:15284,
“per_domain”:0
},
“domains”:{
“total”:5682,
“domains_to_homepage”:2665,
“domains_to_otherpage”:2846,
“domains_saved”:5492,
“top_domains”:[
{
“domain”:”nl”,
“count”:”3410″,
“name”:”Netherlands”,
“country”:”NL”
},
{
“domain”:”it”,
“count”:”161″,
“name”:”Italy”,
“country”:”IT”
},
{
“domain”:”uk”,
“count”:”160″,
“name”:”United Kingdom”,
“country”:”GB”
},
{
“domain”:”jp”,
“count”:”136″,
“name”:”Japan”,
“country”:”JP”
},
{
“domain”:”ru”,
“count”:”128″,
“name”:”Russia”,
“country”:”RU”
},
{
“domain”:”pw”,
“count”:”121″,
“name”:”Palau”,
“country”:”PW”
}
]
},
“anchors”:{
“total”:1817,
“top_anchors”:{
“links”:[
{
“anchor”:””,
“count”:”9613″
},
{
“anchor”:”SE Ranking”,
“count”:”1224″
},
{
“anchor”:”seranking.com”,
“count”:”363″
},
{
“anchor”:”SERanking”,
“count”:”272″
},
{
“anchor”:”SEO Software for 360 SEO Analysis of your Website.”,
“count”:”138″
},
{
“anchor”:”SERanking SEO monitaring”,
“count”:”117″
},
{
“anchor”:”https://seranking.com/”,
“count”:”110″
},
{
“anchor”:”Seranking LTD”,
“count”:”77″
},
{
“anchor”:”無料で試してみる”,
“count”:”71″
},
{
“anchor”:”301″,
“count”:”67″
}
],
“domains”:[
{
“anchor”:”SE Ranking”,
“count”:”1136″
},
{
“anchor”:””,
“count”:”424″
},
{
“anchor”:”seranking.com”,
“count”:”360″
},
{
“anchor”:”SERanking”,
“count”:”272″
},
{
“anchor”:”SEO Software for 360 SEO Analysis of your Website.”,
“count”:”134″
},
{
“anchor”:”https://seranking.com/”,
“count”:”99″
},
{
“anchor”:”Seranking LTD”,
“count”:”77″
},
{
“anchor”:”301″,
“count”:”67″
},
{
“anchor”:”.”,
“count”:”42″
},
{
“anchor”:”Backlink Checker: Spy on Competitor Backlinks.”,
“count”:”38″
}
]
}
},
“ips”:null,
“subnets”:null
}

Errors

HTTP codeError message
400Invalid report ID
404Backlink report not found

Backlink list for the report

The method allows to get a list and the number of website backlinks for the report.

Request format

GET /backlink-reports/{report_id}/backlinks?limit=100&offset=0

Request parameters

NameRequiredDescription
report_idYesReport ID
limitNoNumber of backlinks
offsetNoOffset

Result

If successful, the server returns a list and the number of website backlinks for the report.

Response example

{
“total_backlinks”:15284,
“backlinks”:[
{
“id”:40624,
“url”:”http://operomagna.it/web-seo-consultant/website-seo-checker.htm”,
“title”:”checker > web seo consultant > website seo checker”,
“anchor_id”:786,
“domain_id”:639,
“image”:1,
“nofollow”:1,
“inlink_rank”:1,
“first_seen”:”2021-05-24″,
“last_visited”:”2021-05-24″,
“page_id”:605,
“ugc”:0,
“sponsored”:0,
“lost_date”:null,
“anchor”:”On-Page SEO Checker SE Ranking.”,
“url_to”:”https://help.seranking.com/tools/on-page-seo-checker/”,
“domain_inlink_rank”:11
},
{
“id”:40626,
“url”:”https://webbaohiem.net/bo-him-dao-cong-c-bo-v-doanh-nhan.html”,
“title”:”Bảo hiểm D&O: Công cụ bảo vệ doanh nhân – Web Bảo Hiểm”,
“anchor_id”:788,
“domain_id”:641,
“image”:1,
“nofollow”:1,
“inlink_rank”:3,
“first_seen”:”2021-05-24″,
“last_visited”:”2021-05-24″,
“page_id”:607,
“ugc”:0,
“sponsored”:0,
“lost_date”:null,
“anchor”:”link”,
“url_to”:”https://online.seranking.com/research.overview.html?filter=base_domain&input=gayincesttube.com”,
“domain_inlink_rank”:37
}
]
}

Errors

HTTP codeError message
400Invalid report ID
404Backlink report not found

Domain list for the report

The method allows to get a list and the number of domains for the backlink report.

Request format

GET /backlink-reports/{report_id}/domains?limit=100&offset=0

Request parameters

NameRequiredDescription
report_idYesReport ID
limitNoNumber of domains
offsetNoOffset

Result

If successful, the server returns a list and the number of domains for the backlink report.

Response example

{
“total_domains”:5491,
“domains”:[
{
“id”:”2″,
“yandex_x”:null,
“domain_inlink_rank”:”64″,
“backlinks”:”13″,
“first_seen”:”2021-05-23″,
“lost_date”:null,
“domain”:”seranking.ru”
},
{
“id”:”21″,
“yandex_x”:null,
“domain_inlink_rank”:”9″,
“backlinks”:”1″,
“first_seen”:”2021-03-16″,
“lost_date”:null,
“domain”:”www.ruecouponcode.com”
},
{
“id”:”22″,
“yandex_x”:null,
“domain_inlink_rank”:”60″,
“backlinks”:”1″,
“first_seen”:”2021-04-05″,
“lost_date”:null,
“domain”:”p.eurekster.com”
}
]
}

Errors

HTTP codeError message
400Invalid report ID
404Backlink report not found

Anchor list for the report

The method allows to get a list and the number of anchor texts for the backlink report.

Request format

GET /backlink-reports/{report_id}/anchors?limit=100&offset=0

Request parameters

NameRequiredDescription
report_idYesReport ID
limitNoNumber of anchor texts
offsetNoOffset

Result

If successful, the server returns a list and the number of anchor texts for the backlink report.

Response example

{
“total_anchors”:1808,
“anchors”:[
{
“id”:”786″,
“anchor”:”On-Page SEO Checker SE Ranking.”,
“domains”:”3″,
“backlinks”:”3″,
“first_seen”:”2021-05-11″,
“last_visited”:”2021-05-24″,
“dofollow”:”0″,
“words”:”5″
},
{
“id”:”787″,
“anchor”:”feat”,
“domains”:”1″,
“backlinks”:”1″,
“first_seen”:”2021-05-24″,
“last_visited”:”2021-05-24″,
“dofollow”:”0″,
“words”:”1″
},
{
“id”:”788″,
“anchor”:”link”,
“domains”:”20″,
“backlinks”:”20″,
“first_seen”:”2019-02-25″,
“last_visited”:”2021-05-24″,
“dofollow”:”3″,
“words”:”1″
}
]
}

Errors

HTTP codeError message
400Invalid report ID
404Backlink report not found

Backlink groups API

Getting a list of backlink groups

The method allows to get a list and number of backlink groups.

Request format

GET /backlink-groups/{site_id}

Request parameters

NameRequiredDescription
site_idYesWebsite ID

Result

If successful, the server returns the list and number of backlink groups.

Response example

{
“total_groups”: 2,
“groups”: [
{
“id”: 1,
“name”: “General”,
“count”: 5
},
{
“id”: 2,
“name”: “Second group”,
“count”: 1
}
]
}

Response parameters

NameDescription
total_groupsTotal number of groups
groupsArray of groups
idGroup ID
nameGroup name
countNumber of backlinks in group

Errors

HTTP codeError message
403Access denied (wrong site_id)

Creating a group of backlinks

The method allows to create a group of website backlinks.

Request format

POST /backlink-groups/{site_id}
{
“name”: “Group name”
}

Request parameters

NameRequiredDescription
site_idYesWebsite ID
nameYesGroup name

Result

If successful, the server returns a backlink group ID.

Response example

{
“group_id”: 2
}

Response parameters

NameDescription
group_idBacklink group ID

Errors

HTTP codeError message
403Access denied (wrong site_id)
400Invalid name
400Group already exists

Deleting a backlink group

The method allows to delete a group of a website’s backlinks.

Request format

DELETE /backlink-groups/{site_id}?id={id}

Request parameters

NameRequiredDescription
site_idYesWebsite ID
idYesBacklink group ID

Result

If successful, the server returns the 204 HTTP code.

Errors

HTTP codeError message
403Access denied (wrong site_id)
400Invalid group ID
400Group does not exist

Renaming a backlink group

The method allows to change the name of a backlink group.

Request format

PUT /backlink-groups/{site_id}
{
“id”: 2,
“name”: “New group name”
}

Request parameters

NameRequiredDescription
site_idYesWebsite ID
idYesBacklink group ID
nameYesNew backlink group name

Result

If successful, the server returns the 204 HTTP code.

Errors

HTTP codeError message
403Access denied (wrong site_id)
400Invalid name
400Group already exists

Moving backlinks to another group

The method allows to move backlinks from one group to another.

Request format

POST /backlink-groups/{site_id}/move
{
“id”: 1,
“backlink_ids”: [1],
“group_ids”: [2]
}

Request parameters

NameRequiredDescription
site_idYesWebsite ID
idYesBacklink group ID to move to
backlink_idsNoArray of IDs of backlinks to be moved
group_idsNoArray of IDs of backlink groups to be moved

Result

If successful, the server returns the 204 HTTP code.

Errors

HTTP codeError message
403Access denied (wrong site_id)
400Invalid group IDs
400Backlink group IDs
400IDs of groups or backlinks are required

Keyword Research API

Getting data on keywords

Description

The method allows getting various data on keywords.

Request format

POST https://api4.seranking.com/research/{source}/analyze-keywords/

Parameters

Name Required Description
sourceYesThe database that is requested.
keywordsYesKeywords to analyze. 5,000 max per single request.
sort NoSorting (CPC by default)
sort_order NoSorting order: asc or desc (desc by default)
colsNoThe list of return values (separated by commas)

Result

If successful, the server returns the list of keywords with their parameters.

Example

[
{
is_data_found: true,
keyword: “seranking.com”,
volume: 10,
cpc: 0.00,
competition: “0.00”,
difficulty: 90,
history_trend: {
“2020-03-01”: 10,
“2020-04-01”: 10,
“2020-05-01”: 10,
“2020-06-01”: 10,
“2020-07-01”: 10,
“2020-08-01”: 10,
“2020-09-01”: 10,
“2020-10-01”: 10,
“2020-11-01”: 10,
“2020-12-01”: 10,
“2021-01-01”: 10,
“2021-02-01”: 10
}
},

]

Response parameters

Name Description
is_data_foundShows whether keyword id data is found: values are either true or false
keywordKeyword
volumeSearch volume
cpcCPC
competitionCompetition
difficultyKeyword difficulty
history_trendSearch volume history

Errors

HTTP code Error message
400Incorrect order field {sort} {sort_order}
400Number of keywords exceeded. Max keywords per single request: 10000
400Invalid keywords
400Invalid source

Search volume check API

Adding a volume check request

Description

The method allows adding a request to check a search volume. Checking one keyword costs $0.005. Checking a few keywords (from 2 to 700) costs $0.2.

Request format

POST https://api4.seranking.com/key-volume/

Parameters

If the region id is passed, the check is performed via Google. If the Yandex region and type are passed, the check is done via Yandex.

Name Required Description
queryYes Search query or a query array 

Result

If successful, the server returns the request ID for checking.

Response example

{
“id”:1
}

Errors

HTTP code Error message
400 Invalid

Request list

Request format

GET https://api4.seranking.com/key-volume/

Result

If successful, the server returns the request list for the search volume check.

Response example

[
{
“id”:1,
“add_time”: “2018-08-15 12:51:21”,
“total_queries” : 1,
“total_finished” : 1,
“country’ : “USA”
}
]

Check results

Request format

GET https://api4.seranking.com/key-volume/{task_id}

Result

The server returns the check result or status.

Response example

If the result has not been received yet.

{
“status” : “processing”
}

If the result is ready.

[{
“query”: “query 1”,
“volume”: 2342
}]

Deleting a volume check request

Request format

DELETE https://api4.seranking.com/key-volume/{task_id}
Result

If successful, the server returns HTTP 204.

API Limits and Restrictions

To ensure the continuous operation of SE Ranking’s API for all clients, we limit the speed of sending queries. Any API method can be invoked no more than 10 time per second.

For example, if a client application makes more than 10 query per second, the server will return the 429 error code and a message that the application needs to slow down.

If users repeatedly go over the limit on the number of possible queries per second, they will have limited access to the API for 10 minutes. Should the limit be exceeded again in the future, the blocking time will increase.

The Competitor Research and Keywords Research APIs allow sending 1 request per second (while for other tools, it is 10 requests per second).

API Error codes and statuses

In case of an error, the server returns its HTTP code and a textual error message.

Example

HTTP/1.0 403 Forbidden
Content-Type: application/json
{“message”:”No token”}

All API methods can return the following error codes:

HTTP codeError message
500 Server errorInternal server error
400 Bad RequestInvalid request format
403 No token No API key is present in the request
403 Incorrect token An invalid API key is present in the request
403 No accessAction is not available
403 Access deniedAccess to the resource is denied
404 Not FoundThe resource does not exist for the requested path
429 Too Many RequestsThe limit on the number of requests has been exceeded

SERP Results API

SERP Results API is aimed at getting the TOP 100 SERP results from Google for the key phrases (with URL, snipped, site’s position) without having an active project in SE Ranking.

One request to SERP Results API costs:

$0.003

Adding a keyword

Description

The method allows to add a query to the queue to obtain SERP results.

Parameters

NameRequiredDescription
queryYesSearch query or a query array (a max number of characters in a query – 255, a max number of queries in an array — 1000)
engine_idYes
Unique search engine ID. A complete list of search engines and their unique IDs can be obtained via GET /system/search-engines (be sure to type in Google)
region_nameNo
Name of region for search (only for the Google search engine)

Request format

POST /parsing/serp/tasks
{
“engine_id”: 1,
“query”: “text”
or
“query”: [“text”, “text2”]
}

Result

If successful, the server returns the unique ID of every query added to the queue

NameRequiredDescription
task_idYesUnique query ID

Response example

[
{
“query”: :”text”,
“task_id”: 123456
}
]

Errors

HTTP codeError message
400Invalid engine_id
400Empty query
400Query $query too long
403Empty balance

Status verification and getting the verification results

Description

The method allows to get the result of a keyword that was previously added to the queue. If the keyword positions have not yet been recorded, the invoked method returns the status. The results are stored for 24 hours, then they are deleted.

Parameters

NameRequiredDescription
task_idYesUnique query ID

Request format

GET /parsing/serp/tasks/{task_id}

Result

If successful, the server returns the query status.

If the query is in queue, the server returns the following status: processing.

Response example

{
“status”: “processing”
}

If the verification has been completed, the results of the verification are returned. If successful, the server returns an array containing the query results from the TOP 100 SERPs.

NameRequeryDescription
positionYes Page position in the TOP 100
urlYes URL of the page that’s ranked in the TOP 100
titleYes Title of the page in the TOP 100
snippetYes Description snippet of the page in the TOP 100
cache_urlNo Link to the cached copy of a page that’s ranked in the TOP 100

Response example

{
“results”: [
{
“position”: “1”,
“url”: “https://www.pizzahut.com/”,
“title”: “Pizza Hut: Pizza Delivery”,
“snippet”: “Order pizza online for fast delivery or carryout from a store near you. View our full menu, see nutritional information, find store locations, and more.“,
“cache_url”: “https://webcache.googleusercontent.com/search?q=cache:oiTvlHsuOeEJ:https://www.pizzahut.com/+&cd=4&hl=en&ct=clnk&gl=us”
},

“position”: “99”,
“url”: “https://techcrunch.com/2018/08/20/google-doctor-fork/”,
“title”: “Google created a fake pizza brand to test out creative strategies for …”,
“snippet”: “Aug 20, 2018 – Google’s Unskippable Labs team has been testing ad effectiveness in a compelling new way: It created a fake pizza brand called Doctor Fork, …“,
“cache_url”: “https://webcache.googleusercontent.com/search?q=cache:wi5sKCy0ResJ:https://techcrunch.com/2018/08/20/google-doctor-fork/+&cd=120&hl=en&ct=clnk&gl=us”
}
]
}

Errors

HTTP codeError message
404Task not found

List of all user queries

Description

The method allows to obtain a list of all user queries that were added to the queue in the last 24 hours.

Request format

GET /parsing/serp/tasks

Result

If successful, the server returns an array of queries that were added to the queue, and their statuses.

NameDescription
id Unique query ID
query Keyword or phrase (query)
region_name Name of region for search (only for the Google search engine)
engine_id
Unique search engine ID. A complete list of search engines and their unique IDs can be obtained via GET /system/search-engines (be sure to type in Google)

added
The date when the query was added to the queue.
is_completed Query verification status (1 – checked, 0 – no)

Response example

{
“tasks”: [
{
“id”: “18638740”,
“query”: “book”,
“region_name”: null,
“engine_id”: “411”,
“added”: “2018-08-28 10:25:29”,
“is_completed”: “0”
},

{
“id”: “18639398”,
“query”: “pizza”,
“region_name”: “New York”,
“engine_id”: “200”,
“added”: “2018-08-28 12:25:52”,
“is_completed”: “1”
}
]
}