This guide is intended to ease the process of modeling your backlink checking software.
In-depth reports will provide users with deep insights on a site’s backlinks, revealing its top pages, referring domains, anchors, link gap and referral traffic. Making their way through each of these reports, users will get detailed performance stats, discover hidden backlinks opportunities and evaluate the site’s link-building strategies from different perspectives.
Relying on DataForSEO’s powerful Backlinks API, you will be able to enrich your backlink analysis tool with this functionality fast and smoothly. You can also pick separate reports to implement, as each of them comes with individual and complete specifications.
With the data from the Top Pages report, users will easily research their top-performing content and find out what type of content best fits their link-building strategies. In addition to that, users can quickly see which competitor pages are doing the best in terms of acquiring quality links, and gain valuable insights for their own link-building campaigns.
To produce the Top Pages Report, you’ll need to use DataForSEO Backlinks API – Summary, Domain Pages, Backlinks, Referring Domains endpoint, and DataForSEO Labs API – Bulk Traffic Estimation endpoint. Below you will find the details on implementing each component.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/backlinks/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "dataforseo.com",
"mode": "as_is",
"filters": [["dofollow", "=", true], "and",["url_to", "like", "%blog/%"]],
"limit": 1000
}
]"
The first pie chart illustrates the ratio of backlinks to the homepage versus all pages of a website. Similarly, the second pie chart shows the balance between domains referring to the main page versus all website pages. Relying on these numbers, users can evaluate the backlink profile quality and see if it’s necessary to strengthen the subpages.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/backlinks/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "example.com",
"mode": "as_is",
"filters": ["dofollow", "=", true],
"limit": 1000
}
]"
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/backlinks/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "https://example.com/",
"mode": "as_is",
"filters": ["dofollow", "=", true],
"limit": 1000
}
]"
In a similar fashion, you should use a domain/path and a homepage for two requests to the Referring Domains endpoint. The total_count values from the respective responses will help you to create the second pie chart.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/referring_domains/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "example.com",
"backlinks_filters": ["dofollow", "=", true],
"limit": 1000
}
]"
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/referring_domains/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "https://example.com/",
"backlinks_filters": ["dofollow", "=", true],
"limit": 1000
}
]"
The count of broken pages shows users how many pages may lead to dead links and cause usability and crawlability issues. In terms of competitor research, this feature may also hint at the scope of opportunities users have for dead link-building.
To implement this feature, request the Summary endpoint with a domain/path as a target, and use the value from the broken_pages field you receive in the response.
This functionality allows users to refine the table data. Toggling the button, they can choose between reviewing all or broken pages.
The total count below the table filter will show users how many domain pages are matching the set rules. Corresponding field in the response: total_count.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/domain_pages/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "example.com",
"backlinks_filters": ["dofollow", "=", true],
"filters": ["status_code", "in", [400,599]],
"order_by": ["page_summary.backlinks,desc","page_summary.rank,desc"],
"limit": 1000
}
]"
‘All vs page backlinks’ bar. Corresponding fields: backlinks from the page_summary object (Domain Pages endpoint); backlinks from the Summary endpoint response for a domain/path as a target.
Besides the columns displayed by default, you can also provide users with an opportunity to select additional columns. The Domain Pages endpoint response will supply you with the necessary data for each page:
Accessing the Referring Domains Report, users will tap into powerful data on resources that link to their site, and will be able to gather insights on competitors’ top link-building partners.
To implement this view for streamlined analysis of domains linking to target, you should integrate DataForSEO Backlinks API – Summary, History, Backlinks, Referring Domains endpoints, and DataForSEO Labs API – Bulk Traffic Estimation endpoint.
We’ve described all functionality parts and related API parameters in detail below.
The dynamic view of changes in the number of referring domains will help users evaluate the intensity of the target’s link-building campaigns.
The graph allows switching between the views of All, New, or Lost referring domains. It’s also possible to select a time period for which to display data: all time, last year, or last 6 months.
These counters show current numbers of domains, main domains, .edu* and .gov* domains pointing to the target. Comparing up-to-date stats for their website alongside competitor’s data, users can quickly estimate what it would take to beat the competition.
The numbers of referring_domains and referring_main_domains can be found in the response of the Backlinks Summary endpoint. To get values for referring .edu* and .gov* domains, you’ll need to set two additional tasks to the Summary endpoint specifying a filter with the necessary TLD. The referring_domains field in the response will indicate the number of referring domains matching the set rule.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/summary/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "example.com",
"backlinks_filters": ["tld_from", "=", "edu"],
"limit": 1000
}
]"
The pie chart and table of top 10 referring top-level domains (TLDs) for a target can be useful in several ways. Firstly, this data reveals the main target geographies of the analyzed website. Secondly, it serves as one of the main indicators of spam in a site’s backlink profile.
To get data for the table, you’ll need to request the Summary endpoint, and use the referring_links_tld object from the response. In order to create the pie chart with the percentage of links coming from each TLD, you should convert the data into percentages.
All. No filter.
New. "filters": ["first_seen", "<", "2021-11-19 00:00:00 +00:00"]. Use a date which is no further than two months ago.
Lost. "filters": ["lost_date", ">", "2015-01-01 00:00:00"]. This filter will extract domains for which lost_date is not null, meaning that such domains are lost as of the indicated date.
Dofollow & nofollow. No filter.
Dofollow. "backlink_filters": ["dofollow", "=", true]
Nofollow. "backlink_filters": ["dofollow", "=", false]
TLD from. Use referring_links_tld from the response of the Summary endpoint to show available options. To filter the data, specify the necessary TLDs as in the example: "filters": [["referring_links_tld.com", ">", 0], "or", ["referring_links_tld.org", ">", 0]].
Platform types. Use referring_links_platform_types from the response of the Summary endpoint to show available options. To filter the data, specify the necessary platform types as in the example: "filters": [["referring_links_platform_types.cms", ">", "0"], "or", ["referring_links_platform_types.blogs", ">", "0"]].
Link type. Use referring_links_types from the response of the Summary endpoint to show available options. To filter the data, specify the necessary link types as in the example: "filters": [["referring_links_types.anchor", ">", "0"], "or", ["referring_links_types.image", ">", "0"]].
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/referring_domains/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "backlinko.com",
"limit": 100,
"order_by": ["rank,desc"],
"exclude_internal_backlinks": true,
}
]"
Each table column (except for Organic Traffic) corresponds to the eponymous field from this endpoint’s response. Note that to display the number of Dofollow links from each domain, you should subtract the value in referring_links_attributes.nofollow from the value in backlinks for each returned domain.
In order to implement a bar showing all backlinks vs backlinks from this domain, you should use backlinks from the Summary endpoint response for a target and backlinks value returned in the Referring Domains endpoint.
If you’d like to display the Organic Traffic column, you’ll need to ccall the Bulk Traffic Estimation endpoint as described here, and use etv from the items.metrics.organic.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/backlinks/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "example.com",
"mode": "as_is",
"filters": ["domain_from", "=","referring-domain.com"],
"limit": 1000
}
]"
The list below will help you draw parallels between the table columns and required response fields from the Backlinks endpoint.
Anchors Report will help users to evaluate the relevance of the target’s links by their anchor text. Data from this report will be particularly useful for researching appropriate topics associated with the target site and identifying products most promoted through backlinks.
DataForSEO will supply you with the data necessary to build this section. Here, you’ll need the Anchors and the Backlinks endpoints from the Backlinks API, and the Bulk Traffic Estimation endpoint from the DataForSEO Labs API.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/anchors/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "forbes.com",
"limit": 10,
"order_by": ["backlinks,desc"],
"backlinks_filters": ["dofollow", "=", true]
}
]"
The response will furnish you with all the necessary data. Anchor text will be provided in the anchor field, while the number of backlinks with this anchor will be returned in the backlinks field. Each backlinks_anchor element will also contain the referring_links_tld object with data for the TLDs and Domains table and pie chart. Similarly, data for the Locations table and pie chart can be found in the referring_links_semantic_locations object.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/anchors/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "forbes.com",
"limit": 100,
"order_by": ["backlinks,desc"],
"filters": ["anchor","like","%news%"],
"backlinks_filters": ["dofollow", "=", true]
}
]"
Here is a list of necessary response fields for each column:
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/backlinks/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "example.com",
"mode": "one_per_domain",
"filters": ["anchor", "=","best in class blog in the world"],
"limit": 1000
}
]"
The list below will help you draw parallels between the table columns and required response fields.
The table also features a button in the Backlinks column clicking on which will open a nested table of referring pages. Basically, it lists backlinks pointing to the target with the selected anchor and shows several stats for each referring page. The table will display 5 referring pages by rank by default, however, it can also be expanded.
Note that to implement this table, you’ll need to make a request to the Backlinks endpoint with mode set to as_is and necessary anchor specified in the filters array.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/backlinks/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "example.com",
"mode": "as_is",
"filters": ["domain_from", "=","best in class blog in the world"],
"limit": 1000
}
]"
The list below will help you draw parallels between the table columns and required response fields from the Backlinks endpoint.
This report will help users to find a valuable set of backlink opportunities. In particular, Link Gap will uncover websites and pages that send the most valuable links to up to 5 competitors but do not link to the user’s site. Ultimately, users can reach out to the resources obtained with this report, and acquire relevant links to their content.
To devise this functionality, you can incorporate two endpoints of DataForSEO Backlinks API – Domain Intersection and Page Intersection. In addition to that, you’ll need to use the Bulk Traffic Estimation endpoint from the DataForSEO Labs API.
Entering the Link Gap report, users will first need to specify targets that will be cross-analyzed. When making calls to DataForSEO Backlinks API, you will need to specify the targets array accordingly.
Note that a quality UI of a backlink checker can fit up to 5 targets into a table to keep it meaningful. Even though you can enter up to 20 targets per task in DataForSEO Backlinks API, we recommend using no more than 5 targets for this functionality.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/domain_intersection/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw [
{
"targets": {
"1": "http://planet.postgresql.org/",
"2": "http://gborg.postgresql.org/"
},
"include_subdomains": false,
"limit": 5,
"order_by": [
"1.backlinks,desc"
],
"exclude_internal_backlinks": true
}
]"
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/page_intersection/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"targets": {
"1": "adidas.com",
"2": "nike.com"
},
"limit": 5,
"order_by": [
"1.rank,desc"
],
"filters": [
[
"2.domain_from_rank",
">",
400
],
"and",
[
"1.dofollow",
"=",
true
]
]
}
]"
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/domain_intersection/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw [
{
"targets": {
"1": "adidas.com",
"2": "nike.com"
},
"exclude_targets": [
"puma.com"
],
"include_subdomains": false,
"limit": 5,
"order_by": [
"1.backlinks,desc"
],
"exclude_internal_backlinks": true
}
]"
{
"filters": [
[
"1.referring_links_tld.com",
">",
0
],
"and",
[
"2.referring_links_tld.com",
">",
0
]
],
"backlinks_filters": [
[
"dofollow",
"=",
true
]
]
}
{
"filters": [
[
"1.tld_from",
"=",
"com"
],
"and",
[
"2.tld_from",
"=",
"com"
],
"and",
[
"1.dofollow",
"=",
true
],
"and",
[
"2.dofollow",
"=",
true
]
]
}
When a user selects mode: intersect referring domains, the table of the Link Gap report will contain data on domains linking to all specified targets. So, once a user enters competitor sites as targets, the table will show websites linking to the user’s competitors. If a user additionally specifies their site as a target that should be excluded from cross-analysis, the table will show websites that link to all competitors but do not link to the user’s site.
As we explained in Intersecting Targets Input and Table Filters, you’ll need to configure your requests to the Domain Intersection endpoint according to the user preferences (of targets and filters). The response from this endpoint will supply you with all the data necessary for the table.
Clicking a button in the corresponding Backlinks column (for target1 or target2), users will open a nested table of referring pages. Basically, it will show users a list of all backlinks coming to the relevant targets from the domain indicated in the main table. The drop-down table will display 5 referring pages by rank by default, however, it can also be expanded.
Note that to implement this table, you’ll need to make a request to the Page Intersection endpoint indicating the same targets and exlude_targets as in the call to the Domain Intersection endpoint for the main table. You should also specify the related domain_from in the filters array.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/page_intersection/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"targets": {
"1": "adidas.com",
"2": "nike.com"
},
"exclude_targets": [
"puma.com"
],
"limit": 5,
"order_by": [
"1.backlinks,desc"
],
"filters": [
[
"1.domain_from",
"=",
"usatoday.com"
],
"and",
[
"1.dofollow",
"=",
true
]
]
}
]"
The list below will help you draw parallels between the table columns and required response fields from the Page Intersection endpoint. Note that you should use data from the array with the number of the corresponding target (from 1 to 20). In the example below, we’re using data for target1.
When a user selects mode: intersect referring pages, the table of the Link Gap report will contain data on unique URLs linking to all specified targets. So, once a user enters competitor sites as targets, the table will show pages linking to the user’s competitors. Users can additionally specify their site as a target that should be excluded from cross-analysis. In that case, the table will show pages that link to all competitors but do not link to the user’s site.
As we explained in Intersecting Targets Input and Table Filters, you’ll need to configure your requests to the Page Intersection endpoint according to the user preferences (of targets and filters). The response from this endpoint will supply you with all the data necessary for the table.
Clicking a button in the corresponding Backlinks column (for target1 or target2), users will open a nested table of referring pages. Basically, it will show users a list of all backlinks coming to the relevant targets from the referring page indicated in the main table. The drop-down table will display 5 backlinks by rank by default, however, it can also be expanded.
Note that to implement this table, you’ll need to use data from the same call to the Page Intersection endpoint that you made for the Table of Intersecting Pages.
The list below will help you draw parallels between the table columns and required response fields from the Page Intersection endpoint. Note that you should use data from the array with the number of the corresponding target (from 1 to 20). In the example below, we’re using data for target1.
The Referral Traffic Report is designed to provide details on referral traffic and its sources. By using this feature, users will be able to monitor the quantity and quantity of backlinks and analyze their impact on the amount of referral traffic.
This functionality can be implemented using two endpoints of Backlinks API – Referring Domains and Backlinks. To obtain detailed information on traffic and its sources, you can ask users to share their Google Analytics data via the Reporting API and Google Auth 2.0.
Knowing how much traffic is acquired over time is integral to understanding the results, and consequently measuring the ROI of link-building campaigns. The referral traffic time series will provide your users with this information in the most comprehensive format.
For now, DataForSEO cannot offer any alternatives for obtaining referral traffic data with this level of detail. So, the only way you can acquire the data behind this graph is by leveraging the Google Analytics API. However, note that this will require you to implement certain security measures and go through the rigorous review process. On top of that, users will only be able to view data on websites they have access to, rendering all potential competitor research capabilities practically useless.
You can read more about integrating Google Analytics data into third-party applications in Google’s official documentation.
This pie chart illustrates the share of referral traffic in the overall volume as well as in comparison to other traffic sources.
While this, frankly, is not the most important piece of information in the Referral Traffic Report, it could be useful in justifying the resources spent on link-building activities. The data for this graph can be obtained from the user’s Google Analytics.
Having established a firm understanding of how much traffic referral sources generate, it’s important to give users more detailed information on these sources. Are these sources reputable? How many visitors did they manage to attract? How many of these visitors bounced back to where they came from? Answering these questions would help your users dwell deeper into the backlink profile and estimate the value of each referral source.
To make this happen, you’d need to use a combination of DataForSEO Backlinks API and Google Analytics API. The former will provide you with the referral source’s rank and backlink data, while the latter is essential for obtaining all other metrics, namely: percentage of visits, new visits, pages per visit, and bounce rate.
The key to implementing this must-have feature is a synchronization of data obtained from both sources and cross-matching the corresponding parameters.
Google Analytics API
DataForSEO Backlinks API
You can obtain data for both these columns from the Referring Domains endpoint. Note that you should apply the filter by the referring domain in the POST request.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/referring_domains/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "inc.com",
"limit": 5,
"order_by": ["rank,desc"],
"exclude_internal_backlinks": true,
"backlinks_filters": ["dofollow", "=", true],
"filters": [["domain", "=", “hackeundspitze.de”], “or”, [“domain”, “=”,“paypal.com”], “or” [“domain”, “=”,“startpage.com”]]
}
]"
In the API response look for the “rank” and “backlinks” fields in the items array.
The table also features a button in the Backlinks column clicking on which will open a nested table of referring pages. Basically, it lists backlinks pointing to the target from the selected referral source and shows several stats for each referring page. The table will display 5 referring pages by rank by default, however, it can also be expanded.
Note that to implement this table, you’ll need to make a request to the Backlinks endpoint with mode set to as_is and a necessary domain specified in the filters array.
login="login" \
password="password" \
cred="$(printf ${login}:${password} | base64)" \
curl --location --request POST "https://api.dataforseo.com/v3/backlinks/backlinks/live" \
--header "Authorization: Basic ${cred}" \
--header "Content-Type: application/json" \
--data-raw "[
{
"target": "example.com",
"mode": "as_is",
"filters": ["domain_from", "=","hackeundspitze.de"],
"limit": 1000
}
]"
The list below will help you draw parallels between the table columns and required response fields from the Backlinks endpoint.
This dashboard provides the growth dynamics of referring domains and backlinks, while also estimating the ranking score of the target domain and URL. In a nutshell, the Backlink Profile Overview is intended to showcase the backlink profile of any target – i.e., domain, subdomain, or webpage.
The Backlinks Section is an indispensable functionality part for any backlink analytics tool. It offers whopping data on the target’s backlinks, revealing the ones that are the most valuable, recently gained or lost, and backlinks that are no longer working.