# Google domain metrics by categories

This endpoint will provide you with dynamics of change in metrics of domains relevant to the specified product and service categories. Needs category codes, first date and second date. Served by DataForSEO.

This endpoint will provide you with dynamics of change in metrics of domains relevant to the specified product and service categories. You will receive historical ranking data from Google SERPs, along with valuable current and historical domain metrics, such as ETV, impressions ETV, estimated paid traffic cost, the total count of SERPs that contain domains, and more.

- Tool ID: `dataforseo/dataforseo-labs-google-domain-metrics-by-categories`
- Name in the catalog: Seo Labs Google Domain Metrics By Categories
- Provider: [DataForSEO](/providers/dataforseo.md)
- Capability: [Competitor domains & rankings](/tools/seo/domain-analytics.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.12,
  "maxUsdCap": 100,
  "multipliers": [
    {
      "addUsdPer": {
        "field": "limit",
        "usd": 0.0012,
        "default": 10,
        "max": 1000
      }
    }
  ],
  "requireCost": true
}
```

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

Price verification date: 2026-10-10.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "category_codes": {
      "type": "array",
      "description": "product and service categories required field The maximum number of categories you can specify: 5 you can download the full list of possible categories",
      "items": {
        "type": "string",
        "maxLength": 2000,
        "minLength": 1
      },
      "maxItems": 5,
      "minItems": 1
    },
    "first_date": {
      "type": "string",
      "description": "first date of comparison period required field first date for which domain metrics will be provided; date format: \"yyyy-mm-dd\"; example: \"2021-06-01\"; the list available dates is available through the available history endpoint; Note: first",
      "maxLength": 2000,
      "minLength": 1
    },
    "second_date": {
      "type": "string",
      "description": "second date of comparison period required field second date for which domain metrics will be provided; date format: \"yyyy-mm-dd\"; example: \"2021-10-01\"; the list available dates is available through the available history endpoint; Note: sec",
      "maxLength": 2000,
      "minLength": 1
    },
    "location_name": {
      "type": "string",
      "description": "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",
      "maxLength": 2000,
      "minLength": 1
    },
    "location_code": {
      "type": "integer",
      "description": "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 by making a separat"
    },
    "language_name": {
      "type": "string",
      "description": "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 by making a separate",
      "maxLength": 2000,
      "minLength": 1
    },
    "language_code": {
      "type": "string",
      "description": "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 by making a separat",
      "maxLength": 10,
      "minLength": 1
    },
    "item_types": {
      "type": "array",
      "description": "display results by item type optional field indicates the type of search results included in the response;Note: if the item_types array contains item types that are different from the organic object, the results will be ordered by the first",
      "items": {
        "type": "string",
        "maxLength": 2000,
        "minLength": 1
      },
      "maxItems": 100,
      "minItems": 1
    },
    "top_categories_count": {
      "type": "integer",
      "description": "number of additional domain categories optional field by using this parameter, you can receive domains relevant to additional categories that are not specified in category_codes above; to learn more about the parameter, please refer to this",
      "maximum": 5
    },
    "include_subdomains": {
      "type": "boolean",
      "description": "return subdomains in the API response optional field if false, the API response will contain main_domain only; if true, the API will return main_domain plus its subdomains (if available); default value: true"
    },
    "etv_min": {
      "type": "integer",
      "description": "minimum current organic ETV of the domain optional field if specified, the API will return only domains with organic_etv greater than the specified value"
    },
    "etv_max": {
      "type": "integer",
      "description": "maximum current organic ETV of the domain optional field if specified, the API will return only domains with organic_etv lesser than the specified value"
    },
    "correlate": {
      "type": "boolean",
      "description": "correlate data with previously obtained datasets optional field default value: true; if you use this parameter, our system will correlate data you obtain now with previously obtained datasets; this parameter is intended to mitigate any inco"
    },
    "limit": {
      "type": "integer",
      "description": "the maximum number of domains in the results array optional field default value: 100; maximum value: 1000",
      "maximum": 100,
      "minimum": 1,
      "default": 10
    },
    "offset": {
      "type": "integer",
      "description": "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",
      "minimum": 0
    },
    "filters": {
      "type": "array",
      "description": "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, <, <=, >",
      "items": {},
      "maxItems": 15,
      "minItems": 1
    },
    "order_by": {
      "type": "array",
      "description": "results sorting rules optional field you can use the same values as in the filters array to sort the results; default rule: [\"organic_etv,desc\"]; possible sorting types: asc - results will be sorted in ascending order desc - results will be",
      "items": {
        "type": "string",
        "maxLength": 2000,
        "minLength": 1
      },
      "maxItems": 3,
      "minItems": 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": [
    "category_codes",
    "first_date",
    "second_date"
  ],
  "additionalProperties": false,
  "allOf": [
    {
      "anyOf": [
        {
          "required": [
            "location_code"
          ]
        },
        {
          "required": [
            "location_name"
          ]
        }
      ]
    },
    {
      "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/dataforseo-labs-google-domain-metrics-by-categories",
  "input": {
    "location_code": 2840,
    "language_code": "en",
    "category_codes": [
      "13418",
      "11494"
    ],
    "first_date": "2026-07-01",
    "second_date": "2026-08-01",
    "limit": 5
  }
}
```

## 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/dataforseo_labs/google/domain_metrics_by_categories/live/)

[REST inspection](https://api.agentik.cc/v1/tools/dataforseo/dataforseo-labs-google-domain-metrics-by-categories) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/dataforseo/dataforseo-labs-google-domain-metrics-by-categories) · [Agent index](/llms.txt)
