# Bing search volume history

This endpoint will provide you with historical search volume data for up to 1000 keywords in one request. Needs keywords. Served by DataForSEO.

This endpoint will provide you with historical search volume data for up to 1000 keywords in one request. You can get search volume for keywords in monthly, weekly, or daily format and specify the device type.

- Tool ID: `dataforseo/keywords-data-bing-search-volume-history`
- Name in the catalog: Keywords Data Bing Search Volume History
- Provider: [DataForSEO](/providers/dataforseo.md)
- Capability: [Keyword research](/tools/seo/keyword-research.md)
- Price: usage based, the maximum is shown before a run
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

Billed at the cost the provider reports for the call, never above $100. Your agent sees the maximum before running.


```json
{
  "model": "reported",
  "costPath": "cost",
  "maxUsdDefault": 0.09,
  "maxUsdCap": 100,
  "requireCost": true
}
```

Pricing source: [https://docs.dataforseo.com/v3/appendix/user_data/](https://docs.dataforseo.com/v3/appendix/user_data/). Account tariff keywords_data/bing/search_volume/live; bounds applied to inputs; actual cost from provider response..

Price verification date: 2026-10-10.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "keywords": {
      "type": "array",
      "description": "keywords required field The maximum number of keywords you can specify: 1000 The maximum number of characters for each keyword: 100 the specified keywords will be converted to lowercase, data will be provided in a separate arraylearn more a",
      "items": {
        "type": "string",
        "maxLength": 80,
        "minLength": 1
      },
      "maxItems": 100,
      "minItems": 1
    },
    "location_name": {
      "type": "string",
      "description": "full name of search engine location required field if you don't specify location_code or location_coordinate if you use this field, you don't need to specify location_code or location_coordinate you can receive the list of available locatio",
      "maxLength": 2000,
      "minLength": 1
    },
    "location_code": {
      "type": "integer",
      "description": "search engine location code required field if you don't specify location_name or location_coordinate if you use this field, you don't need to specify location_name or location_coordinate you can receive the list of available locations of th"
    },
    "location_coordinate": {
      "type": "string",
      "description": "GPS coordinates of a location required field if you don't specify location_name or location_code if you use this field, you don't need to specify location_name or location_code location_coordinate parameter should be specified in the \"latit",
      "maxLength": 2000,
      "minLength": 1
    },
    "language_name": {
      "type": "string",
      "description": "full name of search engine language required field if you don't specify language_code if you use this field, you don't need to specify language_code you can receive the list of available languages of the search engines with their language_c",
      "maxLength": 2000,
      "minLength": 1
    },
    "language_code": {
      "type": "string",
      "description": "search engine language code required field if you don't specify language_name if you use this field, you don't need to specify language_name you can receive the list of available languages of the search engines with their language_code by m",
      "maxLength": 10,
      "minLength": 1
    },
    "device": {
      "type": "array",
      "description": "device types optional field specify this field if you want to get the data for a particular device types possible values: mobile, desktop, tablet, non_smartphones default value: [\"mobile\", \"desktop\", \"tablet\", \"non_smartphones\"]",
      "items": {
        "type": "string",
        "maxLength": 2000,
        "minLength": 1
      },
      "maxItems": 100,
      "minItems": 1
    },
    "period": {
      "type": "string",
      "description": "aggregates the returned data to a certain time period optional field specify this field if you want to get the data in monthly, weekly or daily formatpossible values: monthly, weekly, dailymonthly - returns data up to past 24 months weekly ",
      "maxLength": 2000,
      "minLength": 1
    },
    "date_from": {
      "type": "string",
      "description": "starting date of the time range optional field minimum value: 24 months back from today’s date; if Status endpoint returns false in the actual_data field, date_from can be set to the month before last and prior; if Status endpoint returns t",
      "maxLength": 2000,
      "pattern": "^20[0-9]{2}-[0-9]{2}-[0-9]{2}( [0-9]{2}:[0-9]{2}:[0-9]{2})?$",
      "minLength": 1
    },
    "date_to": {
      "type": "string",
      "description": "ending date of the time range optional fieldminimum value: two years back from today’s date; maximum value: one day from today's date; date format: \"yyyy-mm-dd\" example: \"2020-03-15\"Note: we do not recommend using a custom time rangeNote 2:",
      "maxLength": 2000,
      "pattern": "^20[0-9]{2}-[0-9]{2}-[0-9]{2}( [0-9]{2}:[0-9]{2}:[0-9]{2})?$",
      "minLength": 1
    },
    "tag": {
      "type": "string",
      "description": "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",
      "maxLength": 255
    }
  },
  "required": [
    "keywords"
  ],
  "additionalProperties": false,
  "allOf": [
    {
      "anyOf": [
        {
          "required": [
            "location_code"
          ]
        },
        {
          "required": [
            "location_name"
          ]
        },
        {
          "required": [
            "location_coordinate"
          ]
        }
      ]
    },
    {
      "anyOf": [
        {
          "required": [
            "language_code"
          ]
        },
        {
          "required": [
            "language_name"
          ]
        }
      ]
    }
  ]
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "dataforseo/keywords-data-bing-search-volume-history",
  "input": {
    "location_code": 2840,
    "language_code": "en",
    "keywords": [
      "10 minute timer"
    ]
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://docs.dataforseo.com/v3/keywords_data/bing/search_volume_history/live/)

[REST inspection](https://api.agentik.cc/v1/tools/dataforseo/keywords-data-bing-search-volume-history) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/dataforseo/keywords-data-bing-search-volume-history) · [Agent index](/llms.txt)
