API Description

Domain analysis

Domain analysis allows to get competitor and keyword statistics from organic and paid search results in a convenient form. 

To access the section, you should have an active subscription.

All databases

This method allows a user to retrieve data pertaining to all available regional and historical databases associated with a specified domain. The information includes key metrics for both organic and paid search performance within each database.

Request Parameters: overview

ParameterData TypeMandatoryDefault ValueDescriptionAcceptable ValuesExample
domainstringyesN/AThe domain for which to retrieve database data.Any valid domain name stringyourdomain.com

GET Request

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/overview?domain=yourdomain.com'
-H 'Authorization: Token YOUR_API_KEY'

Response Parameters: overview

ParameterData TypeDescriptionExample
sourcestringAlpha-2 country code of the regional keyword database. See Regional Database Codes for acceptable values.us
year_monthstringThe year and month (formatted as “YYYY-MM”) for which the specific database snapshot data applies.2018-10
organic.countintegerThe total number of organic keywords for which the domain ranks in this specific database and period.790
organic.trafficintegerAn estimation of the monthly organic search traffic the domain receives from the keywords in this database.3149
organic.costfloatAn estimation of the monetary value of the organic traffic, often calculated as if it were paid traffic (e.g., PPC cost equivalent).23167.97
adv.countintegerThe total number of keywords for which the domain has active paid advertisements in this database and period.140
adv.trafficintegerAn estimation of the monthly traffic the domain receives from its paid search advertisements in this database.2968
adv.costfloatThe estimated monthly expenditure for the domain’s paid search advertisements in this database.17795.26

Sample Request: overview

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/overview?domain=seranking.com'
-H 'Authorization: Token YOUR_API_KEY'

Sample Response: overview

Title of the code block
Copy
[
{
"source": "us",
"year_month": "2018-10",
"organic": {
"count": 790,
"traffic": 3149,
"cost": 23167.97
},
"adv": {
"count": 140,
"traffic": 2968,
"cost": 17795.26
}
},
{
"source": "gb",
"year_month": "2018-10",
"organic": {
"count": 650,
"traffic": 2800,
"cost": 19870.50
},
"adv": {
"count": 120,
"traffic": 2500,
"cost": 15600
}
}
]

Regional database

This method provides detailed keyword statistics for a specified domain within a single, selected regional database. It breaks down performance for both organic and paid traffic, offering insights into keyword rankings, traffic estimates, and position changes.

Request Parameters: overview/db

ParameterData TypeMandatoryDefault ValueDescriptionAcceptable valuesExample
sourcestringYesN/AAlpha-2 country code of the regional keyword database. See Regional Database Codes.us
domainstringYesN/AThe domain for which to retrieve the keyword statistics.Any valid domain name stringseranking.com
with_subdomainsintegerNo1A flag to determine whether data for subdomains should be included in the analysis.1: include subdomains
0: exclude subdomains
1

GET Request

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/overview/db?source=xx&domain=yourdomain.com&with_subdomains=1'
-H 'Authorization: Token YOUR_API_KEY'

Response Parameters: overview/db

If the request is successful, the server returns a JSON object containing two main keys: organic and adv, each detailing various keyword statistics for the selected database.

ParameterData TypeDescriptionExample
organic.countintegerTotal number of organic keywords for which the domain ranks in this database.790
organic.trafficintegerEstimated monthly organic search traffic from these keywords.3149
organic.costfloatEstimated monetary value of the organic traffic (e.g., PPC cost equivalent).23167.97
organic.keywords_new_countintegerNumber of keywords for which the domain has newly started ranking.182
organic.keywords_up_countintegerNumber of keywords for which the domain’s ranking has improved.292
organic.keywords_down_countintegerNumber of keywords for which the domain’s ranking has declined.558
organic.keywords_equal_countintegerNumber of keywords for which the domain’s ranking has remained unchanged.55
organic.keywords_lost_countintegerNumber of keywords for which the domain has dropped out of the SERPs.282
organic.top1_5integerTotal number of organic keywords ranked in positions 1-5.25
organic.top6_10integerTotal number of organic keywords ranked in positions 6-10.52
organic.top11_20integerTotal number of organic keywords ranked in positions 11-20.127
organic.top21_50integerTotal number of organic keywords ranked in positions 21-50.270
organic.top51_100integerTotal number of organic keywords ranked in positions 51-100.331
adv.countintegerTotal number of keywords for which the domain has paid ads in this database.140
adv.trafficintegerEstimated monthly traffic from these paid keywords.2968
adv.costfloatEstimated monthly cost for these paid keywords.17795.26
adv.keywords_new_countintegerNumber of new keywords targeted by paid ads.91
adv.keywords_up_countintegerNumber of paid keywords where ad position has improved.17
adv.keywords_down_countintegerNumber of paid keywords where ad position has declined.76
adv.keywords_equal_countintegerNumber of paid keywords where ad position has remained unchanged.18
adv.keywords_lost_countintegerNumber of keywords for which paid ads are no longer running or ranking.62
adv.top1_2integerTotal number of paid keywords with ads appearing in positions 1-2.53
adv.top3_5integerTotal number of paid keywords with ads appearing in positions 3-5.68
adv.top6_8integerTotal number of paid keywords with ads appearing in positions 6-8.19
adv.top9_11integerTotal number of paid keywords with ads appearing in positions 9-11.0
adv.top1_5integerTotal number of paid keywords with ads appearing in positions 1-5.121
adv.top6_10integerTotal number of paid keywords with ads appearing in positions 6-10.19
adv.top11_20integerTotal number of paid keywords with ads appearing in positions 11-20 (typically less granular for ads).0
adv.top21_50integerTotal number of paid keywords with ads appearing in positions 21-50.0
adv.top51_100integerTotal number of paid keywords with ads appearing in positions 51-100.0

