In-depth Backlink Reports

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.

See Docs Sign up

Top Pages

top pages

Referring Domains

referring domains

Anchors

anchors report

Link Gap

link gap

Referral Traffic

referral traffic

Top Pages Report

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 APISummary, Domain Pages, Backlinks, Referring Domains endpoint, and DataForSEO Labs APIRanked Keywords endpoint. Below you will find the details on implementing each component.

top pages

Components

Domain input

Before you can display any report for a target you need to know the target’s scope. With DataForSEO Backlinks API you can get data on a whole domain or just a part of it by using one of the options below.

  • To get data for the whole domain with all of its subdomains, you should specify the domain name in the “target” field (without https:// and www.) and set the “include_subdomains” parameter to true.
  • To retrieve data for a particular URL, you should specify an absolute URL with https:// and www. in the “target” field.
  • To analyze a domain without its subdomains, or to get data on a particular subdomain, you should should specify name of the domain/subdomain in the “target” field (without https:// and www.) and set the “include_subdomains” parameter to false.
  • To extract data for a specific path, you should indicate the domain name in the “target” field (without https:// and www.) and additionally apply the following filter: ["url_to","like","%/path/%"]. When setting tasks to the Summary, Anchors, and Domain Pages endpoints, you should specify this filter in the "backlinks_filters" array. If you set a task to the Backlinks endpoint, use the “filters” array.
Note that for the Top Pages Report, you should only set a domain (with or without subdomains) or a path as a target. It is impossible to return top pages for a target when a target itself is a single page.
Here’s an example of the cURL request to return 1,000 dofollow backlinks for DataForSEO Blog:
        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
            }
        ]"
        

Broken Pages Counter

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.

Table Filter and Total Count

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.

In order to display broken pages only, you should call the Domain Pages endpoint using a filter as in the example below:
                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
                    }
                ]"
                

Top Pages Table

top-pages-table
The table of Top Pages by backlinks is the front-center element of the Top Pages Report. Basically, this table reveals a domain’s most linked-to pages, along with a few important stats for each page, including its status code, Page Rank, number of incoming backlinks and referring domains, and the volume of organic traffic. This data will come in handy when analyzing a site’s top-performing content or looking to replicate competitor strategies based on their best-performing pages. Also, the Top Pages table can help users find the most linked-to broken pages on competitor sites and streamline dead link-building.
If you’d like to implement this table, below is a list of necessary endpoints and fields grouped by column:
Note that to display Organic Traffic for each URL, you’ll need to call the Ranked Keywords endpoint of DataForSEO Labs API for each URL separately. Here’s an example cURL request to obtain estimated traffic volume for the DataForSEO Backlinks API page.
        login="login" \
        password="password" \
        cred="$(printf ${login}:${password} | base64)" \
        curl --location --request POST "https://api.dataforseo.com/v3/dataforseo_labs/ranked_keywords/live" \
        --header "Authorization: Basic ${cred}"  \
        --header "Content-Type: application/json" \
        --data-raw "[
        {
            "target": "example.com",
            "language_name": "English",
            "location_code": 2840,
            "filters":  [
                [
                    "keyword_data.keyword_info.search_volume",
                    "<>",
                    0
                ],
                "and",
                [
                    [
                        "ranked_serp_element.serp_item.type",
                        "<>",
                        "paid"
                    ],
                "or",
                [
                    "ranked_serp_element.serp_item.is_paid",
                    "=",
                    false
                ]
            ],
            "and",
                [
                    "ranked_serp_element.serp_item.relative_url",
                    "=",
                    "/apis/backlinks-api"
                ]
            ],
        ]"
        

Additional columns

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:

  • Status code. Corresponding field: status_code from the items array.
  • Internal links. Corresponding field: internal_links_count from the meta object.
  • External links. Corresponding field: external_links_count from the meta object.
  • Referring subnets. Corresponding field: referring_subnets from the page_summary object.
  • Referring links types (e.g., anchor, image, link). Corresponding field: referring_links_types from the page_summary object.
  • Previously visited. Corresponding field: prev_visited from the items array.
  • Size (in bytes). Corresponding field: size from the items array.

Drop-down Table: Referring Pages

