Felo API PlatformFelo API Platform
v0.1.0-beta
OpenAPI 3.1.0

Historical Keyword Data

Server:https://openapi.felo.ai
Client Libraries

DataForSEO

​

SEO, search-engine results, keyword research, backlinks and AI visibility data.

Historical Keyword Data

​

How a keyword's own metrics - volume, competition, cpc - moved over time. This one takes no limit parameter, but it is priced per call rather than per item, so send the whole list at once. Wrapped in DataForSEO's envelope: data in tasks[0].result, outcome in tasks[0].status_code - a rejected request still returns HTTP 200. This tracks the keyword; post_dataforseo_labs_google_historical_rank_live tracks a domain. For the current values use post_dataforseo_labs_google_keyword_overview_live.

Body
required
application/json
  • Type: array object[]
    • Type: object
      • keywords
        Type: array string[]
        required

        keywords required field The maximum number of keywords you can specify: 700 The maximum number of characters for each keyword: 80 The maximum number of words for each keyword phrase: 10 the specified keywords will be converted to lowercase format, data will be provided in a separate array note that if some of the keywords specified in this array are omitted in the results you receive, then our database doesn’t contain such keywords and cannot return data on them you will not be charged for the keywords omitted in the results learn more about rules and limitations of keyword and keywords fields in DataForSEO APIs in this Help Center article

      • language_code
        Type: string

        language code 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 locations with their language_code by making a separate request to the https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages example: en

      • language_name
        Type: string

        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 locations with their language_name by making a separate request to the https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages example: English

      • location_code
        Type: integer

        location code 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 by making a separate request to the https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages example: 2840

      • location_name
        Type: string

        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 their location_name by making a separate request to the https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages example: United Kingdom

      • tag
        Type: 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

      Empty object
      Empty object
Responses
  • 200
    Type: object

    Successful response

    • cost
      Type: number

      total tasks cost, USD

    • status_code
      Type: integer

      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

    • status_message
      Type: string

      general informational message you can find the full list of general informational messages here

    • tasks
      Type: array string[]

      array of tasks

    • tasks_count
      Type: integer

      the number of tasks in the tasks array

    • tasks_error
      Type: integer

      the number of tasks in the tasks array returned with an error

    • tasks.cost
      Type: number

      cost of the task, USD

    • tasks.data
      Type: object

      contains the same parameters that you specified in the POST request

    • tasks.id
      Type: string

      task identifier unique task identifier in our system in the UUID format

    • tasks.path
      Type: array string[]

      URL path

    • tasks.result
      Type: array string[]

      array of results

    • tasks.result_count
      Type: integer

      number of elements in the result array

    • tasks.result.items
      Type: array string[]

      contains keywords and related data

    • tasks.result.items_count
      Type: integer

      the number of results returned in the items array

    • tasks.result.items.history
      Type: array string[]

      array of objects with historical data for the keyword

    • tasks.result.items.history.keyword_info
      Type: object

      historical data for the keyword

    • tasks.result.items.history.keyword_info.categories
      Type: array string[]

      product and service categories you can download the full list of possible categories

    • tasks.result.items.history.keyword_info.competition
      Type: number

      competition represents the relative amount of competition associated with the given keyword; the value is based on Google Ads data and can be between 0 and 1 (inclusive)

    • tasks.result.items.history.keyword_info.competition_level
      Type: string

      competition level represents the relative level of competition associated with the given keyword in paid SERP only; possible values: LOW, MEDIUM, HIGH if competition level is unknown, the value is null; learn more about the metric in this help center article

    • tasks.result.items.history.keyword_info.cpc
      Type: number

      cost-per-click represents the average cost per click (USD) historically paid for the keyword

    • tasks.result.items.history.keyword_info.high_top_of_page_bid
      Type: number

      maximum bid for the ad to be displayed at the top of the first page indicates the value greater than about 80% of the lowest bids for which ads were displayed (based on Google Ads statistics for advertisers) the value may differ depending on the location specified in a POST request

    • tasks.result.items.history.keyword_info.last_updated_time
      Type: string

      date and time when keyword data was updated in the UTC format: “yyyy-mm-dd hh-mm-ss +00:00” example: 2019-11-15 12:57:46 +00:00

    • tasks.result.items.history.keyword_info.low_top_of_page_bid
      Type: number

      minimum bid for the ad to be displayed at the top of the first page indicates the value greater than about 20% of the lowest bids for which ads were displayed (based on Google Ads statistics for advertisers) the value may differ depending on the location specified in a POST request

    • tasks.result.items.history.keyword_info.monthly_searches
      Type: array string[]

      monthly searches represents the (approximate) number of searches on this keyword idea (as available for the past twelve months), targeted to the specified geographic locations

    • tasks.result.items.history.keyword_info.monthly_searches.month
      Type: integer

      month

    • tasks.result.items.history.keyword_info.monthly_searches.search_volume
      Type: integer

      monthly average search volume rate

    • tasks.result.items.history.keyword_info.monthly_searches.year
      Type: integer

      year

    • tasks.result.items.history.keyword_info.se_type
      Type: string

      search engine type

    • tasks.result.items.history.keyword_info.search_volume
      Type: integer

      average monthly search volume rate represents the (approximate) number of searches for the given keyword idea on google.com

    • tasks.result.items.history.keyword_info.search_volume_trend
      Type: object

      search volume trend changes represents search volume change in percent compared to the previous period

    • tasks.result.items.history.keyword_info.search_volume_trend.monthly
      Type: integer

      search volume change in percent compared to the previous month

    • tasks.result.items.history.keyword_info.search_volume_trend.quarterly
      Type: integer

      search volume change in percent compared to the previous quarter

    • tasks.result.items.history.keyword_info.search_volume_trend.yearly
      Type: integer

      search volume change in percent compared to the previous year

    • tasks.result.items.history.month
      Type: integer

      month

    • tasks.result.items.history.year
      Type: integer

      year

    • tasks.result.items.keyword
      Type: string

      keyword keyword is returned with decoded %## (plus character ‘+’ will be decoded to a space character)

    • tasks.result.items.language_code
      Type: string

      language code in a POST array

    • tasks.result.items.location_code
      Type: integer

      location code in a POST array if there is no data, then the value is null

    • tasks.result.items.se_type
      Type: string

      search engine type

    • tasks.result.language_code
      Type: string

      language code in a POST array

    • tasks.result.location_code
      Type: integer

      location code in a POST array

    • tasks.result.se_type
      Type: string

      search engine type

    • tasks.status_code
      Type: integer

      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

    • tasks.status_message
      Type: string

      informational message of the task you can find the full list of general informational messages here

    • tasks.time
      Type: string

      execution time, seconds

    • time
      Type: string

      execution time, seconds

    • version
      Type: string

      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.