Sample Request: overview/db

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/overview/db?source=us&domain=seranking.com&with_subdomains=1'
-H 'Authorization: Token YOUR_API_KEY'

Sample Response: overview/db

Title of the code block
Copy
{
"organic": {
"keywords_new_count": 182,
"keywords_up_count": 292,
"keywords_equal_count": 55,
"keywords_lost_count": 282,
"top11_20": 127,
"top51_100": 331,
"keywords_down_count": 558,
"top1_5": 25,
"top21_50": 270,
"top6_10": 52,
"count": 790,
"traffic": 3149,
"cost": 23167.97
},
"adv": {
"keywords_new_count": 91,
"keywords_up_count": 17,
"keywords_equal_count": 18,
"keywords_lost_count": 62,
"top11_20": 0,
"top1_2": 53,
"top51_100": 0,
"keywords_down_count": 76,
"top1_5": 121,
"top21_50": 0,
"top3_5": 68,
"top6_8": 19,
"top9_11": 0,
"top6_10": 19,
"count": 140,
"traffic": 2968,
"cost": 17795.26
}
}

Worldwide aggregate

This method aggregates and returns a domain’s search performance statistics on a global scale for the current month. It allows users to get a comprehensive view of worldwide organic and paid traffic metrics, with options to customize the data returned, including currency and specific fields of interest.

Request Parameters: overview/worldwide

ParameterData TypeMandatoryDefault ValueDescriptionAcceptable valuesExample
domainstringYesN/AThe domain name for which to retrieve worldwide statistics.Any valid domain name stringseranking.com
currencystringNoUSDAn ISO 4217 currency code to be used for any monetary values (like traffic cost) returned in the response.Valid ISO 4217 currency codes (e.g., USD, EUR, GBP)EUR
fieldsstringNoprice, traffic, keywordsA comma-separated list specifying which data fields or categories to include in the response. This allows for tailoring the response to only the needed information.price: shows traffic price/cost value

traffic: shows traffic volume value

keywords: shows keyword count statistics

positions_diff: shows statistics on position changes

positions_tops: shows statistics on top ranking positions
traffic, keywords, positions_tops
show_zones_liststringNo0A boolean-like value (“1” for true, “0” for false) to determine if the response should include a detailed breakdown of statistics for each individual regional zone (country) in addition to the aggregated worldwide statistics.1: include stats for each zone

0: only show worldwide stats
1

GET Request

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/overview/worldwide?domain=yourdomain.com¤cy=EUR&fields=traffic,keywords&show_zones_list=1'
-H 'Authorization: Token YOUR_API_KEY'

Response Parameters: overview/worldwide

If the request is successful, the server returns a JSON object with two primary keys: organic and adv. Each of these keys holds an array of objects.

  • The first object in each array will always represent the aggregated “worldwide” statistics.
  • If show_zones_list is set to “1” (or true), subsequent objects in the arrays will represent statistics for individual regional zones (countries).

Each object within the organic and adv arrays can contain the following parameters (depending on the fields requested):

ParameterData TypeDescriptionExample
sourcestringIdentifier for the data scope. This will be “worldwide” for the global summary, or an Alpha-2 country code (e.g., “us”, “gb”) for zone-specific data if show_zones_list is enabled.worldwide
countrystringA descriptive name for the source. This will be “Worldwide” for the global summary, or the country name (e.g., “United States”) for zone-specific data.Worldwide
keywords_countintegerTotal number of keywords (organic or paid, depending on the parent object) for this scope.823967 (organic) / 4947 (adv)
traffic_sumintegerSum of estimated traffic (organic or paid) for this scope.273150 (organic) / 4369 (adv)
price_sumfloatSum of the estimated monetary value or cost of the traffic (organic or paid) for this scope, in the specified currency.241482.11 (organic) / 6509.45 (adv)
positions_new_countintegerNumber of keywords newly appearing in rankings for this scope (if positions_diff requested in fields).56042 (organic) / 333 (adv)
positions_up_countintegerNumber of keywords with improved rankings for this scope (if positions_diff requested in fields).56326 (organic) / 7 (adv)
positions_down_countintegerNumber of keywords with declined rankings for this scope (if positions_diff requested in fields).49834 (organic) / 4 (adv)
positions_lost_countintegerNumber of keywords that dropped out of rankings for this scope (if positions_diff requested in fields).47169 (organic) / 1742 (adv)
positions_equal_countintegerNumber of keywords with unchanged rankings for this scope (if positions_diff requested in fields).876005 (organic) / 5645 (adv)
positions_tops.top1_5integerOrganic: Keywords in positions 1-5.91520
positions_tops.top6_10integerOrganic: Keywords in positions 6-10.95652
positions_tops.top11_20integerOrganic: Keywords in positions 11-20.165641
positions_tops.top21_50integerOrganic: Keywords in positions 21-50.332015
positions_tops.top51_100integerOrganic: Keywords in positions 51-100.353061
positions_tops.top1_2integerPaid (adv): Keywords with ads in positions 1-2.4905
positions_tops.top3_5integerPaid (adv): Keywords with ads in positions 3-5.1046
positions_tops.top6_8integerPaid (adv): Keywords with ads in positions 6-8.38
positions_tops.top9_11integerPaid (adv): Keywords with ads in positions 9-11.0

