Keyword research
4.1. Keyword overview
The SerpstatKeywordProcedure.getKeywordsInfo method provides you with the keyword overview showing its volume,
General request parameters and instructions for using Serpstat API
Search databases available
Request parameters | |||||
Parameter | Description | Type | Optional | Default value | Value Options |
id | A request id: the response contains the same id. Enter any number (number) or text (string) value | int/string | no | 1, test | |
method | API method name | string | no | SerpstatKeywordProcedure.getKeywordsInfo | |
params | The object with parameters {...}, it lists all the following parameters and arrays [...] | array | no |
| |
keywords | Array with keywords to search for | array | no | ["iphone", "iphone 11"] | |
se | ID of the search base to be searched. | string | no | g_us | |
sort | Order of sorting the results in the format: {{{field}}: {{order}}} | array | yes | [ ]empty array | {"cost": "desc"} |
filters | Filter conditions | array | yes |
"right_spelling": true$ "right_spelling": false "minus_keywords": ["case", "red"] "cost": "10"; "concurrency": "7"; "found_results": "100"; "region_queries_count": "1000"; "region_queries_count_wide": "1000"; |
Response parameters | |
Parameter | Description |
id | Response id corresponds the request id |
result | Contains the answer |
data | Array with data |
keyword | Keyword |
cost | Cost per click, $ |
concurrency | Keyword competition in PPC (0-100%) |
found_results | Number of results found for the keyword |
region_queries_count | Search volume in the selected region |
region_queries_count_wide | Search volume (broad match) |
types | List of special elements shown in SERP (for example, video, carousel or map) |
geo_names | List of toponyms in the array (if toponyms are present in the keywords) |
social_domains | Social domains listed top-10 by the keyword |
right_spelling | Recommended correction of a misspelled keyword |
lang | Language |
difficulty | Competition level for a keyword to advance in organic search in the top-10 positions |
suggestions_count | Number of search suggestions |
keywords_count | Number of keywords |
summary_info | Object with data |
page | Page number |
left_lines | API credits remaining |
Credits: the number of charged credits corresponds to the number of results obtained upon request. You can get no more than 1000 results per a query. Part of the API response, for which 1 credit is charged:
{
"keyword": "iphone",
"cost": 1.8822413793103445,
"concurrency": 100,
"found_results": 79,
"region_queries_count": 1220000,
"region_queries_count_wide": 0,
"region_queries_count_phrase": 0,
"types": [
"shopping_top",
"kn_graph_carousel_list",
"also_asks"
],
"geo_names": [],
"social_domains": [
"wikipedia",
"amazon",
"reddit"
],
"right_spelling": null,
"lang": null,
"difficulty": 89.5890633703002,
"suggestions_count": 2652668,
"keywords_count": 8323766
},
4.2. Keywords selection
The SerpstatKeywordProcedure.getKeywords shows organic keywords associated with the researched keyword that domains are ranking for in Google`s top-100 results and for every found keyword you’ll see its volume, CPC and level of competition. The data set is similar to the Keyword research — SEO research — Keywords selection report.
General request parameters and instructions for using Serpstat API
Search databases available
Request parameters | |||||
Parameter | Description | Type | Optional | Default value | Value Options |
id | A request id: the response contains the same id. | int/string | no | Text or number value | |
method | API method name | string | no | SerpstatKeywordProcedure.getKeywords | |
params | The object with parameters {...}, it lists all the following parameters and arrays [...] | array | no |
| |
keyword | Keyword to search for | string | no | "iphone" (any text value) | |
se | ID of the search base to be searched. | string | no | g_us (search databases list) | |
minusKeywords | Negative keyword array | array | yes | ["app", "apple"] — array of excluding keywords | |
filters | Filter conditions | array | yes | Cost: Volume: Number of words in phrase: Difficulty: Concurrency: Right spelling: | |
sort | Sort by data (ascending and descending) | array | yes | "cost": "asc" "region_queries_count": "desc | "keyword_length" — Sort results by keyword length "difficulty" — Sort the results by the level of keywords competition level to advance in organic search in the top-10 "cost" — Sort results by cost per click (in USD) "region_queries_count" — Sort results by frequency of a key phrase in the selected region |
order | sort direction | array | yes | "cost": "asc" "region_queries_count": "desc" | Sort direction (asc — ascending, desc — descending) |
page | Page number in response | int | yes | 1 | "page": 5 (any number value) |
size | Number of results per page in response | int | yes | 100 | "size": 10 (any number value) |
Response parameters | |
Parameter | Description |
id | Response id corresponds the request id |
result | Contains the answer |
data | Array with data |
keyword | Suggested keyword |
cost | Cost per click, $ |
concurrency | Keyword competition in the PPC (0-100%) |
found_results | Number of results found for the keyword |
region_queries_count | Search volume in a selected region |
region_queries_count_wide | Search volume in selected search engine database in broad match |
types | List of special elements shown in SERP (for example, video, carousel or map) |
geo_names | List of toponyms in the array (if toponyms are present in the keywords) |
social_domains | Social domains listed top-10 for a selected keyword |
right_spelling | Recommended correction of a misspelled keyword |
lang | Language of the keyword |
keyword_lenght | Number of words divided by space in a keyword |
difficulty | The assessment of the level of competition for a keyword to advance in organic search in the top-10 (from 0 to 100) |
summary_info | Object with data |
page | Page number |
total | Number of found results |
left_lines | API credits remaining |
Credits: the number of charged credits corresponds to the number of results obtained upon request. With the Serpstat API, you can only get the first 60,000 results, regardless of the number and size of the queries themselves. For more data - use the export option in the Domain Analysis, Keyword Analysis, or URL Analysis sections, or contact the manager for a personal upload of the results. Part of the API response, for which 1 credit is charged:
{
"keyword": "how to download you tube videos on iphone",
"cost": 0.56999999999999995,
"concurrency": 1,
"found_results": 729000000,
"region_queries_count": 9900,
"region_queries_count_wide": 0,
"types": [
"a_box_fsnippet",
"local_related_search",
"related_search"
],
"geo_names": [],
"social_domains": [
"youtube",
"reddit"
],
"right_spelling": "how to download youtube videos on iphone",
"lang": null,
"keyword_length": 8,
"difficulty": 17.57
},
4.3. Search suggestions
The SerpstatKeywordProcedure.getSuggestions method shows search suggestions for the keyword you requested (they are found by the full-text search). The data set is similar to the Keyword research — SEO research — Search suggestions report.
General request parameters and instructions for using Serpstat API
Search databases available
Request parameters
| |||||
Parameter | Description | Type | Optional | Default value | Value Options |
id | A request id: the response contains the same id. Enter any number (number) or text (string) value | int/string | no | 1, test | |
method | API method name | string | no | SerpstatKeywordProcedure.getSuggestions | |
params | The object with parameters {...}, it lists all the following parameters and arrays [...] | array | no |
| |
keyword | Keyword to search for | string | no | iphone | |
se | ID of the search base to be searched. | string | no | g_us | |
page | Page number in response | int | yes | 1 | "page": "5" |
size | Number of results per page in response | int | yes | 100 | "size": "10" |
filters | Filter conditions | array | yes | "minus_keywords": ["case", "red"] |
Response parameters | |
Parameter | Description |
id | Response id corresponds the request id |
result | Contains the answer |
data | Array with data |
keyword | Search suggestion |
geo_names | List of toponyms in the array (if toponyms are present in the keywords) |
summary_info | Object with data |
page | Page number |
total | Number of found search suggestions |
left_lines | API credits remaining |
Part of the API response, for which 1 credit is charged:
{
"keyword": "iphone x fre case release",
"geo_names": []
},
4.4. Related keywords
The SerpstatKeywordProcedure.getRelatedKeywords method shows all search queries that are semantically related to the searched keyword. The data set is similar to the Keyword research / Related keywords report.
General request parameters and instructions for using Serpstat API
Search databases available
Request parameter | |||||
Parameter | Description | Type | Optional | Default value | Value Options |
id | A request id: the response contains the same id. | int/string | no | Text or number value | |
method | API method name | string | no | SerpstatKeywordProcedure.getRelatedKeywords | |
params | The object with parameters {...}, it lists all the following parameters and arrays [...] | array | no | ||
keyword | Keyword to search for | string | no | Any string value (for example: seo) | |
se | ID of the search base to be searched. | string | no | For example: g_us (search databases list) | |
filters | Filter conditions | array | yes | Connection strengh of related keywords: Misspelled keywords: Keyword Volume: Keywords: "keyword_contain": string — Contains all (exact matching) Language: | |
sort | Sort by data (ascending and descending) | array | yes | "keyword" | "keyword" - Sort results alphabetically "weight" - Sort results by the number of URLs in the top 20 results |
order | Sort direction | array | yes | "desc" | Sort direction (asc — ascending, desc — descending) |
page | Page number in response | int | yes | 1 | "page": 5 (any number value) |
size | Number of results per page in response | int | yes | 100 | "size": 10 (any number value) |
Response parameters | |
Parameter | Description |
id | Response id corresponds the request id |
result | Contains the answer |
data | Array with data |
keyword | Related keyword |
region_queries_count | Search volume in selected region |
cost | Cost per click (USD), that is monthly updated. |
concurrency | Keyword competition in the PPC (0-100%) |
geo_names | List of toponyms in the array (if toponyms are present in the keywords) |
types | List of special elements shown in SERP (for example, video, carousel or map) |
right_spelling | Recommended correction of a misspelled keyword |
weight | The number of URLs in the top 20 results, which are ranked by the search keyword and the keyword from the report. |
difficulty | The assessment of the level of competition for a keyword to advance in organic search in the top-10 (from 1 to 100) |
summary_info | Object with data |
page | Page number |
total | Total number of related keywords found |
left_lines | API credits remaining |
Credits: the number of charged credits corresponds to the number of results obtained upon request. With the Serpstat API, you can only get the first 60,000 results, regardless of the number and size of the queries themselves. For more data - use the export option in the Domain Analysis, Keyword Analysis, or URL Analysis sections, or contact the manager for a personal upload of the results. Part of the API response, for which 1 credit is charged:
{
"6 plus portrait dimensions": {
"keyword": "6 plus portrait dimensions",
"region_queries_count": 1,
"cost": 0,
"concurrency": 0,
"geo_names": [],
"types": [
"also_asks",
"video",
"related_search",
"snip_breadcrumbs"
],
"right_spelling": null,
"weight": 1,
"difficulty": null
}
4.5. Top by keyword
The SerpstatKeywordProcedure.getKeywordTop method shows you Google's top-100 search results for the analyzed keyword. The data set is similar to the Top by keyword report in Keyword research.
General request parameters and instructions for using Serpstat API
Search databases available
Request parameters | |||||
Parameter | Description | Type | Optional | Default value | Value Options |
id | A request id: the response contains the same id. Enter any number (number) or text (string) value | int/string | no | 1, test | |
method | API method name | string | no | SerpstatKeywordProcedure.getKeywordTop | |
params | The object with parameters {...}, it lists all the following parameters and arrays [...] | array | no |
| |
keyword | Keyword to search for | string | no | iphone | |
se | ID of the search base to be searched. | string | no | g_us | |
filters | Filter conditions | int | yes | {"top_size": 100} | "top_size": 100 "position": 1 "url": https://www.apple.com/iphone/ "exact_url": https://www.apple.com/iphone-13-pro/ "domain": www.apple.com "minus_domain": www.blackberry.com "subdomain": developer.apple.com |
Response parameters | |
Parameter | Description |
id | Response id corresponds the request id |
result | Contains the answer |
data | Array with data |
top | Contains the result |
position | Domain's position for a keyword |
url | |
domain | Domain which ranks for the keyword |
subdomain | Subdomain which ranks for the keyword |
types | List of special elements shown in SERP (for example, video, carousel or map) |
ads | Number of found Ads (if there are ads in the results) |
results | Number of results |
summary_info | Object with data |
page | Page number |
left_lines | API credits remaining |
Credits: the number of charged credits corresponds to the number of results obtained upon request. You can get no more than 60000 results per a query. Part of the API response, for which 1 credit is charged:
{
"position": 1,
"url": "https://www.apple.com/iphone/",
"domain": "apple.com",
"subdomain": "www.apple.com",
"types": [
"shopping_top",
"kn_graph_carousel_list",
"also_asks",
"snip_breadcrumbs"
]
},
4.6. Сompetitors in organic search results
The SerpstatKeywordProcedure.getCompetitors method lists the domains that rank for the given keyword in Google top-20 results. The data set is similar to the Keyword research — SEO research — Competitors report.
General request parameters and instructions for using Serpstat API
Search databases available
Filter
Request parameters
| |||||
Parameter | Description | Type | Optional | Default value | Value Options |
id | A request id: the response contains the same id. Enter any number (number) or text (string) value | int/string | no | 1, test | |
method | API method name | string | no | SerpstatKeywordProcedure.getCompetitors | |
params | The object with parameters {...}, it lists all the following parameters and arrays [...] | array | no |
| |
keyword | Keyword to search for | string | no | iphone | |
se | ID of the search base to be searched. | string | no | g_us | |
sort | Order of sorting the results in the format: {{{field}}: {{order}}} | array | yes | [ ] empty array | {"keyword": "desc"} or {"visible": "asc"} |
size | Number of results per page in response | int | yes | 100 | "size": "10" |
filters | Filter conditions | array | yes | "domain": www.apple.com "minus_domain": www.blackberry.com "visible": 30; "traff": 300; "relevance": 5; "our_relevance": 11 |
Response parameters | |
Parameter | Description |
id | Response id corresponds the request id |
result | Contains the answer |
data | Array with data |
domain | Domain |
visible | Domain's visibility |
keywords | Number of keywords found in the chosen search engine |
traff | Estimated search traffic based on keyword positions and search volume |
visible_dynamic | Change in visibility since the last upgrade |
keywords_dynamic | Change in the number of keywords since the last upgrade |
traff_dynamic | Traffic change since the last upgrade |
ads_dynamic | Keyword change in PPC Ads |
new_keywords | Number of new keywords for the domain since the last upgrade |
out_keywords | Number of keywords lost by a domain since the last upgrade |
rised_keywords | Number of domain keywords which positions have improved since the last upgrade |
down_keywords | Number of domain keywords which positions have dropped since the last upgrade |
ad_keywords | Number of keywords in PPC |
ads | Number of Ads |
intersected | Number of domain keywords which contain a target keyword |
relevance | Domain's relevance to the keyword |
summary_info | Object with data |
page | Page number |
left_lines | Number of remaining API lines |
Credits: the number of charged credits corresponds to the number of results obtained upon request. You can get no more than 60000 results per a query. Part of the API response, for which 1 credit is charged:
{
"apple.com": {
"domain": "apple.com",
"visible": 3417.2564,
"keywords": 46650466,
"traff": 1998603882,
"visible_dynamic": 6.359480000000076,
"keywords_dynamic": -751,
"traff_dynamic": 7691041,
"ads_dynamic": -390,
"new_keywords": 153290,
"out_keywords": 154041,
"rised_keywords": 453556,
"down_keywords": 465903,
"ad_keywords": 5422,
"ads": 4018,
"intersected": 829984,
"relevance": 1.78,
"our_relevance": 9.97
},
4.7. Ads examples
The SerpstatKeywordProcedure.getAdKeywords returns paid keywords and ads copies that pop up for the queried keyword in paid search results. The data set is similar to the Keyword research — PPC research — Ads examples report.
General request parameters and instructions for using Serpstat API
Search databases available
Request parameters | |||||
Parameter | Description | Type | Optional | Default value | Value Options |
id | A request id: the response contains the same id. Enter any number (number) or text (string) value | int/string | no | 1, test | |
method | API method name | string | no | SerpstatKeywordProcedure.getAdKeywords | |
params | The object with parameters {...}, it lists all the following parameters and arrays [...] | array | no |
| |
keyword | Keyword to search for | string | no | iphone | |
se | ID of the search base to be searched. | string | no | g_us | |
domains | Domains list | array | yes | [ ] | ["apple.com","verizon.com"] |
minusKeywords | Negative keywords | array | yes | [] | ["app", "apple"] |
filters | Filter conditions | json object | yes |
| {"queries_from": 10} {"queries_to": 100} |
sort | Order of sorting the results in the format: {{{field}}: {{order}}} | json object | yes | {"position": "asc", "region_queries_count":"desc"} | {"cost": "asc"} |
page | Page number in response | int | yes | 1 | "page": "5" |
size | Number of results per page in response | int | yes | 100 | "size": "10" min: 1, max: 1000 |
filter | Fillter conditions | array | yes | "right_spelling": true; "right_spelling": false minus_domain : www.domain.com subdomain : blog.domain.com url (exact_url) : https://www.apple.com/airpods/ types : "carousel", "also_asks" keyword_length : num "region_queries_count": "1000"; "region_queries_count_wide": "1000"; "position": 1 "cost": "10"; "concurrency": "7"; "difficulty": 3; |
Response parameters | |
Parameter | Description |
id | Response id corresponds the request id |
result | Contains the answer |
data | Array with data |
keyword | Keyword which domain's ad is displayed in SERP |
keyword_length | Number of words divided by space in a keyword |
domain | Domain |
subdomain | Subdomain of the domain |
url | URL where the ad leads |
title | Ad title |
text | Ad text |
position | Ad position |
type | Ad placement type in relation to SERP (1 - above; 2 - under; 3 - side) |
cost | Cost per click, $ |
Cost per click, $ | Keyword competition in the PPC (0-100%) |
found_results | Number of results found for the keyword |
region_queries_count | Search volume in selected region |
region_queries_count_wide | Search volume (broad match) |
types | List of special elements shown in SERP (for example, video, carousel or map) |
geo_names | List of toponyms in the array (if toponyms are present in the keywords) |
difficulty | The assessment of the level of competition for a keyword to advance in organic search in the top-10 (from 0 to 100%) |
summary_info | Object with data |
page | Page number |
total | Number of paid search results for the keyword |
left_lines | API credits remaining |
Credits: the number of charged credits corresponds to the number of results obtained upon request. Part of the API response, for which 1 credit is charged:
{
"keyword": "upgrade iphone x to xs",
"keyword_length": 5,
"domain": "apple.com",
"subdomain": "www.apple.com",
"url": "https://www.apple.com/iphone/",
"title": "Trade in for iPhone 12 - Apple Official Site",
"text": "Get $90 - $515 off iPhone 12 when you trade in an iPhone 7 or newer. Terms apply. A14 Bionic Chip. 5G speed. Ceramic Shield. Super Retina XDR display. Services: Free no-contact delivery, Finance with Apple Card, 3% cash back w/Apple Card, Prepaid mail-in kit.",
"position": 2,
"type": "1",
"cost": 0,
"concurrency": 50,
"found_results": 325000000,
"region_queries_count": 10,
"region_queries_count_wide": 0,
"types": [
"carousel",
"also_asks",
"video",
"ads_top"
],
"geo_names": [],
"difficulty": null
},
4.8. Competitors in paid search results
The SerpstatDomainProcedure.getAdsCompetitors method brings in the list of domain competitors in PPC. The data set is similar to the Competitors report in PPC research of the domain.
General request parameters and instructions for using Serpstat API
Request parameters | ||||
Parameter | Description | Optional | Default value | Value options |
id | A request id: the response contains the same id. Enter any number (number) or text (string) value | no |
| 1, test |
method | API method name | no |
| SerpstatDomainProcedure.getAdsCompetitors |
params | The object with parameters {...}, it lists all the following parameters and arrays [...] | no |
|
|
domain | Domain name | no |
| nike.com |
se | ID of the search base to be searched. | no |
| g_us |
sort | Sort order of the results in the format: | yes | {"relevance":"desc"} | {"ads":"desc"} |
page | Page number in response | yes | 1 | "page": "1" |
size | Number of results per page in response | yes | 100 | "size": "50" |
Response parameters | |
Parameter | Description |
id | Response id corresponds the request id |
result | Contains the answer |
data | Array with data |
domain | Domain |
keywords | Number of paid keywords |
ads | Number of ads. |
intersected | Number of keywords bringing users to an analyzed domain and its competitor via paid results |
missing_keywords | Number of keywords that competitor use in PPC and analyzed domain does not use. |
summary_info | Object with data |
page | Page number |
left_lines | API credits remaining |
Credits: the number of charged credits corresponds to the number of results obtained upon request. Part of the API response, for which 1 credit is charged:
{
"domain": "finishline.com",
"keywords": 495,
"ads": 453,
"intersected": 57,
"missing_keywords": 438
},