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
Parameter | Data Type | Mandatory | Default Value | Description | Acceptable Values | Example |
---|---|---|---|---|---|---|
domain | string | yes | N/A | The domain for which to retrieve database data. | Any valid domain name string | yourdomain.com |
GET Request
curl -X GET 'https://api.seranking.com/v1/domain/overview?domain=yourdomain.com'
-H 'Authorization: Token YOUR_API_KEY'
Response Parameters: overview
Parameter | Data Type | Description | Example |
---|---|---|---|
source | string | Alpha-2 country code of the regional keyword database. See Regional Database Codes for acceptable values. | us |
year_month | string | The year and month (formatted as “YYYY-MM”) for which the specific database snapshot data applies. | 2018-10 |
organic.count | integer | The total number of organic keywords for which the domain ranks in this specific database and period. | 790 |
organic.traffic | integer | An estimation of the monthly organic search traffic the domain receives from the keywords in this database. | 3149 |
organic.cost | float | An 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.count | integer | The total number of keywords for which the domain has active paid advertisements in this database and period. | 140 |
adv.traffic | integer | An estimation of the monthly traffic the domain receives from its paid search advertisements in this database. | 2968 |
adv.cost | float | The estimated monthly expenditure for the domain’s paid search advertisements in this database. | 17795.26 |
Sample Request: overview
curl -X GET 'https://api.seranking.com/v1/domain/overview?domain=seranking.com'
-H 'Authorization: Token YOUR_API_KEY'
Sample Response: overview
[
{
"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
Parameter | Data Type | Mandatory | Default Value | Description | Acceptable values | Example |
---|---|---|---|---|---|---|
source | string | Yes | N/A | Alpha-2 country code of the regional keyword database. | See Regional Database Codes. | us |
domain | string | Yes | N/A | The domain for which to retrieve the keyword statistics. | Any valid domain name string | seranking.com |
with_subdomains | integer | No | 1 | A flag to determine whether data for subdomains should be included in the analysis. | 1: include subdomains 0: exclude subdomains | 1 |
GET Request
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.
Parameter | Data Type | Description | Example |
---|---|---|---|
organic.count | integer | Total number of organic keywords for which the domain ranks in this database. | 790 |
organic.traffic | integer | Estimated monthly organic search traffic from these keywords. | 3149 |
organic.cost | float | Estimated monetary value of the organic traffic (e.g., PPC cost equivalent). | 23167.97 |
organic.keywords_new_count | integer | Number of keywords for which the domain has newly started ranking. | 182 |
organic.keywords_up_count | integer | Number of keywords for which the domain’s ranking has improved. | 292 |
organic.keywords_down_count | integer | Number of keywords for which the domain’s ranking has declined. | 558 |
organic.keywords_equal_count | integer | Number of keywords for which the domain’s ranking has remained unchanged. | 55 |
organic.keywords_lost_count | integer | Number of keywords for which the domain has dropped out of the SERPs. | 282 |
organic.top1_5 | integer | Total number of organic keywords ranked in positions 1-5. | 25 |
organic.top6_10 | integer | Total number of organic keywords ranked in positions 6-10. | 52 |
organic.top11_20 | integer | Total number of organic keywords ranked in positions 11-20. | 127 |
organic.top21_50 | integer | Total number of organic keywords ranked in positions 21-50. | 270 |
organic.top51_100 | integer | Total number of organic keywords ranked in positions 51-100. | 331 |
adv.count | integer | Total number of keywords for which the domain has paid ads in this database. | 140 |
adv.traffic | integer | Estimated monthly traffic from these paid keywords. | 2968 |
adv.cost | float | Estimated monthly cost for these paid keywords. | 17795.26 |
adv.keywords_new_count | integer | Number of new keywords targeted by paid ads. | 91 |
adv.keywords_up_count | integer | Number of paid keywords where ad position has improved. | 17 |
adv.keywords_down_count | integer | Number of paid keywords where ad position has declined. | 76 |
adv.keywords_equal_count | integer | Number of paid keywords where ad position has remained unchanged. | 18 |
adv.keywords_lost_count | integer | Number of keywords for which paid ads are no longer running or ranking. | 62 |
adv.top1_2 | integer | Total number of paid keywords with ads appearing in positions 1-2. | 53 |
adv.top3_5 | integer | Total number of paid keywords with ads appearing in positions 3-5. | 68 |
adv.top6_8 | integer | Total number of paid keywords with ads appearing in positions 6-8. | 19 |
adv.top9_11 | integer | Total number of paid keywords with ads appearing in positions 9-11. | 0 |
adv.top1_5 | integer | Total number of paid keywords with ads appearing in positions 1-5. | 121 |
adv.top6_10 | integer | Total number of paid keywords with ads appearing in positions 6-10. | 19 |
adv.top11_20 | integer | Total number of paid keywords with ads appearing in positions 11-20 (typically less granular for ads). | 0 |
adv.top21_50 | integer | Total number of paid keywords with ads appearing in positions 21-50. | 0 |
adv.top51_100 | integer | Total number of paid keywords with ads appearing in positions 51-100. | 0 |
Sample Request: overview/db
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
{
"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
Parameter | Data Type | Mandatory | Default Value | Description | Acceptable values | Example |
---|---|---|---|---|---|---|
domain | string | Yes | N/A | The domain name for which to retrieve worldwide statistics. | Any valid domain name string | seranking.com |
currency | string | No | USD | An 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 |
fields | string | No | price, traffic, keywords | A 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_list | string | No | 0 | A 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
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):
Parameter | Data Type | Description | Example |
---|---|---|---|
source | string | Identifier 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 |
country | string | A 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_count | integer | Total number of keywords (organic or paid, depending on the parent object) for this scope. | 823967 (organic) / 4947 (adv) |
traffic_sum | integer | Sum of estimated traffic (organic or paid) for this scope. | 273150 (organic) / 4369 (adv) |
price_sum | float | Sum 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_count | integer | Number of keywords newly appearing in rankings for this scope (if positions_diff requested in fields). | 56042 (organic) / 333 (adv) |
positions_up_count | integer | Number of keywords with improved rankings for this scope (if positions_diff requested in fields). | 56326 (organic) / 7 (adv) |
positions_down_count | integer | Number of keywords with declined rankings for this scope (if positions_diff requested in fields). | 49834 (organic) / 4 (adv) |
positions_lost_count | integer | Number of keywords that dropped out of rankings for this scope (if positions_diff requested in fields). | 47169 (organic) / 1742 (adv) |
positions_equal_count | integer | Number of keywords with unchanged rankings for this scope (if positions_diff requested in fields). | 876005 (organic) / 5645 (adv) |
positions_tops.top1_5 | integer | Organic: Keywords in positions 1-5. | 91520 |
positions_tops.top6_10 | integer | Organic: Keywords in positions 6-10. | 95652 |
positions_tops.top11_20 | integer | Organic: Keywords in positions 11-20. | 165641 |
positions_tops.top21_50 | integer | Organic: Keywords in positions 21-50. | 332015 |
positions_tops.top51_100 | integer | Organic: Keywords in positions 51-100. | 353061 |
positions_tops.top1_2 | integer | Paid (adv): Keywords with ads in positions 1-2. | 4905 |
positions_tops.top3_5 | integer | Paid (adv): Keywords with ads in positions 3-5. | 1046 |
positions_tops.top6_8 | integer | Paid (adv): Keywords with ads in positions 6-8. | 38 |
positions_tops.top9_11 | integer | Paid (adv): Keywords with ads in positions 9-11. | 0 |
Sample Request: overview/worldwide
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
{
"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
}
}
]
}
History trends
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
Parameter | Data Type | Mandatory | Default Value | Description | Acceptable values | Example |
---|---|---|---|---|---|---|
source | string | Yes | N/A | Alpha-2 country code of the regional keyword database. | See Regional Database Codes. | us |
domain | string | Yes | N/A | The domain name for which to retrieve historical performance data. | Any valid domain name string | seranking.com |
type | string | No | “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:
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:
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:
Parameter | Data Type | Description | Example (organic) | Example (adv) |
---|---|---|---|---|
keywords_count | integer | The total number of keywords (organic or paid, depending on the request type) for which the domain ranked in that historical period. | 103538 | 8 |
traffic_sum | integer | An estimation of the total search traffic (clicks) the domain received from these keywords during that period. | 34402 | 0 |
price_sum | float | An 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.73 | 0 |
year | integer | The year of the historical data point. | 2025 | 2025 |
month | integer | The month of the historical data point (1-12). | 5 | 5 |
top1_5 | integer | If type is “organic”: Total number of organic keywords ranked in positions 1-5 during that period. | 9107 | N/A |
top6_10 | integer | If type is “organic”: Total number of organic keywords ranked in positions 6-10 during that period. | 11517 | N/A |
top11_20 | integer | If type is “organic”: Total number of organic keywords ranked in positions 11-20 during that period. | 19029 | N/A |
top21_50 | integer | If type is “organic”: Total number of organic keywords ranked in positions 21-50 during that period. | 39617 | N/A |
top51_100 | integer | If type is “organic”: Total number of organic keywords ranked in positions 51-100 during that period. | 45963 | N/A |
top1_2 | integer | If type is “adv”: Total number of paid keywords with ads appearing in positions 1-2 during that period. | N/A | 8 |
top3_5 | integer | If type is “adv”: Total number of paid keywords with ads appearing in positions 3-5 during that period. | N/A | 0 |
top6_8 | integer | If type is “adv”: Total number of paid keywords with ads appearing in positions 6-8 during that period. | N/A | 0 |
top9_11 | integer | If type is “adv”: Total number of paid keywords with ads appearing in positions 9-11 during that period. | N/A | 0 |
(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)
[
{
"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)
[
{
"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
Parameter | Data Type | Mandatory | Default Value | Description | Acceptable values | Example |
---|---|---|---|---|---|---|
source | string | Yes | N/A | Alpha-2 country code of the regional keyword database. | See Regional Database Codes. | us |
domain | string | Yes | N/A | The domain name for which to retrieve keywords. | Any valid domain name string | seranking.com |
type | string | No | organic | Specifies whether to retrieve keywords for organic search traffic or paid search (advertising) traffic. | organic adv | adv |
order_field | string | No | traffic | The field by which the returned keyword list should be sorted. | traffic, volume, position, cpc, competition, kei | volume |
order_type | string | No | desc | The order of sorting. | asc: ascending desc: descending | asc |
page | integer | No | 1 | For paginated results, specifies the page number to retrieve. | Positive integer | 2 |
limit | integer | No | 100 | The maximum number of keywords to return per page. | 1 to 1000 | 50 |
cols | string | No | (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_change | string | No | N/A | Filters 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] | integer | No | N/A | Specifies the minimum monthly search volume for keywords to be included. | Non-negative integer | 100 |
filter[volume][to] | integer | No | N/A | Specifies the maximum monthly search volume for keywords to be included. | Non-negative integer | 10000 |
filter[difficulty][from] | integer | No | N/A | Specifies the minimum keyword difficulty score (typically 0-100) for keywords to be included. | Integer (e.g., 0-100) | 10 |
filter[difficulty][to] | integer | No | N/A | Specifies the maximum keyword difficulty score for keywords to be included. | Integer (e.g., 0-100) | 50 |
filter[keyword_count][from] | integer | No | N/A | Specifies the minimum number of words in a keyword phrase. | Positive integer | 2 |
filter[keyword_count][to] | integer | No | N/A | Specifies the maximum number of words in a keyword phrase. | Positive integer | 4 |
filter[multi_keyword_included] | string | No | N/A | A 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] | string | No | N/A | A 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] | string | No | N/A | A 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] | string | No | N/A | A 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] | float | No | N/A | Specifies the minimum competition score (typically 0-1 or 0-100, depending on the metric scale) for keywords. | Float | 0.5 |
filter[competition][to] | float | No | N/A | Specifies the maximum competition score for keywords. | Float | 0.8 |
filter[cpc][from] | float | No | N/A | Specifies the minimum Cost Per Click (CPC) value for keywords. | Non-negative float | 0.1 |
filter[cpc][to] | float | No | N/A | Specifies the maximum Cost Per Click (CPC) value for keywords. | Non-negative float | 2.5 |
filter[traffic][from] | integer | No | N/A | Specifies the minimum estimated monthly traffic for keywords. | Non-negative integer | 50 |
filter[traffic][to] | integer | No | N/A | Specifies the maximum estimated monthly traffic for keywords. | Non-negative integer | 1000 |
filter[position][from] | integer | No | N/A | Specifies the minimum ranking position for keywords. | Positive integer | 1 |
filter[position][to] | integer | No | N/A | Specifies the maximum ranking position for keywords. | Positive integer | 10 |
filter[characters_count][from] | integer | No | N/A | Specifies the minimum character length for keyword phrases. | Positive integer | 5 |
filter[characters_count][to] | integer | No | N/A | Specifies the maximum character length for keyword phrases. | Positive integer | 50 |
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:
{
"type": "begins",
"value": "google"
}
Object Properties
Name | Description |
---|---|
object.value | Contains the text value to be searched. |
object.type | Specifies the type of search to be performed. |
List of Possible object.type variants
Name | Description |
---|---|
begins | The searched text should start with the specified value. |
contains | The searched text should contain the specified value anywhere within the text. |
ends | The searched text should end with the specified value. |
exact | The 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:
[
[
{
"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:
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:
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.
Parameter | Data Type | Description | Example (Organic) | Example (ADV) |
---|---|---|---|---|
keyword | string | The keyword phrase. | seranking.com | nyc hotels |
position | integer | The domain’s current ranking position for this keyword (organic search or ad position for paid). | 1 | 4 |
prev_pos | integer | The domain’s ranking position for this keyword in the previous month/update period. Can be null for new keywords. | 1 | 1 |
volume | integer | The average monthly search volume for this keyword. | 6600 | 550000 |
cpc | string or float | The average Cost Per Click for this keyword. | 2.00 | 1.08 |
competition | string or float | A score representing the level of competition for this keyword. Float from 0.00 (very low competition) to 1.00 (very high). | 0.08 | 0.48 |
url | string | The 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 |
kei | float | Keyword Effectiveness Index, a metric combining search volume and competition. | 1.136 | 355.464 |
total_sites | integer | The total number of websites appearing in the search results for this query. | 88 | 851000000 |
traffic | integer | Estimated monthly traffic this keyword drives to the domain’s ranking URL. | 3 | 11000 |
traffic_percent | string | The percentage share of the total estimated traffic for this keyword that the domain captures. | 11.11% | 0.96% |
price | integer or float | Estimated monetary value/cost associated with the traffic from this keyword. | 0 | 41250 |
block | string | Indicates the ad block position on the SERP. | N/A | top |
snippet_num | integer | A numerical identifier or position of the ad snippet. | N/A | 579 |
snippets_count | integer | The number of ad snippets found for this keyword by the domain. | N/A | 1 |
snippet_title | string | The title text of the advertisement. | N/A | Hotels in New York, NY |
snippet_description | string | The descriptive text body of the advertisement. | N/A | Book your Hotel in New York NY online… |
snippet_display_url | string | The URL displayed in the advertisement (often a shortened or vanity URL). | N/A | www.booking.com/city/us/new-york.html |
Sample Request: keywords (organic)
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)
[
{
"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)
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)
[
{
"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"
}
]
Paid ads for keyword
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)
Parameter | Data Type | Mandatory | Default Value | Description | Acceptable values | Example |
---|---|---|---|---|---|---|
source | string | Yes | N/A | Alpha-2 country code of the regional keyword database. | See Regional Database Codes. | us |
keyword | string | Yes | N/A | The specific keyword for which to retrieve paid ad data. | Any valid keyword string | new york hotels |
from | string | No | N/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 | |
to | string | No | N/A (implies current/all available data) | The ending year and month for the data retrieval period, formatted as “YYYY-MM”. | 2023-12 | |
page | integer | No | 1 | For paginated results, specifies the page number of domains advertising on this keyword to retrieve. | Positive integer | 1 |
limit | integer | No | 100 | The maximum number of domains (advertising on the keyword) to return per page. | 1 to 100 | 20 |
GET Request
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.
Parameter | Data Type | Description | Example |
---|---|---|---|
domain | string | The domain name that ran ads for the target keyword. | hotels.com |
ads_count | integer | The total number of unique ad creatives or instances observed from this domain for the target keyword within the specified period. | 19 |
keywords_count | integer | The total number of other keywords this domain was also seen advertising on (provides context on advertiser breadth). | 78972 |
traffic_sum | integer | An estimation of the total traffic this domain received from its ads for all its keywords, not just the target one. | 3565364 |
price_sum | float | An estimation of the total budget this domain spent on ads for all its keywords. | 10411189 |
snippets.position | integer | The observed position of this ad snippet on the SERP. | 2 |
snippets.snippet_title | string | The title text of this specific advertisement. | Booking |
snippets.snippet_description | string | The descriptive text body of this specific advertisement. | Stay 10 nights & get 1 free!… |
snippets.snippet_display_url | string | The URL displayed in this specific advertisement. | www.hotels.com/ |
snippets.snippet_count | string or integer | The count or frequency of this specific snippet being observed. (Example shows string, confirm type). | 1 |
snippets.url | string | The actual destination URL (landing page) of this specific advertisement. | https://www.hotels.com/ |
Sample Request: ads (when querying by keyword)
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)
[
{
"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"
}
}
}
]
Paid ads for domain
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)
Parameter | Data Type | Mandatory | Default Value | Description | Acceptable values | Example |
---|---|---|---|---|---|---|
source | string | Yes | N/A | Alpha-2 country code of the regional keyword database. | See Regional Database Codes. | us |
domain | string | Yes | N/A | The specific domain for which to retrieve its paid ad data. | Any valid domain name string | booking.com |
from | string | No | N/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 | |
to | string | No | N/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 | |
page | integer | No | 1 | For paginated results, specifies the page number of keywords (that this domain is advertising on) to retrieve. | Positive integer | 1 |
limit | integer | No | 100 | The maximum number of keywords (that this domain is advertising on) to return per page. | 1 to 100 | 20 |
GET Request
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.
Parameter | Data Type | Description | Example |
---|---|---|---|
keyword | string | The keyword phrase that the specified domain was advertising on. | locanda vivaldi venice |
ads_count | integer | The total number of unique ad creatives or instances observed from the specified domain for this keyword within the given period. | 24 |
competition | float | A score representing the level of competition for this keyword (scale might vary). Example shows string. | 0.39 |
cpc | float | The average Cost Per Click for this keyword. Example shows string. | 5.64 |
volume | integer | The average monthly search volume for this keyword. Example shows string. | 100 |
snippets.position | integer | The observed position of this ad snippet on the SERP. | 2 |
snippets.snippet_title | string | The title text of this specific advertisement. | Locanda Vivaldi, Venice – Booking.com |
snippets.snippet_description | string | The descriptive text body of this specific advertisement. | Book at Locanda Vivaldi, Venice. No reservation costs… |
snippets.snippet_display_url | string | The URL displayed in this specific advertisement. | www.booking.com/hotel/it/locanda-vivaldi.en.html?a |
snippets.snippet_count | integer | The count or frequency of this specific snippet being observed. Example shows string. | 1 |
snippets.snippet_num | integer | A numerical identifier for this specific ad snippet. | 125 |
snippets.url | string | The 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)
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)
[
{
"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
Parameter | Data Type | Mandatory | Default Value | Description | Acceptable values | Example |
---|---|---|---|---|---|---|
source | string | Yes | N/A | Alpha-2 country code of the regional keyword database. | See Regional Database Codes. | us |
domain | string | Yes | N/A | The primary domain for which to find competitors. | Any valid domain name string | seranking.com |
type | string | No | organic | Specifies whether to find competitors in organic search results or paid search (advertising). | organic adv | adv |
big_players | string/integer | No | 0 | A 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 |
stats | string/integer | No | 0 | A 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
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):
Parameter | Data Type | Description | Example |
---|---|---|---|
domain | string | The domain name of the competitor. | tripadvisor.com |
common_keywords | integer | The 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):
Parameter | Data Type | Description | Example |
---|---|---|---|
domain | string | The domain name of the competitor. | tripadvisor.com |
common_keywords | integer | The number of keywords for which both the analyzed domain and this competitor rank. | 1076 |
total_keywords | integer | The total number of keywords for which this competitor domain ranks within Google’s top 100 results in the specified database. | 2084 |
traffic_sum | integer | An 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_sum | float | An 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)
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)
[
{
"domain": "competitorA.com",
"common_keywords": 1076
},
{
"domain": "competitorB.net",
"common_keywords": 850
}
]
Sample Request: overview/history (with extra status – stats=1)
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)
[
{
"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
Parameter | Data Type | Mandatory | Default Value | Description | Acceptable values | Example |
---|---|---|---|---|---|---|
source | string | Yes | N/A | Alpha-2 country code of the regional keyword database. | See Regional Database Codes. | us |
domain | string | Yes | N/A | The primary domain for the comparison. | Any valid domain name string | booking.com |
compare | string | Yes | N/A | The competitor domain to compare against the primary domain. | Any valid domain name string | hotels.com |
type | string | No | organic | Specifies whether to compare keywords based on organic search traffic or paid search (advertising) traffic. | organic adv | organic |
page | integer | No | 1 | For paginated results, specifies the page number of keywords to retrieve. | Positive integer | 1 |
limit | integer | No | 100 | The maximum number of keywords to return per page. | 1 to 1000 | 50 |
cols | string | No | 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 for the comparison. | Comma-separated string of valid response parameter names (see Response Parameters section) | keyword, volume, position, compare_position |
diff | string/integer | No | 0 | Controls the comparison mode | 0: 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
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).
Parameter | Data Type | Description | Example |
---|---|---|---|
keyword | string | The analyzed keyword phrase. | haworth hotel holland mi |
volume | integer or string | The average monthly number of Google searches for the specified keyword. (Example shows integer) | 10 |
cpc | float | Cost Per Click for the keyword. (Example shows string) | 3.01 |
competition | float | A score representing the level of competition for this keyword. (Example shows string) | 0.38 |
kei | float | Keyword Effectiveness Index, a metric often combining search volume and competition. | 1.064 |
total_sites | integer | The total number of websites appearing in the search results for this query. | 94 |
position | integer | The ranking position of the primary domain for this keyword. (May be null or absent if diff=1 and primary domain doesn’t rank). | 4 |
url | string | The 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 |
price | float | Estimated cost/value of the traffic the primary domain receives from this keyword. (May be null or absent if diff=1). | 2.44 |
traffic | float | Estimated traffic the primary domain receives from this keyword. (May be null or absent if diff=1). | 0.81 |
compare_position | integer | The ranking position of the compare domain for this keyword. | 5 |
compare_url | string | The URL of the compare domain’s page that ranks for this keyword. | https://www.hotels.com/ho576868/haworth/ |
compare_price | float | Estimated cost/value of the traffic the compare domain receives from this keyword. | 1.84 |
compare_traffic | float | Estimated traffic the compare domain receives from this keyword. | 0.61 |
Sample Request: keywords/comparison (Common Keywords, diff=0)
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)
[
{
"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)
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)
[
{
"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
}
]