Sample Request: overview/worldwide

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/overview/worldwide?domain=seranking.com¤cy=USD&fields=price,traffic,keywords,positions_diff,positions_tops&show_zones_list=0'
-H 'Authorization: Token YOUR_API_KEY'

Sample Response: overview/worldwide

Title of the code block
Copy
{
"organic": [
{
"source": "worldwide",
"country": "Worldwide",
"keywords_count": 823967,
"traffic_sum": 273150,
"price_sum": 241482.11,
"positions_new_count": 56042,
"positions_up_count": 56326,
"positions_down_count": 49834,
"positions_lost_count": 47169,
"positions_equal_count": 876005,
"positions_tops": {
"top1_5": 91520,
"top6_10": 95652,
"top11_20": 165641,
"top21_50": 332015,
"top51_100": 353061
}
}
],
"adv": [
{
"source": "worldwide",
"country": "Worldwide",
"keywords_count": 4947,
"traffic_sum": 4369,
"price_sum": 6509.45,
"positions_new_count": 333,
"positions_up_count": 7,
"positions_down_count": 4,
"positions_lost_count": 1742,
"positions_equal_count": 5645,
"positions_tops": {
"top1_2": 4905,
"top3_5": 1046,
"top6_8": 38,
"top9_11": 0
}
}
]
}

This method allows users to retrieve historical data for a specified domain within a particular regional database. It focuses on tracking changes over time for key parameters such as the number of keywords, estimated traffic (clicks), and the estimated cost of that traffic, for either organic or paid search.

Request Parameters: overview/history

ParameterData TypeMandatoryDefault Value DescriptionAcceptable valuesExample
sourcestringYesN/AAlpha-2 country code of the regional keyword database. See Regional Database Codes.us
domainstringYesN/AThe domain name for which to retrieve historical performance data.Any valid domain name stringseranking.com
typestringNo“organic”Specifies whether to retrieve historical data for organic search traffic or paid search (advertising) traffic.– “organic” (for organic traffic data)
– “adv” (for paid traffic data)
adv

GET Request Examples

To retrieve organic historical data:

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/overview/history?source=us&domain=seranking.com&type=organic'
-H 'Authorization: Token YOUR_API_KEY'

To retrieve paid (advertising) historical data:

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/overview/history?source=us&domain=seranking.com&type=adv'
-H 'Authorization: Token YOUR_API_KEY'

Response Parameters: overview/history

If the request is successful, the server returns a JSON array. Each object in this array represents a historical data point (typically for a specific month and year) and contains the following parameters:

ParameterData TypeDescriptionExample (organic)Example (adv)
keywords_countintegerThe total number of keywords (organic or paid, depending on the request type) for which the domain ranked in that historical period.1035388
traffic_sumintegerAn estimation of the total search traffic (clicks) the domain received from these keywords during that period.344020
price_sumfloatAn estimation of the monetary value or cost of the traffic during that period, in the default currency of the database (e.g., USD for US database).85721.730
yearintegerThe year of the historical data point.20252025
monthintegerThe month of the historical data point (1-12).55
top1_5integerIf type is “organic”: Total number of organic keywords ranked in positions 1-5 during that period.9107N/A
top6_10integerIf type is “organic”: Total number of organic keywords ranked in positions 6-10 during that period.11517N/A
top11_20integerIf type is “organic”: Total number of organic keywords ranked in positions 11-20 during that period.19029N/A
top21_50integerIf type is “organic”: Total number of organic keywords ranked in positions 21-50 during that period.39617N/A
top51_100integerIf type is “organic”: Total number of organic keywords ranked in positions 51-100 during that period.45963N/A
top1_2integerIf type is “adv”: Total number of paid keywords with ads appearing in positions 1-2 during that period.N/A8
top3_5integerIf type is “adv”: Total number of paid keywords with ads appearing in positions 3-5 during that period.N/A0
top6_8integerIf type is “adv”: Total number of paid keywords with ads appearing in positions 6-8 during that period.N/A0
top9_11integerIf type is “adv”: Total number of paid keywords with ads appearing in positions 9-11 during that period.N/A0

(Note: The topX_Y fields for ranking distribution will correspond to the type of traffic requested—organic ranking bands or paid ad position bands.)

Sample Response (type=organic)

