> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Find Google Ranked Keywords with DataForSEO

> Use DataForSEO Labs to find the Google keywords a domain or page ranks for, including positions and search metrics for SEO research workflows.

Use this action when you need the keywords a target domain or page already ranks for, with ranking positions and related search metrics.

> [!NOTE]
>
> Tool ID: `dataforseo_dataforseo_labs_google_ranked_keywords_live`

## Run this action

Use the TypeScript SDK for one call. Use `ctx.tools.execute(...)` inside a Play for durable calls, scheduled calls, or CSV processing.

```ts theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
import { Deepline } from 'deepline';

const deepline = await Deepline.connect();
const result = await deepline.tools.execute(
  'dataforseo_dataforseo_labs_google_ranked_keywords_live',
  {
    "target": "example"
  },
);

console.log(result.toolResponse.raw);
```

### CLI

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools execute dataforseo_dataforseo_labs_google_ranked_keywords_live --input '{
  "target": "example"
}' --json
```

## Example response

The SDK returns this shape at `result.toolResponse.raw`. The example values illustrate the response.

```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
{
  "version": "example",
  "status_code": 123,
  "status_message": "example",
  "time": "example",
  "tasks_count": 123,
  "tasks_error": 123,
  "tasks": [
    {}
  ]
}
```

Use `deepline describe dataforseo_dataforseo_labs_google_ranked_keywords_live --json` for the latest machine-readable contract.

## Input reference

This endpoint will provide you with the list of keywords that any domain or webpage is ranking for. You will also get SERP elements related to the keyword position, as well as monthly searches and other data relevant to the returned keywords.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `payload.target` | `string` | Yes | — | domain name or page url required field the domain name of the target website or URL of the target webpage. The domain name must be specified without https\:// or [www](http://www). . The webpage URL must be specified with https\:// or [www](http://www). Note: if you specify the webpage URL without https\:// or [www](http://www). , the result will be returned for the entire domain rather than the specific page |
| `payload.location_name` | `string` | No | — | full name of the location optional field if you use this field, you don't need to specify 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](https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages) ignore this field to get the results for all available locations example: United Kingdom |
| `payload.location_code` | `integer` | No | — | location code optional field if you use this field, you don't need to specify location\_name 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](https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages) ignore this field to get the results for all available locations example: 2840 |
| `payload.language_name` | `string` | No | — | full name of the language optional field if you use this field, you don't need to specify language\_code you can receive the list of available languages with their language\_name by making a separate request to the [https://api.dataforseo.com/v3/dataforseo\_labs/locations\_and\_languages](https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages) ignore this field to get the results for all available languages example: English |
| `payload.language_code` | `string` | No | — | language code optional field if you use this field, you don't need to specify language\_name you can receive the list of available languages with their language\_code by making a separate request to the [https://api.dataforseo.com/v3/dataforseo\_labs/locations\_and\_languages](https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages) ignore this field to get the results for all available languages example: en |
| `payload.ignore_synonyms` | `boolean` | No | — | ignore highly similar keywords optional field if set to true only core keywords will be returned, all highly similar keywords will be excluded. default value: false |
| `payload.item_types` | `array` | No | — | 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 organic , the results will be ordered by the first item type in the array. You will not be able to sort and filter results by the types of search results not included in the response. possible values: \["organic", "paid", "featured\_snippet", "local\_pack", "ai\_overview\_reference"] default value: \["organic", "paid"] |
| `payload.include_clickstream_data` | `boolean` | No | — | include or exclude data from clickstream-based metrics in the result optional field if the parameter is set to true , you will receive clickstream\_keyword\_info , clickstream\_etv , clickstream\_gender\_distribution , clickstream\_age\_distribution , keyword\_info\_normalized\_with\_clickstream , and keyword\_info\_normalized\_with\_bing fields in the response default value: false with this parameter enabled, you will be charged double the price for the request learn more about how clickstream-based metrics See the live schema for the complete constraint. |
| `payload.limit` | `integer` | No | — | the maximum number of returned keywords optional field default value: 100 maximum value: 1000 |
| `payload.offset` | `integer` | No | — | offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords |
| `payload.load_rank_absolute` | `boolean` | No | — | return rankings distribution by rank\_absolute optional field default value: false if set to true , we will return the field metrics\_absolute containing rankings distribution by the rank\_absolute parameter that indicates the result’s position among all SERP elements |
| `payload.historical_serp_mode` | `string` | No | — | data collection mode optional field you can use this field to filter the results. possible types of filtering: live — return keywords for which the specified target currently has ranking results in SERP. lost — return keywords for which the specified target had previously had ranking results in SERP, but didn't have them during the last check. all — return both types of keywords. default value: live |
| `payload.filters` | `array` | No | — | 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 , \< , \<= , > , >= , = , \<> , in , not\_in , match , not\_match , ilike , not\_ilike , like , not\_like you can use the % operator with like and not\_like , as well as ilike and not\_ilike to match any string of zero or more characters example: See the live schema for the complete constraint. |
| `payload.order_by` | `array` | No | — | results sorting rules optional field you can use the same values as in the filters array to sort the results possible sorting types: asc - results will be sorted in the ascending order desc - results will be sorted in the descending order you should use a comma to set up a sorting type example: \["keyword\_data.keyword\_info.competition,desc"] default rule: \["ranked\_serp\_element.serp\_item.rank\_group,asc"] note that you can set no more than three sorting rules in a single request you should use a See the live schema for the complete constraint. |
| `payload.tag` | `string` | No | — | 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 |

<details>
  <summary>Show raw input schema</summary>

  ### Input JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "This endpoint will provide you with the list of keywords that any domain or webpage is ranking for. You will also get SERP elements related to the keyword position, as well as monthly searches and other data relevant to the returned keywords.",
    "properties": {
      "target": {
        "type": "string",
        "description": "domain name or page url required field the domain name of the target website or URL of the target webpage; the domain name must be specified without https:// or www. ; the webpage URL must be specified with https:// or www. Note: if you specify the webpage URL without https:// or www. , the result will be returned for the entire domain rather than the specific page"
      },
      "location_name": {
        "type": "string",
        "description": "full name of the location optional field if you use this field, you don't need to specify 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 ignore this field to get the results for all available locations example: United Kingdom"
      },
      "location_code": {
        "type": "integer",
        "description": "location code optional field if you use this field, you don't need to specify location_name 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 ignore this field to get the results for all available locations example: 2840"
      },
      "language_name": {
        "type": "string",
        "description": "full name of the language optional field if you use this field, you don't need to specify language_code you can receive the list of available languages with their language_name by making a separate request to the https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages ignore this field to get the results for all available languages example: English"
      },
      "language_code": {
        "type": "string",
        "description": "language code optional field if you use this field, you don't need to specify language_name you can receive the list of available languages with their language_code by making a separate request to the https://api.dataforseo.com/v3/dataforseo_labs/locations_and_languages ignore this field to get the results for all available languages example: en"
      },
      "ignore_synonyms": {
        "type": "boolean",
        "description": "ignore highly similar keywords optional field if set to true only core keywords will be returned, all highly similar keywords will be excluded; default value: false"
      },
      "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 organic , the results will be ordered by the first item type in the array; you will not be able to sort and filter results by the types of search results not included in the response; possible values: [\"organic\", \"paid\", \"featured_snippet\", \"local_pack\", \"ai_overview_reference\"] default value: [\"organic\", \"paid\"]",
        "items": {}
      },
      "include_clickstream_data": {
        "type": "boolean",
        "description": "include or exclude data from clickstream-based metrics in the result optional field if the parameter is set to true , you will receive clickstream_keyword_info , clickstream_etv , clickstream_gender_distribution , clickstream_age_distribution , keyword_info_normalized_with_clickstream , and keyword_info_normalized_with_bing fields in the response default value: false with this parameter enabled, you will be charged double the price for the request learn more about how clickstream-based metrics are calculated in this help center article"
      },
      "limit": {
        "type": "integer",
        "description": "the maximum number of returned keywords optional field default value: 100 maximum value: 1000"
      },
      "offset": {
        "type": "integer",
        "description": "offset in the results array of returned keywords optional field default value: 0 if you specify the 10 value, the first ten keywords in the results array will be omitted and the data will be provided for the successive keywords"
      },
      "load_rank_absolute": {
        "type": "boolean",
        "description": "return rankings distribution by rank_absolute optional field default value: false if set to true , we will return the field metrics_absolute containing rankings distribution by the rank_absolute parameter that indicates the result’s position among all SERP elements"
      },
      "historical_serp_mode": {
        "type": "string",
        "description": "data collection mode optional field you can use this field to filter the results; possible types of filtering: live — return keywords for which the specified target currently has ranking results in SERP; lost — return keywords for which the specified target had previously had ranking results in SERP, but didn't have them during the last check; all — return both types of keywords. default value: live"
      },
      "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 , < , <= , > , >= , = , <> , in , not_in , match , not_match , ilike , not_ilike , like , not_like you can use the % operator with like and not_like , as well as ilike and not_ilike to match any string of zero or more characters example: [\"ranked_serp_element.serp_item.rank_group\",\"<=\",10] [[\"ranked_serp_element.serp_item.rank_group\",\"<=\",10], \"and\", [\"ranked_serp_element.serp_item.type\",\"<>\",\"paid\"]] [[\"keyword_data.keyword_info.search_volume\",\"<>\",0], \"and\", [[\"ranked_serp_element.serp_item.type\",\"<>\",\"paid\"],\"or\",[\"ranked_serp_element.serp_item.is_malicious\",\"=\",false]]] if you want to get the keywords a particular webpage ranks for, you can use a target field or filter by the ranked_serp_element.serp_item.relative_url parameter example: [\"ranked_serp_element.serp_item.relative_url\", \"=\", \"/apis/rank-tracker-api\"] for more information about filters, please refer to Dataforseo Labs - Filters or this help center guide",
        "items": {}
      },
      "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 possible sorting types: asc - results will be sorted in the ascending order desc - results will be sorted in the descending order you should use a comma to set up a sorting type example: [\"keyword_data.keyword_info.competition,desc\"] default rule: [\"ranked_serp_element.serp_item.rank_group,asc\"] note that you can set no more than three sorting rules in a single request you should use a comma to separate several sorting rules example: [\"keyword_data.keyword_info.search_volume,desc\",\"keyword_data.keyword_info.cpc,desc\"]",
        "items": {}
      },
      "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"
      }
    },
    "required": [
      "target"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Output reference

Top-level response envelope for dataforseo\_dataforseo\_labs\_google\_ranked\_keywords\_live.

| Name | Type | Required | Default | Details |
| - | - | - | - | - |
| `result.version` | `string` | Yes | — | the current version of the API |
| `result.status_code` | `integer` | Yes | — | 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 |
| `result.status_message` | `string` | Yes | — | general informational message you can find the full list of general informational messages here |
| `result.time` | `string` | Yes | — | execution time, seconds |
| `result.tasks_count` | `integer` | Yes | — | the number of tasks in the tasks array |
| `result.tasks_error` | `integer` | Yes | — | the number of tasks in the tasks array returned with an error |
| `result.tasks` | `array` | Yes | — | array of tasks |

<details>
  <summary>Show raw output schema</summary>

  ### Output JSON Schema

  ```json theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
  {
    "type": "object",
    "description": "Top-level response envelope for dataforseo_dataforseo_labs_google_ranked_keywords_live.",
    "properties": {
      "version": {
        "type": "string",
        "description": "the current version of the API"
      },
      "status_code": {
        "type": "integer",
        "description": "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",
        "description": "general informational message you can find the full list of general informational messages here"
      },
      "time": {
        "type": "string",
        "description": "execution time, seconds"
      },
      "tasks_count": {
        "type": "integer",
        "description": "the number of tasks in the tasks array"
      },
      "tasks_error": {
        "type": "integer",
        "description": "the number of tasks in the tasks array returned with an error"
      },
      "tasks": {
        "type": "array",
        "description": "array of tasks",
        "items": {}
      }
    },
    "required": [
      "version",
      "status_code",
      "status_message",
      "time",
      "tasks_count",
      "tasks_error",
      "tasks"
    ],
    "additionalProperties": false
  }
  ```
</details>

## Deepline cost

* Pricing model: `provider_usage` (provider usage).
* Estimated Deepline credits: `0.02` per pricing unit.

## Related documentation

* [DataForSEO provider guide](https://deepline.com/docs/providers/dataforseo/guide.md)
* [SDK V2 quickstart](https://deepline.com/docs/sdk-v2/quickstart.md)
* [SDK reference](https://deepline.com/docs/sdk-v2/sdk-reference.md)
* [Run tools across a CSV](https://deepline.com/docs/sdk-v2/batch-csv.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.