DataForSEO
SEO, search-engine results, keyword research, backlinks and AI visibility data.
SERP Competitors
The domains ranking alongside you for a set of keywords, with how many they share. Returns se_type, seed_keywords, total_count, items_count and items. Wrapped in DataForSEO's envelope: data in tasks[0].result, outcome in tasks[0].status_code - a rejected request still returns HTTP 200. ⚠️ These are search competitors, decided by shared rankings. The link-graph equivalent is post_dataforseo_backlinks_competitors_live, and the two lists often disagree - which is itself informative.
- Тип: array object[]
- Тип: object
- keywordsТип: array string[]обязательно
keywords array required field the results will be based on the keywords you specify in this array UTF-8 encoding; the keywords will be converted to lowercase format; you can specify the maximum of 200 keywords learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article
- filtersТип: array
array of results filtering parameters optional field you can add several filters at once (8 filters maximum) you should set a logical operator and, or between the conditions the following operators are supported: regex, not_regex, , , >, >=, =, , in, not_in, match, not_match, ilike, not_ilike, like, not_like you can use the % operator with like and not_like, as well as ilike and not_ilike to match any string of zero or more characters example: ["median_position","in",[1,10]] [["median_position","in",[1,10]],"and",["domain","not_like","%wikipedia.org%"]] [["domain","not_like","%wikipedia.org%"], "and", [["relevant_serp_items",">",0],"or",["median_position","in",[1,10]]]] for more information about filters, please refer to Dataforseo Labs – Filters or this help center guide
- includeТип: boolean
_subdomains indicates if the subdomains will be included in the search optional field if set to false, the subdomains will be ignored default value: true
- itemТип: array string[]
_types search results type indicates type of search results included in the response optional field possible values: ["organic", "paid", "featured_snippet", "local_pack"] default value: ["organic", "paid"]
- languageТип: string
_code unique language identifier required field if you don’t specify language_name Note: it is required to specify either language_name or language_code you can receive the list of available languages with their language_code parameters by making a separate request to the https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages example: en
- languageТип: string
_name full name of the language required field if you don’t specify language_code Note: it is required to specify either language_name or language_code you can receive the list of available languages with their language_name parameters by making a separate request to the https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages example: English
- limitТип: integer
the maximum number of returned domains optional field default value: 100 maximum value: 1000
- locationТип: integer
_code unique location identifier required field if you don’t specify location_name Note: it is required to specify either location_name or location_code you can receive the list of available locations with their location_code parameters by making a separate request to the https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages example: 2840
- locationТип: string
_name full name of the location required field if you don’t specify location_code Note: it is required to specify either location_name or location_code you can receive the list of available locations with location_name parameters by making a separate request to the https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages example: United Kingdom
- offsetТип: integer
offset in the results array of returned domains optional field default value: 0 if you specify the 10 value, the first ten domains in the results array will be omitted and the data will be provided for the successive domains
- orderТип: array string[]
_by results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc – results will be sorted in the ascending order desc – results will be sorted in the descending order the comma is used as a separator example: ["avg_position,asc"] default rule: ["rating,desc"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: ["avg_position,asc","etv,desc"]
- tagТип: string
user-defined task identifier optional field the character limit is 255 you can use this parameter to identify the task and match it with the result you will find the specified tag value in the data object of the response
Пустой объектПустой объект
- Тип: object200
Successful response
- Тип: numbercost
total tasks cost, USD
- Тип: integerstatus
_code general status code you can find the full list of the response codes here Note: we strongly recommend designing a necessary system for handling related exceptional or error conditions
- Тип: stringstatus
_message general informational message you can find the full list of general informational messages here
- Тип: array string[]tasks
array of tasks
- Тип: integertasks
_count the number of tasks in the tasks array
- Тип: integertasks
_error the number of tasks in the tasks array returned with an error
- Тип: numbertasks
.cost cost of the task, USD
- Тип: objecttasks
.data contains the same parameters that you specified in the POST request
- Тип: stringtasks
.id task identifier unique task identifier in our system in the UUID format
- Тип: array string[]tasks
.path URL path
- Тип: array string[]tasks
.result array of results
- Тип: integertasks
.result _count number of elements in the result array
- Тип: array string[]tasks
.result .items contains detected SERP competitors and related data
- Тип: integertasks
.result .items _count the number of results returned in the items array
- Тип: integertasks
.result .items .avg _position the average position of the domain for the specified keywords the arithmetic mean of values in the keywords_positions array
- Тип: stringtasks
.result .items .domain domain name of the detected SERP competitor
- Тип: numbertasks
.result .items .etv estimated traffic volume represents the estimated monthly traffic that specified keywords are driving to the website calculated as the sum of the products of the specified keywords’ search volume values and CTR (click-through-rate) rates at certain positions in SERP learn more about how the metric is calculated in this help center article
- Тип: integertasks
.result .items .keywords _count the number of specified keywords the domain has positions for in SERPs
- Тип: objecttasks
.result .items .keywords _positions keyword positions SERP positions the related domain holds in SERP for the specified keywords
- Тип: integertasks
.result .items .median _position the median position of the domain for the specified keywords the median of the values in the keywords_positions array
- Тип: integertasks
.result .items .rating the margin between the greatest possible and actual keyword positions represents the relative visibility rate of the domain in SERP for the specified keywords calculated as sum(100-keywords_positions)
- Тип: integertasks
.result .items .relevant _serp _items the number of SERP elements relevant to the domain represents the number of search results in SERP relevant to the domain for the specified keywords
- Тип: stringtasks
.result .items .se _type search engine type
- Тип: numbertasks
.result .items .visibility SERP visibility rate represents the website visibility rate based on the SERP positions of the specified keywords Keywords with positions in the range from 1 to 10 are assigned the visibility index from 1 to 0.1, respectively Keywords with positions in the range from 11 to 20 have the fixed visibility index of 0.05 keywords with positions from 20 to 100 have the visibility index equal to 0
- Тип: stringtasks
.result .language _code language code in a POST array if there is no data, then the value is null
- Тип: integertasks
.result .location _code location code in a POST array if there is no data, then the value is null
- Тип: stringtasks
.result .se _type search engine type
- Тип: array string[]tasks
.result .seed _keywords keywords specified in the request keyword is returned with decoded %## (plus character ‘+’ will be decoded to a space character)
- Тип: integertasks
.result .total _count the total amount of results in our database relevant to your request
- Тип: integertasks
.status _code status code of the task generated by DataForSEO; can be within the following range: 10000-60000 you can find the full list of the response codes here
- Тип: stringtasks
.status _message informational message of the task you can find the full list of general informational messages here
- Тип: stringtasks
.time execution time, seconds
- Тип: stringtime
execution time, seconds
- Тип: stringversion
the current version of the API
application/json - 400
Bad request
- 401
Unauthorized
- 402
The request cannot proceed because a billing requirement is not met.
- 403
The account is not permitted to perform this operation.
- 429
Rate limit exceeded
- 500
Internal server error
- 502
The service could not complete the request.
- 503
The API or billing service is temporarily unavailable.
- 504
The service timed out while processing the request.
- default
The operation failed. Keep the response request ID when contacting Felo support.
curl https://openapi.felo.ai/v1/beta/dataforseo/dataforseo_labs/google/serp_competitors/live \
--request POST \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
--data '[
{},
{}
]'
{
"version": "string",
"status_code": 1,
"status_message": "string",
"time": "string",
"cost": 1,
"tasks_count": 1,
"tasks_error": 1,
"tasks": [
"string"
],
"tasks.id": "string",
"tasks.status_code": 1,
"tasks.status_message": "string",
"tasks.time": "string",
"tasks.cost": 1,
"tasks.result_count": 1,
"tasks.path": [
"string"
],
"tasks.data": {},
"tasks.result": [
"string"
],
"tasks.result.se_type": "string",
"tasks.result.seed_keywords": [
"string"
],
"tasks.result.location_code": 1,
"tasks.result.language_code": "string",
"tasks.result.total_count": 1,
"tasks.result.items_count": 1,
"tasks.result.items": [
"string"
],
"tasks.result.items.se_type": "string",
"tasks.result.items.domain": "string",
"tasks.result.items.avg_position": 1,
"tasks.result.items.median_position": 1,
"tasks.result.items.rating": 1,
"tasks.result.items.etv": 1,
"tasks.result.items.keywords_count": 1,
"tasks.result.items.visibility": 1,
"tasks.result.items.relevant_serp_items": 1,
"tasks.result.items.keywords_positions": {}
}