Title of the code block
Copy
[
{
"keywords_count": 104199,
"traffic_sum": 35838,
"top1_5": 12629,
"top6_10": 11401,
"top11_20": 19134,
"top21_50": 39725,
"top51_100": 46089,
"year": 2025,
"month": 4,
"price_sum": 85424.78
},
{
"keywords_count": 103538,
"traffic_sum": 34402,
"top1_5": 9107,
"top6_10": 11517,
"top11_20": 19029,
"top21_50": 39617,
"top51_100": 45963,
"year": 2025,
"month": 5,
"price_sum": 85721.73
}
]

Sample Response (type=adv)

Title of the code block
Copy
[
{
"keywords_count": 7,
"traffic_sum": 0,
"top1_2": 7,
"top3_5": 0,
"top6_8": 0,
"top9_11": 0,
"year": 2025,
"month": 4,
"price_sum": 0
},
{
"keywords_count": 8,
"traffic_sum": 0,
"top1_2": 8,
"top3_5": 0,
"top6_8": 0,
"top9_11": 0,
"year": 2025,
"month": 5,
"price_sum": 0
}
]

Domain keywords

This method retrieves a list of keywords for which a specified domain ranks in a given regional database. It supports fetching data for both organic search results and paid advertisements. The endpoint offers extensive filtering and sorting options to refine the keyword list based on various metrics.

Request Parameters: keywords

ParameterData TypeMandatoryDefault ValueDescriptionAcceptable valuesExample
sourcestringYesN/AAlpha-2 country code of the regional keyword database. See Regional Database Codes.us
domainstringYesN/AThe domain name for which to retrieve keywords.Any valid domain name stringseranking.com
typestringNoorganicSpecifies whether to retrieve keywords for organic search traffic or paid search (advertising) traffic.organic

adv
adv
order_fieldstringNotrafficThe field by which the returned keyword list should be sorted.traffic, volume, position, cpc, competition, keivolume
order_typestringNodescThe order of sorting.asc: ascending

desc: descending
asc
pageintegerNo1For paginated results, specifies the page number to retrieve.Positive integer2
limitintegerNo100The maximum number of keywords to return per page.1 to 100050
colsstringNo(all relevant by default)A comma-separated list of specific response parameter names to include in the output. If omitted, a default set of relevant columns is returned.Comma-separated string of valid response parameter names (see Response Parameters section)keyword, position, volume ,url, difficulty
pos_changestringNoN/AFilters keywords based on changes in their ranking positions compared to the previous period.up: position growth

down: position drop

new: new in SERP

lost: dropped from SERP

diff: positions have changed up or down

same: positions have not changed
new
filter[volume][from]integerNoN/ASpecifies the minimum monthly search volume for keywords to be included.Non-negative integer100
filter[volume][to]integerNoN/ASpecifies the maximum monthly search volume for keywords to be included.Non-negative integer10000
filter[difficulty][from]integerNoN/ASpecifies the minimum keyword difficulty score (typically 0-100) for keywords to be included.Integer (e.g., 0-100)10
filter[difficulty][to]integerNoN/ASpecifies the maximum keyword difficulty score for keywords to be included.Integer (e.g., 0-100)50
filter[keyword_count][from]integerNoN/ASpecifies the minimum number of words in a keyword phrase.Positive integer2
filter[keyword_count][to]integerNoN/ASpecifies the maximum number of words in a keyword phrase.Positive integer4
filter[multi_keyword_included]stringNoN/AA JSON string specifying keyword text that must be included. Refer to the “Text search JSON structure” section for formatting details.JSON string as per “Text search JSON structure”[[{“type”:”contains”, “value”:”seo”}]]
filter[multi_keyword_excluded]stringNoN/AA JSON string specifying keyword text that must be excluded. Refer to the “Text search JSON structure” section for formatting details.JSON string as per “Text search JSON structure”[[{“type”:”exact”, “value”:”free”}]]
filter[url]stringNoN/AA JSON string to filter keywords based on their ranking URL. Must contain only one element in the base array (no OR logic). See “Text search JSON structure.”JSON string (single element in base array)[[{“type”:”contains”, “value”:”/blog”}]]
filter[intents]stringNoN/AA comma-separated list of search intent codes to filter keywords.I: Informational

N: Navigational

T: Transactional

C: Commercial

L: Local
T,C
filter[competition][from]floatNoN/ASpecifies the minimum competition score (typically 0-1 or 0-100, depending on the metric scale) for keywords.Float0.5
filter[competition][to]floatNoN/ASpecifies the maximum competition score for keywords.Float0.8
filter[cpc][from]floatNoN/ASpecifies the minimum Cost Per Click (CPC) value for keywords.Non-negative float0.1
filter[cpc][to]floatNoN/ASpecifies the maximum Cost Per Click (CPC) value for keywords.Non-negative float2.5
filter[traffic][from]integerNoN/ASpecifies the minimum estimated monthly traffic for keywords.Non-negative integer50
filter[traffic][to]integerNoN/ASpecifies the maximum estimated monthly traffic for keywords.Non-negative integer1000
filter[position][from]integerNoN/ASpecifies the minimum ranking position for keywords.Positive integer1
filter[position][to]integerNoN/ASpecifies the maximum ranking position for keywords.Positive integer10
filter[characters_count][from]integerNoN/ASpecifies the minimum character length for keyword phrases.Positive integer5
filter[characters_count][to]integerNoN/ASpecifies the maximum character length for keyword phrases.Positive integer50

