If you have a list of domains and want to score them by traffic, you can achieve that with one of the following methods.
1 The fastest way to do that is by using the Bulk Traffic Estimation endpoint. Specify your domains in the targets
array and also indicate your target location and language. Note that you can specify a maximum of 1000 domains.
Your request should be structured as in the following example:
[
{
"targets": ["dataforseo.com", "rankactive.com", "linkedin.com", "zoogvpn.com"],
"location_code": 2840,
"language_name": "English"
}
]
In the API response, you will get ETV data for each specified domain.
{
"version": "0.1.20220216",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.2231 sec.",
"cost": 0.0104,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "03211208-2806-0391-0000-3c2d806d455b",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1632 sec.",
"cost": 0.0104,
"result_count": 1,
"path": [
"v3",
"domain_analytics",
"whois",
"overview",
"live"
],
"data": {
"api": "domain_analytics",
"function": "overview",
"targets": [
"dataforseo.com",
"rankactive.com",
"linkedin.com",
"zoogvpn.com"
],
"location_code": 2840,
"language_name": "English"
},
"result": [
{
"location_code": 2840,
"language_code": "en",
"total_count": 4,
"items_count": 4,
"items": [
{
"se_type": "google",
"target": "rankactive.com",
"metrics": {
"organic": {
"etv": 2377.084038121626,
"count": 2001
},
"paid": {
"etv": 0,
"count": 0
},
"local_pack": null,
"featured_snippet": null
}
},
{
"se_type": "google",
"target": "zoogvpn.com",
"metrics": {
"organic": {
"etv": 2358.939912861213,
"count": 2639
},
"paid": {
"etv": 0,
"count": 0
},
"local_pack": null,
"featured_snippet": null
}
},
{
"se_type": "google",
"target": "linkedin.com",
"metrics": {
"organic": {
"etv": 455219699.28957003,
"count": 40174103
},
"paid": {
"etv": 190442.6568531394,
"count": 4165
},
"local_pack": null,
"featured_snippet": null
}
},
{
"se_type": "google",
"target": "dataforseo.com",
"metrics": {
"organic": {
"etv": 3226.307656386867,
"count": 1786
},
"paid": {
"etv": 41.7780000269413,
"count": 11
},
"local_pack": null,
"featured_snippet": null
}
}
]
}
]
}
]
}
Unfortunately, this endpoint doesn’t support sorting rules, so you will have to score your domains by traffic on your side.
2 You can also make a separate request to the Domain Rank Overview endpoint for each of your domains.
https://api.dataforseo.com/v3/dataforseo_labs/google/domain_rank_overview/live
In the API response, you will find the organic and paid ETV values for the specified domain.
{
"version": "0.1.20220216",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1013 sec.",
"cost": 0.0101,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "03211210-2806-0388-0000-f843b65afcff",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0697 sec.",
"cost": 0.0101,
"result_count": 1,
"path": [
"v3",
"dataforseo_labs",
"google",
"domain_rank_overview",
"live"
],
"data": {
"api": "dataforseo_labs",
"function": "domain_rank_overview",
"se_type": "google",
"target": "dataforseo.com",
"location_code": 2840,
"language_name": "English"
},
"result": [
{
"se_type": "google",
"target": "dataforseo.com",
"location_code": 2840,
"language_code": "en",
"total_count": 1,
"items_count": 1,
"items": [
{
"se_type": "google",
"location_code": 2840,
"language_code": "en",
"metrics": {
"organic": {
"pos_1": 11,
"pos_2_3": 30,
"pos_4_10": 105,
"pos_11_20": 132,
"pos_21_30": 166,
"pos_31_40": 165,
"pos_41_50": 197,
"pos_51_60": 218,
"pos_61_70": 227,
"pos_71_80": 196,
"pos_81_90": 210,
"pos_91_100": 129,
"etv": 3226.307656386867,
"impressions_etv": 879.293348647654,
"count": 1786,
"estimated_paid_traffic_cost": 15294.381354372716,
"is_new": 613,
"is_up": 801,
"is_down": 448,
"is_lost": 515
},
"paid": {
"pos_1": 6,
"pos_2_3": 5,
"pos_4_10": 0,
"pos_11_20": 0,
"pos_21_30": 0,
"pos_31_40": 0,
"pos_41_50": 0,
"pos_51_60": 0,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 41.7780000269413,
"impressions_etv": 15.345630168914795,
"count": 11,
"estimated_paid_traffic_cost": 253.28831005096436,
"is_new": 2,
"is_up": 11,
"is_down": 0,
"is_lost": 0
}
}
}
]
}
]
}
]
}
Once you get the metrics for all the domains, you can score them by organic or paid traffic on your side.
3 To reduce the number of requests, you can call the Domain Analytics API – Whois Overview endpoint and use a filter to receive data only for the domains you are interested in.
POST https://api.dataforseo.com/v3/domain_analytics/whois/overview/live
To do that, apply the following filter: ["domain", "=", "example.com"]
. Instead of example.com, specify your domain. If the domain is present in our database, the API response will return the data for it. You can apply up to 8 filters per one request, which will allow you to get the etv data for 8 domains in a single request. That way, you can minimize the number of requests and save your budget.
Moreover, you can order the results by organic or paid traffic if you include the following line: "order_by": ["metrics.organic.etv,desc"]
or "order_by": ["metrics.paid.etv,desc"]
. To order them in ascending order, use asc
instead of desc
.
Your POST request should be structured as in the example below:
[
{
"limit": 10,
"filters": [
["domain", "=", "dataforseo.com"],
"or",
[
["domain", "=", "rankactive.com"],
"or",
["domain", "=", "ahrefs.com"]
]
],
"order_by": ["metrics.organic.etv,desc"]
}
]
Example of the API response:
{
"version": "0.1.20220216",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.3581 sec.",
"cost": 0.103,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "03211214-2806-0405-0000-437fb690297c",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.2979 sec.",
"cost": 0.103,
"result_count": 1,
"path": [
"v3",
"dataforseo_labs",
"google",
"domain_whois_overview",
"live"
],
"data": {
"api": "dataforseo_labs",
"function": "domain_whois_overview",
"se_type": "google",
"limit": 10,
"filters": [
[
"domain",
"=",
"dataforseo.com"
],
"or",
[
[
"domain",
"=",
"rankactive.com"
],
"or",
[
"domain",
"=",
"ahrefs.com"
]
]
],
"order_by": [
"metrics.organic.etv,desc"
]
},
"result": [
{
"se_type": "google",
"total_count": 3,
"items_count": 3,
"items": [
{
"se_type": "google",
"domain": "ahrefs.com",
"created_datetime": "2010-11-25 13:32:54 +00:00",
"changed_datetime": "2020-03-26 04:21:50 +00:00",
"expiration_datetime": "2029-11-25 13:32:54 +00:00",
"updated_datetime": "2021-07-27 23:49:41 +00:00",
"first_seen": "2020-10-06 21:00:00 +00:00",
"epp_status_codes": [
"client_transfer_prohibited"
],
"tld": "com",
"registered": true,
"metrics": {
"organic": {
"pos_1": 5019,
"pos_2_3": 8827,
"pos_4_10": 30286,
"pos_11_20": 26817,
"pos_21_30": 19753,
"pos_31_40": 18946,
"pos_41_50": 19028,
"pos_51_60": 18978,
"pos_61_70": 18879,
"pos_71_80": 19615,
"pos_81_90": 19869,
"pos_91_100": 14316,
"etv": 4627289.372058248,
"impressions_etv": 312056.02475373494,
"count": 220334,
"estimated_paid_traffic_cost": 11121421.990686517
},
"paid": {
"pos_1": 1,
"pos_2_3": 3,
"pos_4_10": 1,
"pos_11_20": 0,
"pos_21_30": 0,
"pos_31_40": 0,
"pos_41_50": 0,
"pos_51_60": 0,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 10.697000175714493,
"impressions_etv": 0.36899998784065247,
"count": 5,
"estimated_paid_traffic_cost": 114.26015281677246
}
}
},
{
"se_type": "google",
"domain": "dataforseo.com",
"created_datetime": "2016-10-24 14:35:49 +00:00",
"changed_datetime": "2021-09-24 03:14:14 +00:00",
"expiration_datetime": "2022-10-24 14:35:49 +00:00",
"updated_datetime": "2021-10-30 14:13:06 +00:00",
"first_seen": "2020-10-06 21:00:00 +00:00",
"epp_status_codes": [
"client_transfer_prohibited"
],
"tld": "com",
"registered": true,
"metrics": {
"organic": {
"pos_1": 26,
"pos_2_3": 46,
"pos_4_10": 172,
"pos_11_20": 337,
"pos_21_30": 448,
"pos_31_40": 544,
"pos_41_50": 534,
"pos_51_60": 581,
"pos_61_70": 518,
"pos_71_80": 495,
"pos_81_90": 479,
"pos_91_100": 352,
"etv": 13050.482938759029,
"impressions_etv": 1113.726796219591,
"count": 4532,
"estimated_paid_traffic_cost": 36650.31465671101
},
"paid": {
"pos_1": 33,
"pos_2_3": 13,
"pos_4_10": 3,
"pos_11_20": 0,
"pos_21_30": 0,
"pos_31_40": 0,
"pos_41_50": 0,
"pos_51_60": 0,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 475.40700221061707,
"impressions_etv": 108.20786952972412,
"count": 49,
"estimated_paid_traffic_cost": 2407.6171748042107
}
}
},
{
"se_type": "google",
"domain": "rankactive.com",
"created_datetime": "2015-06-26 10:45:15 +00:00",
"changed_datetime": "2021-05-27 04:21:56 +00:00",
"expiration_datetime": "2022-06-26 10:45:15 +00:00",
"updated_datetime": "2021-11-14 14:49:51 +00:00",
"first_seen": "2020-10-06 21:00:00 +00:00",
"epp_status_codes": [
"client_transfer_prohibited"
],
"tld": "com",
"registered": true,
"metrics": {
"organic": {
"pos_1": 7,
"pos_2_3": 26,
"pos_4_10": 174,
"pos_11_20": 632,
"pos_21_30": 729,
"pos_31_40": 612,
"pos_41_50": 578,
"pos_51_60": 529,
"pos_61_70": 386,
"pos_71_80": 315,
"pos_81_90": 267,
"pos_91_100": 199,
"etv": 4622.260642405599,
"impressions_etv": 377.8383159637451,
"count": 4454,
"estimated_paid_traffic_cost": 28787.51060494673
},
"paid": {
"pos_1": 0,
"pos_2_3": 0,
"pos_4_10": 0,
"pos_11_20": 0,
"pos_21_30": 0,
"pos_31_40": 0,
"pos_41_50": 0,
"pos_51_60": 0,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 0,
"impressions_etv": 0,
"count": 0,
"estimated_paid_traffic_cost": 0
}
}
}
]
}
]
}
]
}