# DataForSEO trends demography

This endpoint will provide you with the demographic breakdown (by age and gender) of keyword popularity per each specified term based on DataForSEO Trends data. Needs keywords.

This endpoint will provide you with the demographic breakdown (by age and gender) of keyword popularity per each specified term based on DataForSEO Trends data. You can check keyword trends for Google Search, Google News, and Google Shopping.

- Tool ID: `dataforseo/keywords-data-dataforseo-trends-demography`
- Name in the catalog: Keywords Data Dataforseo Trends Demography
- Provider: [DataForSEO](/providers/dataforseo.md)
- Capability: [Search trends](/tools/seo/search-trends.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.0024,
  "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/dataforseo_trends/demography/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: 5 avoid symbols and special characters (e.g., UTF symbols, emojis); specifying non-Latin characters, you’ll get data for the countries where they are usedlearn more abo",
      "items": {
        "type": "string",
        "maxLength": 80,
        "minLength": 1
      },
      "maxItems": 5,
      "minItems": 1
    },
    "location_name": {
      "type": "string",
      "description": "full name of search engine location optional field if you don't use this field, you will recieve global results if you use this field, you don't need to specify location_code you can receive the list of available locations of the search eng",
      "maxLength": 2000,
      "minLength": 1
    },
    "location_code": {
      "type": "integer",
      "description": "search engine location code optional field if you don't use this field, you will recieve global results if you use this field, you don't need to specify location_name you can receive the list of available locations of the search engines wit"
    },
    "type": {
      "type": "string",
      "description": "type of element",
      "maxLength": 2000,
      "minLength": 1
    },
    "date_from": {
      "type": "string",
      "description": "starting date of the time range optional field if you don't specify this field, the current day and month of the preceding year will be used by default minimal value for the web type: 2004-01-01 minimal value for other types: 2008-01-01 dat",
      "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 field if you don't specify this field, the today's date will be used by default date format: \"yyyy-mm-dd\" example: \"2019-01-15\"",
      "maxLength": 2000,
      "pattern": "^20[0-9]{2}-[0-9]{2}-[0-9]{2}( [0-9]{2}:[0-9]{2}:[0-9]{2})?$",
      "minLength": 1
    },
    "time_range": {
      "type": "string",
      "description": "preset time ranges optional field if you specify date_from or date_to parameters, this field will be ignored when setting a task possible values for all type parameters: past_4_hours, past_day, past_7_days, past_30_days, past_90_days, past_",
      "maxLength": 2000,
      "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
}
```

## 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-dataforseo-trends-demography",
  "input": {
    "keywords": [
      "rugby",
      "cricket"
    ],
    "date_from": "2023-01-01",
    "date_to": "2024-01-01",
    "type": "web",
    "location_name": "United States"
  }
}
```

## 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/dataforseo_trends/demography/live/)

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

---

[HTML page](/providers/dataforseo/keywords-data-dataforseo-trends-demography) · [Agent index](/llms.txt)