Text Search JSON Structure

The text search structure allows for the creation of complex text searches by providing a JSON string in the format array<array<object>>.

  • The first (outer) layer of the array corresponds to elements separated by logical OR.
  • The second (inner) layer of the array corresponds to elements with logical AND.

Each object within the inner array has the following structure:

Title of the code block
Copy
{
"type": "begins",
"value": "google"
}

Object Properties

NameDescription
object.valueContains the text value to be searched.
object.typeSpecifies the type of search to be performed.

List of Possible object.type variants

NameDescription
beginsThe searched text should start with the specified value.
containsThe searched text should contain the specified value anywhere within the text.
endsThe searched text should end with the specified value.
exactThe searched text should exactly match the specified value.

Example of a complex JSON filter structure:

To find keywords that contain “seo tools” AND (begin with “free” OR begin with “best”), the JSON for filter[multi_keyword_included] would be:

Title of the code block
Copy
[
[
{
"type": "contains",
"value": "seo tools"
},
{
"type": "begins",
"value": "free"
}
],
[
{
"type": "contains",
"value": "seo tools"
},
{
"type": "begins",
"value": "best"
}
]
]

This example illustrates the OR (outer array) and AND (inner array) logic. The filter[url] parameter is simpler as it doesn’t use the OR logic and only accepts a single inner array, e.g., [[{“type”:”contains”,”value”:”/blog”}]]

GET Request Example – Organic Keywords:

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/keywords?source=us&domain=seranking.com&type=organic&limit=2&filter[volume][from]=500&filter[volume][to]=2000'
-H 'Authorization: Token YOUR_API_KEY'

GET Request Example – Paid Keywords with specific columns and ordering:

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/keywords?domain=booking.com&type=adv&limit=2&cols=keyword,cpc,volume,block,snippet_title&order_field=cpc&order_type=desc'
-H 'Authorization: Token YOUR_API_KEY'

Response Parameters: keywords

If successful, the server returns a JSON array of keyword objects. The fields within each object depend on the type specified and the cols requested.

ParameterData TypeDescriptionExample (Organic)Example (ADV)
keywordstringThe keyword phrase.seranking.comnyc hotels
positionintegerThe domain’s current ranking position for this keyword (organic search or ad position for paid).14
prev_posintegerThe domain’s ranking position for this keyword in the previous month/update period. Can be null for new keywords.11
volumeintegerThe average monthly search volume for this keyword.6600550000
cpcstring or floatThe average Cost Per Click for this keyword.2.001.08
competitionstring or floatA score representing the level of competition for this keyword. Float from 0.00 (very low competition) to 1.00 (very high).0.080.48
urlstringThe URL of the domain’s page that ranks for this keyword or is used in the ad.https://seranking.com/https://www.booking.com/city/us/new-york.html
keifloatKeyword Effectiveness Index, a metric combining search volume and competition.1.136355.464
total_sitesintegerThe total number of websites appearing in the search results for this query.88851000000
trafficintegerEstimated monthly traffic this keyword drives to the domain’s ranking URL.311000
traffic_percentstringThe percentage share of the total estimated traffic for this keyword that the domain captures.11.11%0.96%
priceinteger or floatEstimated monetary value/cost associated with the traffic from this keyword.041250
blockstringIndicates the ad block position on the SERP.N/Atop
snippet_numintegerA numerical identifier or position of the ad snippet.N/A579
snippets_countintegerThe number of ad snippets found for this keyword by the domain.N/A1
snippet_titlestringThe title text of the advertisement.N/AHotels in New York, NY
snippet_descriptionstringThe descriptive text body of the advertisement.N/ABook your Hotel in New York NY online…
snippet_display_urlstringThe URL displayed in the advertisement (often a shortened or vanity URL).N/Awww.booking.com/city/us/new-york.html

Sample Request: keywords (organic)

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/keywords?source=us&domain=seranking.com&type=organic&limit=1'
-H 'Authorization: Token YOUR_API_KEY'

Sample Response: keywords (organic)

Title of the code block
Copy
[
{
"keyword": "seranking.com",
"position": 1,
"prev_pos": 1,
"volume": "10",
"cpc": "0.00",
"competition": "0.00",
"url": "https://seranking.com/",
"kei": 1.136,
"total_sites": 88,
"traffic": 3,
"traffic_percent": "11.11%",
"price": 0
}
]

Sample Request: keywords (adv)

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/keywords?source=us&domain=booking.com&type=adv&limit=1&filter[keyword_count][from]=2'
-H 'Authorization: Token YOUR_API_KEY'

Sample Response: keywords (adv)

Title of the code block
Copy
[
{
"keyword": "nyc hotels",
"position": 4,
"prev_pos": 4,
"volume": "550000",
"cpc": "3.75",
"competition": "0.16",
"url": "https://www.booking.com/city/us/new-york.html",
"kei": 355.464,
"total_sites": 851000000,
"traffic": 11000,
"traffic_percent": "0.96%",
"price": 41250,
"block": "top",
"snippet_num": 579,
"snippets_count": 1,
"snippet_title": "Hotels in New York, NY | Lowest Price Guarantee.‎",
"snippet_description": "Book your Hotel in New York NY online. No reservation costs. Great rates. 24/7 Customer Service. Hotels. Secure Booking. Villas. Hostels. No Booking Fees. Best Price Guarantee.",
"snippet_display_url": "www.booking.com/city/us/new-york.html"
}
]