top-pages-table-referring-pages
By clicking on the drop-down button in the Backlinks column, users can open a nested table. This table is showing pages referring to the page from the URL column of the main table. By default, the drop-down table here allows users to check up to 5 top referring pages by rank. However, it’s also possible to expand the table to view more data.
To create this built-in functionality, you should call the Backlinks endpoint with the necessary URL as a target. The list below will help you draw parallels between the table columns and required response fields.
  • Page Rank: page_from_rank from the items object.
  • Domain Rank: domain_from_rank from the items object.
  • Link Rank: rank from the items object.
  • Backlinks Context: text_pre, anchor, text_post from the items object.
  • DF/NF: dofollow from the items object. If true, the backlink is dofollow.
  • Link type (e.g., anchor, image, link): item_type from the items object.
  • Organic Traffic: etv from the result.metrics.organic in the Ranked Keywords endpoint response (!). You can read more about the necessary request details here.
  • First Seen: first_seen from the items object.
  • Last Seen: last_seen from the items object.
  • Links count: links_count from the items object.

Drop-down Table: Referring Pages

top-pages-table-referring-domains
Similarly, users can open a different nested table by clicking on the drop-down button in the Referring domains column. This table is showing domains referring to the page from the URL column of the main table. By default, users can check up to 5 top referring domains by rank. However, it’s also possible to expand the table to view more data.
Note that to create this built-in functionality, you should call the Backlinks endpoint with mode set to one_per_domain and the necessary URL set as a target. The list below will help you draw parallels between the table columns and required response fields.
  • Referring domain: domain_from from the items object.
  • Domain Rank: domain_from_rank from the items object.
  • Backlinks (total number of backlinks from this domain): group_count from the items object.
  • Organic Traffic: etv from the result.metrics.organic in the Ranked Keywords endpoint response (!). You can read more about the necessary request details here.
  • First Seen: first_seen from the items object.
  • Last Seen: last_seen from the items object.

Referring Domains Report

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 – Ranked Keywords endpoint.

We’ve described all functionality parts and related API parameters in detail below.

referring domains

Components

Referring Domains Graph

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.

To create the graph of referring domains, you’ll need to call the Backlinks History endpoint. When setting a task, you should specify the necessary time period using the date_from and date_to fields. Once you receive a response, each backlinks_history item will be supplied with the number of referring_domains, new_referring_domains, and lost_referring_domains for a certain date.

Counters of Referring Domains

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

Referring TLDs: Pie Chart and Table

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.

Table Filters

new-backlinks-table
Table Filters are a quick way to refine table data. With the first button, users can switch between all, new and lost referring domains. The second button will help users pull out data on both dofollow & nofollow links, only dofollow or only nofollow ones. Using the TLD from, users select TLDs for which to display data. Platform types selector will pick only domains on a certain type of platform (e.g., blog, cms). The link type button will help to extract data for backlinks of a certain type(s), namely, anchor, image, alternate, and redirect links. The total count below the filters will indicate the number of referring domains matching the set rules (corresponding field in the response: total_count).
Basically, each of the UI filters corresponds to a filter you’ll need to apply when making a request to the Referring Domains endpoint.

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

Referring Domains Table

referring-domains-report-ref-domains-table
The table of Referring Domains contains comprehensive data on domains pointing to the target. By default, referring domains are presented in descending order by rank, however, users can sort the table by other columns too. Applying different sorting, users can pinpoint top domains sending the most valuable links to the target, uncover sites driving it more traffic, and find the target’s oldest and most recent linking partners.
The table is based on data from the Referring Domains endpoint. Here’s an example of a cURL request you should make.
        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 make separate calls for each domain to the Ranked Keywords endpoint as described here, and use etv from the result.metrics.organic.

Drop-down Table: Referring Pages

