Domain Organic Keywords (domain_keywords)
domain_keywords — method shows keywords for which the domain ranks for in Google top 100 search results.
You can get up to 60000 results in this report.
Pagination
Following parameters can be used for pagination:
- page_size : number of results per page (default: 100, max: 1000)
page : page number (set to the 1st page by default)
You can use the following parameters to filter the results:
Parameter | Description | Possible settings |
position_from | min position for a keyword | 1-100 |
position_to | max position for a keyword | 1-100 |
queries_from | min number of monthly searches | 0-100,000,000 |
queries_to | max number of monthly searches | 0-100,000,000 |
cost_from | min CPC | 0-200 |
cost_to | max CPC | 0-200 |
concurrency_from | min level of competition | 1-100 |
concurrency_to | max level of competition | 1-100 |
filtering by |
string | |
keywords | filtering by keywords (list of keywords separated by commas) | string |
minus_keywords | filtering by negative keywords (separated by commas) | string |
pm_url | lookup belonging to the partial |
1/0 (active/inactive) |
To sort the results apply the
sort : field that needs to be sortedorder : sorting order (asc - ascending, desc - descending)
Metrics | Description |
result | Encapsulates the answer |
total |
Number of keywords for which the domain ranks in top 100 |
region_queries_count | Search volume in selected search engine database |
domain | |
keyword | Keyword for which the domain ranks |
keyword_length | Number of words divided by space in a keyword |
URL of a page which appears in SERP for the keyword | |
right_spelling | Proposed correction for a keyword with a spelling error |
dynamic | How the position of this keyword has changed |
found_results |
The number of results found for |
keyword_crc | The checksum for a quick search |
url_crc | |
cost | Cost per click, $ |
concurrency | Keyword competition in PPC |
position | Domain's position for a keyword |
keyword_id | Keyword ID in our database |
subdomain | Subdomain which ranks for the keyword |
types | A 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) |
status_msg | Response "Ok" or "Error" report on a successful or unsuccessful request |
status_code | Response code 200 — successful request. Errors occur when limits are exceeded (number of simultaneous requests or account limits) |
left_lines | API limits remaining |
Part of the API response, for which 1 limit is charged:
{
"domain": "example.com",
"subdomain": "www.example.com",
"keyword": "gmail и мой домен",
"keyword_length": 4,
"url": "https://www.example.com/",
"position": 43,
"types": [
"related_search",
"video"
],
"found_results": 60,
"cost": 0,
"concurrency": 0,
"region_queries_count": 1,
"region_queries_count_wide": 0,
"geo_names": [],
"traff": 0,
"dynamic": null,
"_id": "66411178-43"
},
{
"result": {
"total": 610,
"hits": [
{
"domain": "example.com",
"subdomain": "www.example.com",
"keyword": "gmail и мой домен",
"keyword_length": 4,
"url": "https://www.example.com/",
"position": 43,
"types": [
"related_search",
"video"
],
"found_results": 60,
"cost": 0,
"concurrency": 0,
"region_queries_count": 1,
"region_queries_count_wide": 0,
"region_queries_count_last": 0,
"geo_names": [],
"traff": 0,
"dynamic": null,
"_id": "66411178-43"
},
{
"domain": "example.com",
"subdomain": "www.example.com",
"keyword": "мой домен",
"keyword_length": 2,
"url": "https://www.example.com/",
"position": 40,
"types": [
"related_search",
"video"
],
"found_results": 60,
"cost": 0,
"concurrency": 0,
"region_queries_count": 1,
"region_queries_count_wide": 0,
"geo_names": [],
"traff": 0,
"dynamic": null,
"_id": "66411178-40"
}
]
},
"status_msg": "OK",
"status_code": 200,
"left_lines": 344810
}
<?php
// This example works on serpstat-sdk only
// https://github.com/SerpstatGlobal/serpstat-sdk
require_once __DIR__ . '/../vendor/autoload.php';
// configure your application
$config = [
'token' => '19666fc1ae1724da1d5ea2f3a99d5f5a',
];
$domain = 'example.com';
// init client with your serpstat api token
$apiClient = new \Serpstat\Sdk\Core\ApiGuzzleHttpClient($config['token']);
// create instance of any api method class
// list of methods classes in folder src\Methods
$apiMethod = new \Serpstat\Sdk\Methods\DomainKeywordsMethod(
$domain,
\Serpstat\Sdk\Interfaces\IApiClient::SE_GOOGLE_RU
);
try {
// try call api method
$response = $apiClient->call($apiMethod);
} catch (\Exception $e) {
// catch api error
$response = $e->getMessage();
}
import codecs
import json
import pprint
import urllib.request as urlrequest
from urllib.parse import urlencode
host = 'http://api.serpstat.com/v3'
method = 'domain_keywords'
params = {
'query': 'example.com', # string for get info
'se': 'g_us', # string search engine
'token': 'ijmiom4f5m34905g03um8342dm04923lre3w', # string personal token
}
api_url = "{host}/{method}?{params}".format(
host=host,
method=method,
params=urlencode(params)
)
try:
json_data = urlrequest.urlopen(api_url).read()
except Exception as e0:
print("API request error: {error}".format(error=e0))
data = json.loads(json_data)
pprint.pprint(data)