This method retrieves an overview of paid advertisements (PPC ads) run by various domains for a specific target keyword. It allows users to see which domains are advertising on that keyword, the extent of their advertising efforts over a period, and details of their ad creatives.

Request Parameters: ads (when querying by keyword)

ParameterData TypeMandatoryDefault ValueDescriptionAcceptable valuesExample
sourcestringYesN/AAlpha-2 country code of the regional keyword database. See Regional Database Codes.us
keywordstringYesN/AThe specific keyword for which to retrieve paid ad data.Any valid keyword stringnew york hotels
fromstringNoN/A (implies current/all available data)The starting year and month for the data retrieval period, formatted as “YYYY-MM” (e.g., “2017-01”).2023-01
tostringNoN/A (implies current/all available data)The ending year and month for the data retrieval period, formatted as “YYYY-MM”.2023-12
pageintegerNo1For paginated results, specifies the page number of domains advertising on this keyword to retrieve.Positive integer1
limitintegerNo100The maximum number of domains (advertising on the keyword) to return per page.1 to 10020

GET Request

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/ads?source=us&keyword=nyc+hotels&from=2023-01&to=2023-12&limit=10'
-H 'Authorization: Token YOUR_API_KEY'

Response Parameters: ads (when querying by keyword)

If successful, the server returns a JSON array. Each object in the array represents a unique domain that has run paid ads for the specified keyword and contains an overview of that domain’s advertising activity for that keyword.

ParameterData TypeDescriptionExample
domainstringThe domain name that ran ads for the target keyword.hotels.com
ads_countintegerThe total number of unique ad creatives or instances observed from this domain for the target keyword within the specified period.19
keywords_countintegerThe total number of other keywords this domain was also seen advertising on (provides context on advertiser breadth).78972
traffic_sumintegerAn estimation of the total traffic this domain received from its ads for all its keywords, not just the target one.3565364
price_sumfloatAn estimation of the total budget this domain spent on ads for all its keywords.10411189
snippets.positionintegerThe observed position of this ad snippet on the SERP.2
snippets.snippet_titlestringThe title text of this specific advertisement.Booking
snippets.snippet_descriptionstringThe descriptive text body of this specific advertisement.Stay 10 nights & get 1 free!…
snippets.snippet_display_urlstringThe URL displayed in this specific advertisement.www.hotels.com/
snippets.snippet_countstring or integerThe count or frequency of this specific snippet being observed. (Example shows string, confirm type).1
snippets.urlstringThe actual destination URL (landing page) of this specific advertisement.https://www.hotels.com/

Sample Request: ads (when querying by keyword)

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/ads?keyword=luxury%20hotels%20london&from=2023-05&to=2023-05&limit=1'
-H 'Authorization: Token YOUR_API_KEY'

Sample Response: ads (when querying by keyword)

Title of the code block
Copy
[
{
"domain": "examplehotelchain.com",
"ads_count": 5,
"keywords_count": 250,
"traffic_sum": 150000,
"price_sum": 75000.5,
"snippets": {
"2023-05": {
"position": 1,
"snippet_title": "Luxury London Stays | Example Hotels‎",
"snippet_description": "Experience unparalleled luxury. Book your 5-star hotel in London today. Exclusive offers available for a limited time.",
"snippet_display_url": "www.examplehotelchain.com/london",
"snippet_count": "1",
"url": "https://www.examplehotelchain.com/offers/london-luxury"
}
}
}
]

This method provides an overview of the keywords a specific target domain is bidding on in paid search auctions. It details the ads run by this domain for those keywords, including ad copy, landing pages, and observed performance metrics over a specified period.

Request Parameters: ads (when querying by domain)

ParameterData TypeMandatoryDefault ValueDescriptionAcceptable valuesExample
sourcestringYesN/AAlpha-2 country code of the regional keyword database. See Regional Database Codes.us
domainstringYesN/AThe specific domain for which to retrieve its paid ad data.Any valid domain name stringbooking.com
fromstringNoN/A (implies current/all available data)The starting year and month for the data retrieval period, formatted as “YYYY-MM” (e.g., “2017-01”).2023-01
tostringNoN/A (implies current/all available data)The ending year and month for the data retrieval period, formatted as “YYYY-MM” (e.g., “2018-12”).2023-12
pageintegerNo1For paginated results, specifies the page number of keywords (that this domain is advertising on) to retrieve.Positive integer1
limitintegerNo100The maximum number of keywords (that this domain is advertising on) to return per page.1 to 10020

GET Request

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/ads?source=us&domain=booking.com&from=2023-01&to=2023-12&limit=10'
-H 'Authorization: Token YOUR_API_KEY'

Response Parameters: ads (when querying by domain)

If successful, the server returns a JSON array. Each object in the array represents a unique keyword that the specified domain has targeted with paid ads. It includes performance metrics for that keyword and details of the ad snippets run by the domain for that keyword.