referring-domains-report-ref-pages
Alongside the bar of all backlinks vs backlinks from this referring domain, the table features a button clicking on which will open a nested table of referring pages. Basically, it lists backlinks to the target from the selected referring domain 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 applying a filter with the necessary domain as in the example.
                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.

  • Domain Rank: domain_from_rank from the items object.
  • Page Rank: page_from_rank from the items object.
  • Link Rank: rank from the items object.
  • Target URL: url_to from the items object.
  • Backlinks Context: text_pre, anchor, text_post from the items object.
  • DF/NF: dofollow from the items object. If true, the backlink is dofollow.
  • Link type (e.g., anchor, image, link): item_type from the items object.
  • Organic Traffic: etv from the result.metrics.organic in the Ranked Keywords endpoint response (!). You can read more about the necessary request details here.
  • First Seen: first_seen from the items object.
  • Last Seen: last_seen from the items object.
  • Links count: links_count from the items object.

Anchors Report

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 Ranked Keywords endpoint from the DataForSEO Labs API.

anchors report

Components

Top 10 Referring Anchors

anchors-report-top-10
This part of the Anchors report features a table of the top 10 anchors used to link to the target. They are sorted by the number of backlinks going to the target with each of these anchors. Once a user clicks on a specific anchor, the pie charts and tables on the right will show stats for that anchor. The first pie chart and table will indicate the distribution of TLDs and the count of domains that use the selected anchor when linking to the target. The second pie chart and table will highlight the semantic locations in HTML where links with the selected anchor are put.
To develop this functionality, use the Backlink Anchors endpoint.
        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.

Table of Anchors

anchors-report-table-of-anchors
This table is the main component of the report with all the details for the target’s backlink anchors. For each anchor, users will see its rank (counted as rank across all anchors in the database), numbers of referring pages, referring domains, and backlinks pointing to the target with this anchor, as well as the date when the first backlink with this anchor was found.
If you’d like to implement this table, you should call the Backlinks Anchors endpoint. To allow filtering by certain anchor text, you should specify the filters array as in the example cURL request below.
                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:

  • Anchor text - anchor
  • Anchor rank - rank
  • Referring pages - referring_pages
  • Referring domains - referring_domains
  • Backlinks - backlinks
  • First seen - first_seen

Drop-Down Table: Referring Domains

anchors-report-table-ref-domains.png
By clicking on the drop-down button in the Referring domains column, users can open a nested table. It shows domains referring to the target with the anchor indicated in the main table. Note that to create this built-in functionality, you should call the Backlinks endpoint with mode set to one_per_domain and the 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": "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.

  • Referring domain: domain_from from the items object.
  • Domain Rank: domain_from_rank from the items object.
  • Backlinks (total number of backlinks from this domain): group_count from the items object.
  • Organic Traffic: etv from the result.metrics.organic in the Ranked Keywords endpoint response (!). You can read more about the necessary request details here.
  • First Seen: first_seen from the items object.

Drop-Down Table: Referring Pages

anchors-report-table-ref-pages

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.

  • Page Rank: page_from_rank from the items object.
  • Domain Rank: domain_from_rank from the items object.
  • Link Rank: rank from the items object.
  • Target URL: url_to from the items object.
  • Backlinks Context: text_pre, anchor, text_post from the items object.
  • DF/NF: dofollow from the items object. If true, the backlink is dofollow.
  • Organic Traffic: etv from the result.metrics.organic in the Ranked Keywords endpoint response (!). You can read more about the necessary request details here.
  • First Seen: first_seen from the items object.
  • Last Seen: last_seen from the items object.

Components

Intersecting Targets Input

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.

  • Domains/subdomains should be specified without https:// and www.
  • Pages should be specified as absolute URLs with https:// and www.

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.

Getting back to the Link Gap Report, it can feature two types of data: on referring domains or pages that link to all specified targets. Users determine the type of data that will be shown by choosing a mode.
        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
                    ]
                ]
            }
        ]"
        
Note that users can still set domains or pages in either of the modes. Also, in both intersection modes, users can additionally specify domains or pages that receive no links from the resources linking to the targets. To implement this with DataForSEO API, you will need to use the exclude_targets array. Simply append this parameter to the body of your POST request, and the response will contain resources that link to targets but don’t link to exclude_targets.
        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
            }
        ]"
        

Table Filters

