openapi: 3.0.1
info:
title: DataForSEO AiOptimization KeywordsData API
description: DataForSEO API is the starting point on your journey towards building powerful SEO software. With DataForSEO you can get all the data you need to build an efficient application while also saving your time and budget. DataForSEO API is using the REST technology for interchanging data between your application and our service. The data exchange is made through the widely used HTTP protocol, which allows applying our API to almost all programming languages.
version: 1.0.0
servers:
- url: https://api.dataforseo.com
- url: https://sandbox.dataforseo.com
tags:
- name: KeywordsData
paths:
/v3/keywords_data/id_list:
post:
tags:
- KeywordsData
description: 'This endpoint is designed to provide you with a list of IDs and metadata for all Keywords Data tasks created within the specified time period, including both successful and uncompleted tasks.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/id_list/?bash'''
operationId: KeywordsDataIdList
requestBody:
content:
application/json:
schema:
type: array
items:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataIdListRequestInfo'
nullable: true
example:
- datetime_from: '2026-04-12 04:39:39 +00:00'
datetime_to: '2026-04-14 04:39:39 +00:00'
limit: 100
offset: 0
sort: desc
include_metadata: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataIdListResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/errors:
post:
tags:
- KeywordsData
description: 'By calling this endpoint you will receive information about the Keywords Data API tasks that returned an error within the past 7 days.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/errors/?bash'''
operationId: KeywordsDataErrors
requestBody:
content:
application/json:
schema:
type: array
items:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataErrorsRequestInfo'
nullable: true
example:
- limit: 10
offset: 0
filtered_function: pingback_url
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataErrorsResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/status:
get:
tags:
- KeywordsData
description: 'By calling this endpoint, you will know if Google updated keyword data for the previous month. Generally, Google updates keyword data in the middle of the month. So, if Google updated its data in October, you would be able to see the actual search volume, cost-per-click, competition, and other metrics for September. If Google didn’t update its data in October, the latest information would be available for August.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/status/?bash'''
operationId: GoogleAdsStatus
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsStatusResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/locations:
get:
tags:
- KeywordsData
description: 'We use Google Geographical Targeting. You can refer to Google Ads Target Types page to review the full list of possible location types. With Keywords Data API, you can select any location type supported by Google, except for “Okrug”.
Postal Codes can be used to set a task, albeit API response will not return data for such tasks.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/locations/?bash'''
operationId: GoogleAdsLocations
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsLocationsResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/locations/{country}:
get:
tags:
- KeywordsData
description: 'We use Google Geographical Targeting. You can refer to Google Ads Target Types page to review the full list of possible location types. With Keywords Data API, you can select any location type supported by Google, except for “Okrug”.
Postal Codes can be used to set a task, albeit API response will not return data for such tasks.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/locations/?bash'''
operationId: GoogleAdsLocationsCountry
parameters:
- name: country
in: path
description: 'country ISO code
optional field
specify the ISO code if you want to filter the list of locations by country
example:
us'
required: true
schema:
type: string
nullable: true
example: us
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsLocationsCountryResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/languages:
get:
tags:
- KeywordsData
description: 'By calling this API you will receive the list of languages supported by Keywords Data API.
As a response of the API server, you will receive JSON-encoded data containing a tasks array with the information about available languages.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/languages/?bash'''
operationId: GoogleAdsLanguages
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsLanguagesResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/search_volume/task_post:
post:
tags:
- KeywordsData
description: 'Note that Google Ads Keywords Data API is based on the latest version of the Google Ads API that has replaced legacy Google AdWords API. If you’re using DataForSEO Google AdWords API, you need to upgrade to DataForSEO Google Ads API.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/search_volume/task_post/?bash'''
operationId: GoogleAdsSearchVolumeTaskPost
requestBody:
content:
application/json:
schema:
type: array
items:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsSearchVolumeTaskPostRequestInfo'
nullable: true
example:
- location_name: United States
keywords:
- buy laptop
- cheap laptops for sale
- purchase laptop
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsSearchVolumeTaskPostResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/search_volume/tasks_ready:
get:
tags:
- KeywordsData
description: 'This endpoint is designed to provide you with a list of completed tasks, which haven’t been collected yet. If you use the Standard method without specifying the postback_url, you can receive the list of id for all completed tasks using this endpoint. Then, you can collect the results using the ‘Task GET’ endpoint.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/search_volume/tasks_ready/?bash'''
operationId: GoogleAdsSearchVolumeTasksReady
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsSearchVolumeTasksReadyResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/search_volume/task_get/{id}:
get:
tags:
- KeywordsData
description: 'Note that Google Ads Keywords Data API is based on the latest version of the Google Ads API that has replaced legacy Google AdWords API. If you’re using DataForSEO Google AdWords API, you need to upgrade to DataForSEO Google Ads API.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/search_volume/task_get/?bash'''
operationId: GoogleAdsSearchVolumeTaskGet
parameters:
- name: id
in: path
description: 'task identifier
unique task identifier in our system in the UUID format
you will be able to use it within 30 days to request the results of the task at any time'
required: true
schema:
type: string
example: 00000000-0000-0000-0000-000000000000
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsSearchVolumeTaskGetResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/search_volume/live:
post:
tags:
- KeywordsData
description: 'Note that Google Ads Keywords Data API is based on the latest version of the Google Ads API that has replaced legacy Google AdWords API. If you’re using DataForSEO Google AdWords API, you need to upgrade to DataForSEO Google Ads API.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/search_volume/live/?bash'''
operationId: GoogleAdsSearchVolumeLive
requestBody:
content:
application/json:
schema:
type: array
items:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsSearchVolumeLiveRequestInfo'
nullable: true
example:
- location_code: 2840
keywords:
- buy laptop
- cheap laptops for sale
- purchase laptop
date_from: '2026-01-15'
search_partners: true
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsSearchVolumeLiveResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/keywords_for_site/task_post:
post:
tags:
- KeywordsData
description: for more info please visit 'https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_site/task_post/?bash'
operationId: GoogleAdsKeywordsForSiteTaskPost
requestBody:
content:
application/json:
schema:
type: array
items:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForSiteTaskPostRequestInfo'
nullable: true
example:
- location_code: 2840
target: dataforseo.com
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForSiteTaskPostResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/keywords_for_site/tasks_ready:
get:
tags:
- KeywordsData
description: 'This endpoint is designed to provide you with a list of completed tasks, which haven’t been collected yet. If you use the Standard method without specifying the postback_url, you can receive the list of id for all completed tasks using this endpoint. Then, you can collect the results using the ‘Task GET’ endpoint.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_site/tasks_ready/?bash'''
operationId: GoogleAdsKeywordsForSiteTasksReady
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForSiteTasksReadyResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/keywords_for_site/task_get/{id}:
get:
tags:
- KeywordsData
description: 'Note that Google Ads Keywords Data API is based on the latest version of the Google Ads API that has replaced legacy Google AdWords API. If you’re using DataForSEO Google AdWords API, you need to upgrade to DataForSEO Google Ads API.
This endpoint will provide you with a list of keywords relevant to the specified domain along with their bids, search volumes for the last month, search volume trends for the last year (for estimating search volume dynamics), and competition levels.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_site/task_get/?bash'''
operationId: GoogleAdsKeywordsForSiteTaskGet
parameters:
- name: id
in: path
description: 'task identifier
unique task identifier in our system in the UUID format
you will be able to use it within 30 days to request the results of the task at any time'
required: true
schema:
type: string
example: 00000000-0000-0000-0000-000000000000
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForSiteTaskGetResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/keywords_for_site/live:
post:
tags:
- KeywordsData
description: 'Note that Google Ads Keywords Data API is based on the latest version of the Google Ads API that has replaced legacy Google AdWords API. If you’re using DataForSEO Google AdWords API, you need to upgrade to DataForSEO Google Ads API.
This endpoint will provide you with a list of keywords relevant to the specified domain along with their bids, search volumes for the last month, search volume trends for the last year (for estimating search volume dynamics), and competition levels.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_site/live/?bash'''
operationId: GoogleAdsKeywordsForSiteLive
requestBody:
content:
application/json:
schema:
type: array
items:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForSiteLiveRequestInfo'
nullable: true
example:
- location_code: 2840
target: dataforseo.com
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForSiteLiveResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/keywords_for_keywords/task_post:
post:
tags:
- KeywordsData
description: 'Note that Google Ads Keywords Data API is based on the latest version of the Google Ads API that has replaced legacy Google AdWords API. If you’re using DataForSEO Google AdWords API, you need to upgrade to DataForSEO Google Ads API.
This endpoint will provide relevant keywords for the specified terms. Set up to 20 keywords in the keywords array and get keyword suggestions from Google Ads. You can get up to 20,000 keyword suggestions with all essential keyword data in response to one request.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_keywords/task_post/?bash'''
operationId: GoogleAdsKeywordsForKeywordsTaskPost
requestBody:
content:
application/json:
schema:
type: array
items:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForKeywordsTaskPostRequestInfo'
nullable: true
example:
- location_code: 2840
keywords:
- phone
- cellphone
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForKeywordsTaskPostResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/keywords_for_keywords/tasks_ready:
get:
tags:
- KeywordsData
description: 'This endpoint is designed to provide you with a list of completed tasks, which haven’t been collected yet. If you use the Standard method without specifying the postback_url, you can receive the list of id for all completed tasks using this endpoint. Then, you can collect the results using the ‘Task GET’ endpoint.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_keywords/tasks_ready/?bash'''
operationId: GoogleAdsKeywordsForKeywordsTasksReady
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForKeywordsTasksReadyResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/keywords_for_keywords/task_get/{id}:
get:
tags:
- KeywordsData
description: 'Note that Google Ads Keywords Data API is based on the latest version of the Google Ads API that has replaced legacy Google AdWords API. If you’re using DataForSEO Google AdWords API, you need to upgrade to DataForSEO Google Ads API.
This endpoint will select relevant keywords for the specified terms. Set up to 20 keywords and get the results, which are suggested by Google Ads for your query.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_keywords/task_get/?bash'''
operationId: GoogleAdsKeywordsForKeywordsTaskGet
parameters:
- name: id
in: path
description: 'task identifier
unique task identifier in our system in the UUID format
you will be able to use it within 30 days to request the results of the task at any time'
required: true
schema:
type: string
example: 00000000-0000-0000-0000-000000000000
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForKeywordsTaskGetResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/keywords_for_keywords/live:
post:
tags:
- KeywordsData
description: 'Note that Google Ads Keywords Data API is based on the latest version of the Google Ads API that has replaced legacy Google AdWords API. If you’re using DataForSEO Google AdWords API, you need to upgrade to DataForSEO Google Ads API.
This endpoint will provide relevant keywords for the specified terms. Set up to 20 keywords in the keywords array and get keyword suggestions from Google Ads.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/keywords_for_keywords/live/?bash'''
operationId: GoogleAdsKeywordsForKeywordsLive
requestBody:
content:
application/json:
schema:
type: array
items:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForKeywordsLiveRequestInfo'
nullable: true
example:
- location_code: 2840
keywords:
- phone
- cellphone
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsKeywordsForKeywordsLiveResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/ad_traffic_by_keywords/task_post:
post:
tags:
- KeywordsData
description: for more info please visit 'https://docs.dataforseo.com/v3/keywords_data/google_ads/ad_traffic_by_keywords/task_post/?bash'
operationId: GoogleAdsAdTrafficByKeywordsTaskPost
requestBody:
content:
application/json:
schema:
type: array
items:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsAdTrafficByKeywordsTaskPostRequestInfo'
nullable: true
example:
- language_code: en
location_code: 2840
bid: 999
match: exact
keywords:
- seo marketing
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsAdTrafficByKeywordsTaskPostResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/ad_traffic_by_keywords/tasks_ready:
get:
tags:
- KeywordsData
description: 'This endpoint is designed to provide you with a list of completed tasks, which haven’t been collected yet. If you use the Standard method without specifying the postback_url, you can receive the list of id for all completed tasks using this endpoint. Then, you can collect the results using the ‘Task GET’ endpoint.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_ads/ad_traffic_by_keywords/tasks_ready/?bash'''
operationId: GoogleAdsAdTrafficByKeywordsTasksReady
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsAdTrafficByKeywordsTasksReadyResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/ad_traffic_by_keywords/task_get/{id}:
get:
tags:
- KeywordsData
description: for more info please visit 'https://docs.dataforseo.com/v3/keywords_data/google_ads/ad_traffic_by_keywords/task_get/?bash'
operationId: GoogleAdsAdTrafficByKeywordsTaskGet
parameters:
- name: id
in: path
description: 'task identifier
unique task identifier in our system in the UUID format
you will be able to use it within 30 days to request the results of the task at any time'
required: true
schema:
type: string
example: 00000000-0000-0000-0000-000000000000
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsAdTrafficByKeywordsTaskGetResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_ads/ad_traffic_by_keywords/live:
post:
tags:
- KeywordsData
description: for more info please visit 'https://docs.dataforseo.com/v3/keywords_data/google_ads/ad_traffic_by_keywords/live/?bash'
operationId: GoogleAdsAdTrafficByKeywordsLive
requestBody:
content:
application/json:
schema:
type: array
items:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsAdTrafficByKeywordsLiveRequestInfo'
nullable: true
example:
- location_code: 2840
language_code: en
bid: 999
match: exact
keywords:
- seo marketing
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleAdsAdTrafficByKeywordsLiveResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_trends/locations:
get:
tags:
- KeywordsData
description: for more info please visit 'https://docs.dataforseo.com/v3/keywords_data/google_trends/locations/?bash'
operationId: GoogleTrendsLocations
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleTrendsLocationsResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_trends/locations/{country}:
get:
tags:
- KeywordsData
description: for more info please visit 'https://docs.dataforseo.com/v3/keywords_data/google_trends/locations/?bash'
operationId: GoogleTrendsLocationsCountry
parameters:
- name: country
in: path
description: 'country ISO code
optional field
specify the ISO code if you want to filter the list of locations by country
example:
us'
required: true
schema:
type: string
example: us
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleTrendsLocationsCountryResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_trends/languages:
get:
tags:
- KeywordsData
description: 'By calling this API you will receive the list of languages supported by Google Trends API.
As a response of the API server, you will receive JSON-encoded data containing a tasks array with the information about available languages.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_trends/languages/?bash'''
operationId: GoogleTrendsLanguages
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleTrendsLanguagesResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_trends/categories:
get:
tags:
- KeywordsData
description: 'By calling this API you will receive the list of categories supported by Google Trends API.
As a response of the API server, you will receive JSON-encoded data containing a tasks array with the information about available categories.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_trends/categories/?bash'''
operationId: GoogleTrendsCategories
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleTrendsCategoriesResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_trends/explore/task_post:
post:
tags:
- KeywordsData
description: 'This endpoint will provide you with the keyword popularity data from the ‘Explore’ feature of Google Trends. You can check keyword trends for Google Search, Google News, Google Images, Google Shopping, and YouTube.
for more info please visit ''https://docs.dataforseo.com/v3/keywords_data/google_trends/explore/task_post/?bash'''
operationId: GoogleTrendsExploreTaskPost
requestBody:
content:
application/json:
schema:
type: array
items:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleTrendsExploreTaskPostRequestInfo'
nullable: true
example:
- date_from: '2026-01-15'
date_to: '2026-03-15'
type: youtube
category_code: 3
keywords:
- seo api
- rank api
responses:
'200':
description: Successful operation
content:
application/json:
schema:
type: object
oneOf:
- $ref: '#/components/schemas/KeywordsDataGoogleTrendsExploreTaskPostResponseInfo'
nullable: true
security:
- basicAuth: []
/v3/keywords_data/google_trends/explore/tasks_ready:
get:
tags:
- KeywordsData
# --- truncated at 32 KB (435 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dataforseo/refs/heads/main/openapi/dataforseo-keywordsdata-api-openapi.yml