ParameterData TypeDescriptionExample
keywordstringThe keyword phrase that the specified domain was advertising on.locanda vivaldi venice
ads_countintegerThe total number of unique ad creatives or instances observed from the specified domain for this keyword within the given period.24
competitionfloatA score representing the level of competition for this keyword (scale might vary). Example shows string.0.39
cpcfloatThe average Cost Per Click for this keyword. Example shows string.5.64
volumeintegerThe average monthly search volume for this keyword. Example shows string.100
snippets.positionintegerThe observed position of this ad snippet on the SERP.2
snippets.snippet_titlestringThe title text of this specific advertisement.Locanda Vivaldi, Venice – Booking.com‎
snippets.snippet_descriptionstringThe descriptive text body of this specific advertisement.Book at Locanda Vivaldi, Venice. No reservation costs…
snippets.snippet_display_urlstringThe URL displayed in this specific advertisement.www.booking.com/hotel/it/locanda-vivaldi.en.html?a
snippets.snippet_countintegerThe count or frequency of this specific snippet being observed. Example shows string.1
snippets.snippet_numintegerA numerical identifier for this specific ad snippet.125
snippets.urlstringThe actual destination URL (landing page) of this specific advertisement.http://www.booking.com/hotel/it/locanda-vivaldi.en.html?aid=311088

Sample Request: ads (when querying by domain)

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/ads?domain=booking.com&from=2017-01&to=2017-01&limit=1'
-H 'Authorization: Token YOUR_API_KEY'

Sample Response: ads (when querying by domain)

Title of the code block
Copy
[
{
"keyword": "locanda vivaldi venice",
"ads_count": 24,
"competition": "0.39",
"cpc": "5.64",
"volume": "100",
"snippets": {
"2017-01": {
"position": "2",
"snippet_title": "Locanda Vivaldi, Venice - Booking.com‎",
"snippet_description": "Book at Locanda Vivaldi, Venice. No reservation costs. Great rates Amenities: Free Wifi, Non Smoking Rooms, 24 Hour Front Desk, Air Conditioning",
"snippet_display_url": "www.booking.com/hotel/it/locanda-vivaldi.en.html?a",
"snippet_count": "1",
"snippet_num": 125,
"url": "http://www.booking.com/hotel/it/locanda-vivaldi.en.html?aid=311088"
}
}
}
]

Competitors

This method allows users to retrieve a list of competitor domains for a specified target domain. The list can be tailored to show organic or paid competitors, and can optionally include or exclude major industry players. Furthermore, the level of detail in the response can be adjusted to include basic information or more extensive statistics for each competitor. The maximum number of competitors returned is 500.

Request Parameters: competitors

ParameterData TypeMandatoryDefault ValueDescriptionAcceptable valuesExample
sourcestringYesN/AAlpha-2 country code of the regional keyword database. See Regional Database Codes.us
domainstringYesN/AThe primary domain for which to find competitors.Any valid domain name stringseranking.com
typestringNoorganicSpecifies whether to find competitors in organic search results or paid search (advertising).organic

adv
adv
big_playersstring/integerNo0A flag to determine whether to include or exclude major, well-known domains (e.g., wikipedia.org, amazon.com) from the competitor list.0: hide major players

1: show major players
1
statsstring/integerNo0A flag to control the level of detail in the response. If set to “1”, additional statistical parameters are returned for each competitor.0: basic info: domain & common keywords only

1: include extra statistical parameters
1

GET Request

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/competitors?source=us&domain=yourtargetdomain.com&type=organic&stats=1'
-H 'Authorization: Token YOUR_API_KEY'

Response Parameters: competitors

If the request is successful, the server returns a JSON array. Each object in this array represents a competitor domain. The fields included in each object depend on the value of the stats request parameter.

Core Response Parameters (when stats=0 is specified in the request):

ParameterData TypeDescriptionExample
domainstringThe domain name of the competitor.tripadvisor.com
common_keywordsintegerThe number of keywords for which both the analyzed domain and this competitor rank.1076

Additional Response Parameters (when stats=1 is specified in the request):

ParameterData TypeDescriptionExample
domainstringThe domain name of the competitor.tripadvisor.com
common_keywordsintegerThe number of keywords for which both the analyzed domain and this competitor rank.1076
total_keywordsintegerThe total number of keywords for which this competitor domain ranks within Google’s top 100 results in the specified database.2084
traffic_sumintegerAn estimated monthly traffic volume this competitor receives from its ranking keywords. This is typically calculated based on expected CTR, search volume, and positions.291
price_sumfloatAn estimated monthly cost or value of the competitor’s traffic, often based on what the traffic from their ranking keywords would cost via paid ads (PPC).40.12

Sample Request: overview/history (basic – stats=0)

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/competitors?domain=example.com&type=organic&stats=0'
-H 'Authorization: Token YOUR_API_KEY'

Sample Response: overview/history (basic – stats=0)

Title of the code block
Copy
[
{
"domain": "competitorA.com",
"common_keywords": 1076
},
{
"domain": "competitorB.net",
"common_keywords": 850
}
]

Sample Request: overview/history (with extra status – stats=1)

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/competitors?domain=example.com&type=organic&stats=1'
-H 'Authorization: Token YOUR_API_KEY'

Sample Response: overview/history (with extra status – stats=1)