link-gap-intersecting-table-filters
Applying these filters, users can choose to obtain data only on specific top-level domains (TLDs) and dofollow or nofollow links. In DataForSEO API, this functionality corresponds to the parameters you’ll need to specify in the filters and/or backlinks_filters array(s) in the body of your POST request.
        {
            "filters": [
                [
                    "1.referring_links_tld",
                    "has",
                    "com"
                ],
                "and",
                [
                    "2.referring_links_tld",
                    "has",
                    "com"
                ]
            ],
            "backlinks_filters": [
                [
                    "dofollow",
                    "=",
                    true
                ]
            ]
        }
        
        {
            "filters": [
                [
                    "1.tld_from",
                    "=",
                    "com"
                ],
                    "and",
                [
                    "2.tld_from",
                    "=",
                    "com"
                ],
                "and",
                [
                    "1.dofollow",
                    "=",
                    true
                ],
                "and",
                [
                    "2.dofollow",
                    "=",
                    true
                ]
            ]
        }
        

Table. Mode: intersect referring domains

table-of-intersecting-domains

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.

  • Domain: 1.target and 2.target from the items object.
  • Rank to {{target.1}}: 1.rank from the items object.
  • Rank to {{target.2}}: 2.rank from the items object.
  • {{target.1}} backlinks: 1.backlinks from the items object.
  • {{target.2}} backlinks: 2.backlinks from the items object.
  • Organic Traffic: etv from the result.metrics.organic in the Ranked Keywords endpoint response (!). You can read more about the necessary request details here.
  • First seen {{target.1}}: 1.first_seen from the items object.
  • First seen {{target.2}}: 2.first_seen from the items object.

Drop-Down Table. Mode: intersect referring domains

table-of-intersecting-domains-referring-pages

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.

  • Referring page: 1.url_from from the items object.
  • Domain Rank: 1.domain_from_rank from the items object.
  • Page Rank: 1.page_from_rank from the items object.
  • Link Rank: 1.rank from the items object.
  • Target URL: 1.url_to from the items object.
  • Backlinks Context: 1.text_pre, 1.anchor, text_post from the items object.
  • DF/NF: 1.dofollow from the items object. If true, the backlink is dofollow.
  • Link type (e.g., anchor, image, link): 1.item_type from the items object.
  • Organic Traffic: etv from the result.metrics.organic in the Ranked Keywords endpoint response (!). You can read more about the necessary request details here.
  • First Seen: 1.first_seen from the items object.
  • Last Seen: 1.last_seen from the items object.

Table. Mode: intersect referring pages

table-of-intersecting-pages

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.

  • Domain: 1.target and 2.target from the items object.
  • Rank to {{target.1}}: 1.rank from the items object.
  • Rank to {{target.2}}: 2.rank from the items object.
  • {{target.1}} backlinks: 1.backlinks from the items object.
  • {{target.2}} backlinks: 2.backlinks from the items object.
  • Organic Traffic: etv from the result.metrics.organic in the Ranked Keywords endpoint response (!). You can read more about the necessary request details here.
  • First seen {{target.1}}: 1.first_seen from the items object.
  • First seen {{target.2}}: 2.first_seen from the items object.

Drop-Down Table. Mode: intersect referring pages

table-of-intersecting-pages-referring-pages

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.

  • Referring page: 1.url_from from the items object.
  • Domain Rank: 1.domain_from_rank from the items object.
  • Page Rank: 1.page_from_rank from the items object.
  • Link Rank: 1.rank from the items object.
  • Target URL: 1.url_to from the items object.
  • Backlinks Context: 1.text_pre, 1.anchor, 1.text_post from the items object.
  • DF/NF: 1.dofollow from the items object. If true, the backlink is dofollow.
  • Link type (e.g., anchor, image, link): 1.item_type from the items object.
  • Organic Traffic: etv from the result.metrics.organic in the Ranked Keywords endpoint response (!). You can read more about the necessary request details here.
  • First Seen: 1.first_seen from the items object.
  • Last Seen: 1.last_seen from the items object.

Referral Traffic Report

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.

referral traffic

Components

Referral Traffic Time Series

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.

Traffic Sources Pie Chart

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. However, unlike the Referral Traffic Time Series, here we can offer an alternative data source.

To make this easier for you in the earlier stages of product development, we suggest you use DataForSEO Traffic Analytics API. Just keep in mind that it’s based solely on SimilarWeb data and thus won’t be particularly helpful for analyzing small websites with less than 5,000 monthly visitors.