Request Example for post/v1/beta/dataforseo/dataforseo_labs/google/historical_keyword_data/live
curl https://openapi.felo.ai/v1/beta/dataforseo/dataforseo_labs/google/historical_keyword_data/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.location_code": 1,
  "tasks.result.language_code": "string",
  "tasks.result.items_count": 1,
  "tasks.result.items": [
    "string"
  ],
  "tasks.result.items.se_type": "string",
  "tasks.result.items.keyword": "string",
  "tasks.result.items.location_code": 1,
  "tasks.result.items.language_code": "string",
  "tasks.result.items.history": [
    "string"
  ],
  "tasks.result.items.history.year": 1,
  "tasks.result.items.history.month": 1,
  "tasks.result.items.history.keyword_info": {},
  "tasks.result.items.history.keyword_info.se_type": "string",
  "tasks.result.items.history.keyword_info.last_updated_time": "string",
  "tasks.result.items.history.keyword_info.competition": 1,
  "tasks.result.items.history.keyword_info.competition_level": "string",
  "tasks.result.items.history.keyword_info.cpc": 1,
  "tasks.result.items.history.keyword_info.search_volume": 1,
  "tasks.result.items.history.keyword_info.low_top_of_page_bid": 1,
  "tasks.result.items.history.keyword_info.high_top_of_page_bid": 1,
  "tasks.result.items.history.keyword_info.categories": [
    "string"
  ],
  "tasks.result.items.history.keyword_info.monthly_searches": [
    "string"
  ],
  "tasks.result.items.history.keyword_info.monthly_searches.year": 1,
  "tasks.result.items.history.keyword_info.monthly_searches.month": 1,
  "tasks.result.items.history.keyword_info.monthly_searches.search_volume": 1,
  "tasks.result.items.history.keyword_info.search_volume_trend": {},
  "tasks.result.items.history.keyword_info.search_volume_trend.monthly": 1,
  "tasks.result.items.history.keyword_info.search_volume_trend.quarterly": 1,
  "tasks.result.items.history.keyword_info.search_volume_trend.yearly": 1
}
Historical Keyword Data