Title of the code block
Copy
[
{
"domain": "competitorA.com",
"common_keywords": 1076,
"total_keywords": 2084,
"traffic_sum": 291,
"price_sum": 40.12
},
{
"domain": "competitorB.net",
"common_keywords": 850,
"total_keywords": 1500,
"traffic_sum": 200,
"price_sum": 30.5
}
]

Domain comparison

This method facilitates a comparative analysis of keywords between two specified domains within a particular regional database. It can identify keywords common to both domains or highlight keywords for which the comparison domain ranks but the primary domain does not. This is useful for competitive analysis and identifying keyword gaps.

Request Parameters: keywords/comparison

ParameterData TypeMandatoryDefault ValueDescriptionAcceptable valuesExample
sourcestringYesN/AAlpha-2 country code of the regional keyword database. See Regional Database Codes.us
domainstringYesN/AThe primary domain for the comparison.Any valid domain name stringbooking.com
comparestringYesN/AThe competitor domain to compare against the primary domain.Any valid domain name stringhotels.com
typestringNoorganicSpecifies whether to compare keywords based on organic search traffic or paid search (advertising) traffic.organic

adv
organic
pageintegerNo1For paginated results, specifies the page number of keywords to retrieve.Positive integer1
limitintegerNo100The maximum number of keywords to return per page.1 to 100050
colsstringNoAll relevant by defaultA comma-separated list of specific response parameter names to include in the output. If omitted, a default set of relevant columns is returned for the comparison.Comma-separated string of valid response parameter names (see Response Parameters section)keyword, volume, position, compare_position
diffstring/integerNo0Controls the comparison mode0: Returns keywords common to both domain and compare domain

1: Returns keywords for which the compare domain ranks, but the primary domain does not (keyword gap analysis)
0

GET Request

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/keywords/comparison?source=us&domain=booking.com&compare=hotels.com&type=organic&diff=0'
-H 'Authorization: Token YOUR_API_KEY'

Response Parameters: keywords/comparison

If the request is successful, the server returns a JSON array. Each object in this array represents a keyword and includes metrics for both the primary domain and the compare domain (where applicable, depending on the diff mode).

ParameterData TypeDescriptionExample
keywordstringThe analyzed keyword phrase.haworth hotel holland mi
volumeinteger or stringThe average monthly number of Google searches for the specified keyword. (Example shows integer)10
cpcfloatCost Per Click for the keyword. (Example shows string)3.01
competitionfloatA score representing the level of competition for this keyword. (Example shows string)0.38
keifloatKeyword Effectiveness Index, a metric often combining search volume and competition.1.064
total_sitesintegerThe total number of websites appearing in the search results for this query.94
positionintegerThe ranking position of the primary domain for this keyword. (May be null or absent if diff=1 and primary domain doesn’t rank).4
urlstringThe URL of the primary domain’s page that ranks for this keyword. (May be null or absent if diff=1).https://www.booking.com/hotel/us/haworth-inn-center.html
pricefloatEstimated cost/value of the traffic the primary domain receives from this keyword. (May be null or absent if diff=1).2.44
trafficfloatEstimated traffic the primary domain receives from this keyword. (May be null or absent if diff=1).0.81
compare_positionintegerThe ranking position of the compare domain for this keyword.5
compare_urlstringThe URL of the compare domain’s page that ranks for this keyword.https://www.hotels.com/ho576868/haworth/
compare_pricefloatEstimated cost/value of the traffic the compare domain receives from this keyword.1.84
compare_trafficfloatEstimated traffic the compare domain receives from this keyword.0.61

Sample Request: keywords/comparison (Common Keywords, diff=0)

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/keywords/comparison?domain=booking.com&compare=hotels.com&type=organic&diff=0&limit=1'
-H 'Authorization: Token YOUR_API_KEY'

Sample Response: keywords/comparison (Common Keywords, diff=0)

Title of the code block
Copy
[
{
"keyword": "haworth hotel holland mi",
"volume": 10,
"cpc": "3.01",
"competition": "0.38",
"kei": 1.064,
"total_sites": 94,
"position": 4,
"url": "https://www.booking.com/hotel/us/haworth-inn-center.html",
"price": 2.44,
"traffic": 0.81,
"compare_position": 5,
"compare_url": "https://www.hotels.com/ho576868/haworth/",
"compare_price": 1.84,
"compare_traffic": 0.61
}
]

Sample Request: keywords/comparison (Keywords Missing for Primary, diff=1)

Title of the code block
Copy
curl -X GET 'https://api.seranking.com/v1/domain/keywords/comparison?domain=booking.com&compare=hotels.com&type=organic&diff=1&limit=1'
-H 'Authorization: Token YOUR_API_KEY'

Sample Response: keywords/comparison (Keywords Missing for Primary, diff=1)

Title of the code block
Copy
[
{
"keyword": "unique hotel keyword only for hotels.com",
"volume": 150,
"cpc": "2.50",
"competition": "0.45",
"kei": 2.532,
"total_sites": 120,
"position": null,
"url": null,
"price": null,
"traffic": null,
"compare_position": 3,
"compare_url": "https://www.hotels.com/some-unique-offering/",
"compare_price": 3.5,
"compare_traffic": 1.5
}
]