To get the percentages of traffic channels with Traffic Analytics API, specify a website as a “target” in the POST request

        login="login" \
        password="password" \
        cred="$(printf ${login}:${password} | base64)" \
        curl --location --request POST "https://api.dataforseo.com/v3/traffic_analytics/similarweb/live" \
        --header "Authorization: Basic ${cred}"  \
        --header "Content-Type: application/json" \
        --data-raw "[
            {
                "target": "inc.com"
            }
        ]"
        

The API response will contain a sources object containing the arrays corresponding to the sources of traffic.

        {
          "version": "0.1.20211130",
          "status_code": 20000,
          "status_message": "Ok.",
          "time": "12.1088 sec.",
          "cost": 0.02,
          "tasks_count": 1,
          "tasks_error": 0,
          "tasks": [
            {
              "id": "12231602-1535-0003-0000-ee477ce28154",
              "status_code": 20000,
              "status_message": "Ok.",
              "time": "12.0452 sec.",
              "cost": 0.02,
              "result_count": 1,
              "path": [...],
              "data": {...},
              "result": [
                {
                  "site_url": "inc.com",
                  "site_description": "successfully start, grow, innovate, and lead your business today: ideas, resources, advice, support, tools, strategies, real stories, and real business examples. visit https://inc.com. subscribe to inc. magazine. attend inc. events.",
                  "global_rank": {...},
                  "country_rank": {...},
                  "category_rank": {...},
                  "audience": {...},
                  "traffic": {
                    "value": 12332521,
                    "percent": 100,
                    "countries": [...],
                    "sources": {
                      "direct": {
                        "value": 2201525,
                        "percent": 17.85
                      },
                      "search_organic": {
                        "value": 8278590,
                        "percent": 67.13,
                        "top_keywords": [...]
                      },
                      "search_ad": {
                        "value": 3312,
                        "percent": 0.03,
                        "top_keywords": [...]
                      },
                      "referring": {
                        "value": 565608,
                        "percent": 4.59,
                        "top_referring": [...]
                      },
                      "referral_destination": {
                        "top_destinations": [...]
                      },
                      "social": {
                        "value": 1121422,
                        "percent": 9.09,
                        "top_socials": [...]
                      },
                      "display_ad": {
                        "value": 16375,
                        "percent": 0.13,
                        "top_publishers": [...],
                        "top_ad_networks": [...]
                      },
                      "mobile_apps": {...},
                      "mail": {...}
                    },
                    "estimated": [...]
                  },
                  "sites": {...},
                  "date": "2021-11-01"
                }
              ]
            }
          ]
        }
        

Referral Sources Table

referral-traffic-sources-table

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

  • Referral Source - indicates the domain of a referral website.
  • Visits - is the number of visits a referring website generated.
  • Visits % - the share of the traffic generated from the referral source in the total amount of referral traffic; can be calculated from the total amount of organic traffic and the number of visits from the given referral source.
  • New Visits - is the number of visitors that visited the website for the first time from the referring source.
  • Pageviews per visit - the average number of pages visitors coming from a referral website visited on the target website.
  • Bounce Rate - indicates the number of visitors who returned back to the referral source without interacting with the target website.

DataForSEO Backlinks API

  • Rank - domain rank of the referring website; you can learn more about it on our help center.
  • Backlinks - the number of backlinks from the referral source.

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.

Drop-Down Table: Referring Pages

new-backlinks-table

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.

  • Domain Rank: domain_from_rank from the items object.
  • Page Rank: page_from_rank from the items object.
  • Link Rank: rank from the items object.
  • Target URL: url_to from the items object.
  • Backlinks Context: text_pre, anchor, text_post from the items object.
  • DF/NF: dofollow from the items object. If true, the backlink is dofollow.
  • Link type (e.g., anchor, image, link): item_type from the items object.
  • Organic Traffic: etv from the result.metrics.organic in the Ranked Keywords endpoint response (!). You can read more about the necessary request details here.
  • First Seen: first_seen from the items object.
  • Last Seen: last_seen from the items object.
  • Links count: links_count from the items object.

Backlink Profile Overview

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.

Backlinks Section Overview

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.