---
type: "firecrawl-provider"
description: "Live Google rankings, keyword volume and ideas, domain rankings and competitors, and backlinks."
use_when: "Live Google organic results for a keyword, with the rank and position of each result.\n\nSearch volume, keyword ideas and suggestions, ranking difficulty, and search intent.\n\nThe keywords a domain ranks for, its organic and paid ranking overview, and its organic competitors.\n\nA backlink profile summary, the backlinks pointing to a target, and its referring domains."
categories: "Marketing"
capabilities: 12
pricing: "2–40 credits per billed unit; see each capability for its unit and maximum."
---
# DataForSEO on Firecrawl Alexandria

Live Google rankings, keyword volume and ideas, domain rankings and competitors, and backlinks.

- Categories: Marketing
- Category index: [Marketing category](https://alexandria.firecrawl.dev/agents/categories/marketing)
- Provider key: `dataforseo`
- Access: Firecrawl credits
- Cost (Google organic SERP): 2 credits per SERP page of 10 results
- Cost (Keyword search volume): 40 credits per Google Ads task
- Cost (Keyword ideas): 8 credits per DataForSEO Labs task plus item
- Cost (Keyword suggestions): 24 credits per DataForSEO Labs task plus item
- Cost (Keyword difficulty): 13 credits per DataForSEO Labs task plus item
- Cost (Search intent): 13 credits per DataForSEO Labs task plus item
- Cost (Ranked keywords): 8 credits per DataForSEO Labs task plus item
- Cost (Domain rank overview): 24 credits per DataForSEO Labs task plus item
- Cost (Domain competitors): 24 credits per DataForSEO Labs task plus item
- Cost (Backlinks summary): 15 credits per Backlinks task plus row
- Cost (Backlinks): 15 credits per Backlinks task plus row
- Cost (Referring domains): 15 credits per Backlinks task plus row

## More

- [Human guide](https://www.firecrawl.dev/app/alexandria/dataforseo)
- [OpenAPI spec](https://alexandria.firecrawl.dev/agents/providers/dataforseo/openapi.json)

## Capabilities

- [Google organic SERP](https://alexandria.firecrawl.dev/agents/providers/dataforseo/serp/google-organic): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds keyword, check_url, se_results_count, pages_count, item_types, and items. Each item is one SERP element; organic items carry the fields below.
- [Keyword search volume](https://alexandria.firecrawl.dev/agents/providers/dataforseo/keywords/search-volume): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result is one record per keyword. Google Ads returns null metrics for some keywords, such as restricted categories.
- [Keyword ideas](https://alexandria.firecrawl.dev/agents/providers/dataforseo/keywords/ideas): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds total_count, items_count, offset, offset_token, and items, one keyword idea each.
- [Keyword suggestions](https://alexandria.firecrawl.dev/agents/providers/dataforseo/keywords/suggestions): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds seed_keyword, total_count, items_count, offset_token, and items, one suggestion each.
- [Keyword difficulty](https://alexandria.firecrawl.dev/agents/providers/dataforseo/keywords/difficulty): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0].items is one record per keyword.
- [Search intent](https://alexandria.firecrawl.dev/agents/providers/dataforseo/keywords/search-intent): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0].items is one record per keyword.
- [Ranked keywords](https://alexandria.firecrawl.dev/agents/providers/dataforseo/domains/ranked-keywords): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds target, total_count, items_count, metrics (position distribution and etv by item type), and items, one ranked keyword each.
- [Domain rank overview](https://alexandria.firecrawl.dev/agents/providers/dataforseo/domains/overview): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0].items is one record per location and language.
- [Domain competitors](https://alexandria.firecrawl.dev/agents/providers/dataforseo/domains/competitors): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds target, total_count, items_count, and items, one competitor each.
- [Backlinks summary](https://alexandria.firecrawl.dev/agents/providers/dataforseo/backlinks/summary): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] is the summary.
- [Backlinks](https://alexandria.firecrawl.dev/agents/providers/dataforseo/backlinks/list): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds target, total_count, items_count, search_after_token, and items, one backlink each.
- [Referring domains](https://alexandria.firecrawl.dev/agents/providers/dataforseo/backlinks/referring-domains): The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds target, total_count, items_count, and items, one referring domain each.

## 1. Choose this provider when

Live Google organic results for a keyword, with the rank and position of each result.

Search volume, keyword ideas and suggestions, ranking difficulty, and search intent.

The keywords a domain ranks for, its organic and paid ranking overview, and its organic competitors.

A backlink profile summary, the backlinks pointing to a target, and its referring domains.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "dataforseo",
  "capability": "serp/google-organic",
  "options": {
    "keyword": "<keyword>",
    "location_code": 10,
    "language_code": "<language_code>",
    "depth": 10
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `keyword` (string, required): Search query, up to 700 characters. At most one search operator such as site:, which makes the call cost 5 times as much. Example: `<keyword>`
- `location_code` (number): DataForSEO location code, such as 2840 for the United States. Use this or location_name. Example: `10`
- `location_name` (string): Full location name, such as United States or London,England,United Kingdom. Use this or location_code. Example: `<location_name>`
- `language_code` (string): Language code, such as en. Use this or language_name. Example: `<language_code>`
- `language_name` (string): Full language name, such as English. Use this or language_code. Example: `<language_name>`
- `depth` (number): Results to parse, 1 to 100. Each started 10 is one billed SERP page. DataForSEO allows 200; this connector stops at 100. Omitted, 10 is sent. Example: `10`
- `device` (string): desktop (default) or mobile. Example: `desktop`
- `os` (string): windows or macos on desktop, android or ios on mobile. Example: `windows`
- `se_domain` (string): Google domain to search, such as google.co.uk. Chosen from the location when omitted. Example: `<se_domain>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "dataforseo",
    capability: "serp/google-organic",
    options: {
      keyword: "<keyword>",
      location_code: 10,
      language_code: "<language_code>",
      depth: 10,
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "dataforseo",
  "capability": "serp/google-organic",
  "options": {
    "keyword": "<keyword>",
    "location_code": 10,
    "language_code": "<language_code>",
    "depth": 10
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "dataforseo",
    "capability": "serp/google-organic",
    "options": {
      "keyword": "<keyword>",
      "location_code": 10,
      "language_code": "<language_code>",
      "depth": 10
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'dataforseo/serp/google-organic' \
  --options '{"keyword":"<keyword>","location_code":10,"language_code":"<language_code>","depth":10}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "dataforseo",
  "capability": "serp/google-organic",
  "options": {
    "keyword": "<keyword>",
    "location_code": 10,
    "language_code": "<language_code>",
    "depth": 10
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "dataforseo",
  "capability": "serp/google-organic",
  "options": {
    "keyword": "<keyword>",
    "location_code": 10,
    "language_code": "<language_code>",
    "depth": 10
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "tasks": [
    {
      "type": "<type>",
      "rank_group": 0,
      "rank_absolute": 0,
      "page": 0,
      "domain": "<domain>",
      "title": "<title>",
      "url": "<url>",
      "description": "<description>"
    }
  ]
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Google organic SERP

- Capability: `serp/google-organic`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds keyword, check_url, se_results_count, pages_count, item_types, and items. Each item is one SERP element; organic items carry the fields below.
- Instructions: Rank and position data for one keyword on live Google: each organic result's rank_group, rank_absolute, URL, and title, plus SERP features. 10 credits for the default 10 results, 20 for depth 100; a search operator such as site: multiplies the price by 5. Kept for rank tracking; for plain web results use Firecrawl search.
- Cost: 2 credits per SERP page of 10 results
- Capability file: [Google organic SERP](https://alexandria.firecrawl.dev/agents/providers/dataforseo/serp/google-organic)

Accepted options:
- `keyword` (string, required): Search query, up to 700 characters. At most one search operator such as site:, which makes the call cost 5 times as much. Example: `<keyword>`
- `location_code` (number): DataForSEO location code, such as 2840 for the United States. Use this or location_name. Example: `10`
- `location_name` (string): Full location name, such as United States or London,England,United Kingdom. Use this or location_code. Example: `<location_name>`
- `language_code` (string): Language code, such as en. Use this or language_name. Example: `<language_code>`
- `language_name` (string): Full language name, such as English. Use this or language_code. Example: `<language_name>`
- `depth` (number): Results to parse, 1 to 100. Each started 10 is one billed SERP page. DataForSEO allows 200; this connector stops at 100. Omitted, 10 is sent. Example: `10`
- `device` (string): desktop (default) or mobile. Example: `desktop`
- `os` (string): windows or macos on desktop, android or ios on mobile. Example: `windows`
- `se_domain` (string): Google domain to search, such as google.co.uk. Chosen from the location when omitted. Example: `<se_domain>`

Response schema example:
```json
{
  "tasks": [
    {
      "type": "<type>",
      "rank_group": 0,
      "rank_absolute": 0,
      "page": 0,
      "domain": "<domain>",
      "title": "<title>",
      "url": "<url>",
      "description": "<description>"
    }
  ]
}
```

### Keyword search volume

- Capability: `keywords/search-volume`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result is one record per keyword. Google Ads returns null metrics for some keywords, such as restricted categories.
- Instructions: Google Ads monthly search volume, CPC, bids, and paid competition for up to 1000 keywords in one call. 90 credits per call whatever the keyword count, so batch keywords. Limited to 12 calls a minute on the shared account. Omit location for worldwide figures.
- Cost: 40 credits per Google Ads task
- Capability file: [Keyword search volume](https://alexandria.firecrawl.dev/agents/providers/dataforseo/keywords/search-volume)

Accepted options:
- `keywords` (string[], required): Up to 1000 keywords, each at most 80 characters and 10 words. The price is the same for 1 or 1000. Example: `[]`
- `location_code` (number): DataForSEO location code, such as 2840 for the United States. Use this or location_name. Example: `10`
- `location_name` (string): Full location name, such as United States or London,England,United Kingdom. Use this or location_code. Example: `<location_name>`
- `language_code` (string): Language code, such as en. Use this or language_name. Example: `<language_code>`
- `language_name` (string): Full language name, such as English. Use this or language_code. Example: `<language_name>`
- `search_partners` (boolean): Include Google search partner sites. Default false. Example: `false`
- `date_from` (string): Start of the range, yyyy-mm-dd, up to 4 years back. Default is the last 12 months. Example: `<date_from>`
- `date_to` (string): End of the range, yyyy-mm-dd. Google Ads has no data for the current month. Example: `<date_to>`
- `include_adult_keywords` (boolean): Include adult keywords. Default false. Example: `false`
- `sort_by` (string): Sort order, descending. Default relevance. Example: `relevance`

Response schema example:
```json
{
  "tasks": [
    {
      "keyword": "<keyword>",
      "search_volume": 0,
      "competition": "<competition>",
      "competition_index": 0,
      "cpc": 0,
      "low_top_of_page_bid": 0,
      "high_top_of_page_bid": 0,
      "monthly_searches": []
    }
  ]
}
```

### Keyword ideas

- Capability: `keywords/ideas`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds total_count, items_count, offset, offset_token, and items, one keyword idea each.
- Instructions: Keyword ideas in the same product categories as up to 200 seed keywords, with search volume, CPC, and competition. 24 credits for the default 100 ideas, 96 at the 700 cap. Use keywords/suggestions for long-tail phrases that contain the seed.
- Cost: 8 credits per DataForSEO Labs task plus item
- Capability file: [Keyword ideas](https://alexandria.firecrawl.dev/agents/providers/dataforseo/keywords/ideas)

Accepted options:
- `keywords` (string[], required): Up to 200 seed keywords. Example: `[]`
- `location_code` (number): DataForSEO location code, such as 2840 for the United States. Use this or location_name. Example: `10`
- `location_name` (string): Full location name, such as United States or London,England,United Kingdom. Use this or location_code. Example: `<location_name>`
- `language_code` (string): Language code, such as en. Use this or language_name. Example: `<language_code>`
- `language_name` (string): Full language name, such as English. Use this or language_code. Example: `<language_name>`
- `closely_variants` (boolean): true for phrase match, false (default) for broad match. Example: `false`
- `ignore_synonyms` (boolean): Return only core keywords, without highly similar ones. Default false. Example: `false`
- `include_serp_info` (boolean): Add serp_info for each keyword. Default false. Example: `false`
- `limit` (number): Items to return, 1 to 700. DataForSEO allows 1000 (its default is 700); this connector stops at 700 so a call stays within 100 credits. Omitted, 100 is sent. Example: `100`
- `offset` (number): Items to skip, for the next page. Default 0. Example: `10`
- `offset_token` (string): Token from the previous response, for results past 10,000. Example: `<offset_token>`
- `filters` (string): JSON array of filter conditions in the DataForSEO syntax, at most 8, such as ["keyword_info.search_volume",">",100]. Example: `<filters>`
- `order_by` (string[]): Up to 3 sorting rules, each field,direction, such as keyword_info.search_volume,desc. Example: `[]`

Response schema example:
```json
{
  "tasks": [
    {
      "keyword": "<keyword>",
      "keyword_info": {},
      "keyword_properties": {},
      "search_intent_info": {}
    }
  ]
}
```

### Keyword suggestions

- Capability: `keywords/suggestions`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds seed_keyword, total_count, items_count, offset_token, and items, one suggestion each.
- Instructions: Long-tail keywords that contain a seed keyword, with search volume, CPC, and competition. 24 credits for the default 100, 96 at the 700 cap. Omit location for every location. Use keywords/ideas for related terms that do not contain the seed.
- Cost: 24 credits per DataForSEO Labs task plus item
- Capability file: [Keyword suggestions](https://alexandria.firecrawl.dev/agents/providers/dataforseo/keywords/suggestions)

Accepted options:
- `keyword` (string, required): Seed keyword. Suggestions contain it, with words before, after, or within. Example: `<keyword>`
- `location_code` (number): DataForSEO location code, such as 2840 for the United States. Use this or location_name. Example: `10`
- `location_name` (string): Full location name, such as United States or London,England,United Kingdom. Use this or location_code. Example: `<location_name>`
- `language_code` (string): Language code, such as en. Use this or language_name. Example: `<language_code>`
- `language_name` (string): Full language name, such as English. Use this or language_code. Example: `<language_name>`
- `include_seed_keyword` (boolean): Add data for the seed keyword under seed_keyword_data. Default false. Example: `false`
- `include_serp_info` (boolean): Add serp_info for each keyword. Default false. Example: `false`
- `exact_match` (boolean): Keep the seed phrase intact. Default false. Example: `false`
- `ignore_synonyms` (boolean): Return only core keywords. Default false. Example: `false`
- `limit` (number): Items to return, 1 to 700. DataForSEO allows 1000 (its default is 100); this connector stops at 700 so a call stays within 100 credits. Omitted, 100 is sent. Example: `100`
- `offset` (number): Items to skip, for the next page. Default 0. Example: `10`
- `offset_token` (string): Token from the previous response, for results past 10,000. Example: `<offset_token>`
- `filters` (string): JSON array of filter conditions in the DataForSEO syntax, at most 8, such as ["keyword_info.search_volume",">",100]. Example: `<filters>`
- `order_by` (string[]): Up to 3 sorting rules, each field,direction, such as keyword_info.search_volume,desc. Example: `[]`

Response schema example:
```json
{
  "tasks": [
    {
      "keyword": "<keyword>",
      "keyword_info": {},
      "keyword_properties": {},
      "search_intent_info": {}
    }
  ]
}
```

### Keyword difficulty

- Capability: `keywords/difficulty`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0].items is one record per keyword.
- Instructions: Keyword difficulty, 0 to 100, for up to 700 keywords: how hard it is to reach Google's top 10. $0.012 plus $0.00012 per keyword, so 14 credits for 10 keywords and 96 for 700.
- Cost: 13 credits per DataForSEO Labs task plus item
- Capability file: [Keyword difficulty](https://alexandria.firecrawl.dev/agents/providers/dataforseo/keywords/difficulty)

Accepted options:
- `keywords` (string[], required): Up to 700 keywords. DataForSEO allows 1000; this connector stops at 700 so a call stays within 100 credits. Example: `[]`
- `location_code` (number): DataForSEO location code, such as 2840 for the United States. Use this or location_name. Example: `10`
- `location_name` (string): Full location name, such as United States or London,England,United Kingdom. Use this or location_code. Example: `<location_name>`
- `language_code` (string): Language code, such as en. Use this or language_name. Example: `<language_code>`
- `language_name` (string): Full language name, such as English. Use this or language_code. Example: `<language_name>`

Response schema example:
```json
{
  "tasks": [
    {
      "keyword": "<keyword>",
      "keyword_difficulty": 0
    }
  ]
}
```

### Search intent

- Capability: `keywords/search-intent`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0].items is one record per keyword.
- Instructions: Classify up to 700 keywords as informational, navigational, commercial, or transactional, with a probability. $0.012 plus $0.00012 per keyword: 14 credits for 10 keywords, 96 for 700.
- Cost: 13 credits per DataForSEO Labs task plus item
- Capability file: [Search intent](https://alexandria.firecrawl.dev/agents/providers/dataforseo/keywords/search-intent)

Accepted options:
- `keywords` (string[], required): Up to 700 keywords. DataForSEO allows 1000; this connector stops at 700 so a call stays within 100 credits. Example: `[]`

Response schema example:
```json
{
  "tasks": [
    {
      "keyword": "<keyword>",
      "keyword_intent": {},
      "secondary_keyword_intents": []
    }
  ]
}
```

### Ranked keywords

- Capability: `domains/ranked-keywords`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds target, total_count, items_count, metrics (position distribution and etv by item type), and items, one ranked keyword each.
- Instructions: Keywords a domain or page ranks for on Google, with each keyword's volume and the ranking URL, position, and estimated traffic. 24 credits for the default 100 keywords, 96 at the 700 cap. Use serp/google-organic to check one keyword live.
- Cost: 8 credits per DataForSEO Labs task plus item
- Capability file: [Ranked keywords](https://alexandria.firecrawl.dev/agents/providers/dataforseo/domains/ranked-keywords)

Accepted options:
- `target` (string, required): Domain without https:// or www., a subdomain, or an absolute page URL. Example: `<target>`
- `location_code` (number): DataForSEO location code, such as 2840 for the United States. Use this or location_name. Example: `10`
- `location_name` (string): Full location name, such as United States or London,England,United Kingdom. Use this or location_code. Example: `<location_name>`
- `language_code` (string): Language code, such as en. Use this or language_name. Example: `<language_code>`
- `language_name` (string): Full language name, such as English. Use this or language_code. Example: `<language_name>`
- `item_types` (string[]): SERP element types to include, such as organic, paid, featured_snippet, local_pack. Default organic. Example: `[]`
- `historical_serp_mode` (string): live (default) for current rankings, lost for lost ones, or all. Example: `live`
- `load_rank_absolute` (boolean): Add metrics_absolute, the distribution by rank_absolute. Default false. Example: `false`
- `ignore_synonyms` (boolean): Return only core keywords. Default false. Example: `false`
- `limit` (number): Items to return, 1 to 700. DataForSEO allows 1000 (its default is 100); this connector stops at 700 so a call stays within 100 credits. Omitted, 100 is sent. Example: `100`
- `offset` (number): Items to skip, for the next page. Default 0. Example: `10`
- `filters` (string): JSON array of filter conditions in the DataForSEO syntax, at most 8, such as ["keyword_info.search_volume",">",100]. Example: `<filters>`
- `order_by` (string[]): Up to 3 sorting rules, each field,direction, such as keyword_info.search_volume,desc. Example: `[]`

Response schema example:
```json
{
  "tasks": [
    {
      "keyword_data": {},
      "ranked_serp_element": {}
    }
  ]
}
```

### Domain rank overview

- Capability: `domains/overview`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0].items is one record per location and language.
- Instructions: A domain's organic and paid ranking overview: keywords in each position band, estimated traffic, and its paid-traffic value. One item per location and language; set location for one, which usually costs 13 credits. The quote is 24 for the default limit.
- Cost: 24 credits per DataForSEO Labs task plus item
- Capability file: [Domain rank overview](https://alexandria.firecrawl.dev/agents/providers/dataforseo/domains/overview)

Accepted options:
- `target` (string, required): Domain without https:// or www. Example: `<target>`
- `location_code` (number): DataForSEO location code, such as 2840 for the United States. Use this or location_name. Example: `10`
- `location_name` (string): Full location name, such as United States or London,England,United Kingdom. Use this or location_code. Example: `<location_name>`
- `language_code` (string): Language code, such as en. Use this or language_name. Example: `<language_code>`
- `language_name` (string): Full language name, such as English. Use this or language_code. Example: `<language_name>`
- `ignore_synonyms` (boolean): Count only core keywords. Default false. Example: `false`
- `limit` (number): Items to return, 1 to 700. DataForSEO allows 1000 (its default is 100); this connector stops at 700 so a call stays within 100 credits. Omitted, 100 is sent. Example: `100`
- `offset` (number): Items to skip, for the next page. Default 0. Example: `10`

Response schema example:
```json
{
  "tasks": [
    {
      "location_code": 0,
      "language_code": "<language_code>",
      "metrics": {}
    }
  ]
}
```

### Domain competitors

- Capability: `domains/competitors`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds target, total_count, items_count, and items, one competitor each.
- Instructions: Domains that compete with a target in Google results, with shared keywords, average position, and traffic. Needs a location and a language. 24 credits for the default 100 competitors, 96 at the 700 cap.
- Cost: 24 credits per DataForSEO Labs task plus item
- Capability file: [Domain competitors](https://alexandria.firecrawl.dev/agents/providers/dataforseo/domains/competitors)

Accepted options:
- `target` (string, required): Domain without https:// or www. A page URL is read as its domain. Example: `<target>`
- `location_code` (number): DataForSEO location code, such as 2840 for the United States. Use this or location_name. Example: `10`
- `location_name` (string): Full location name, such as United States or London,England,United Kingdom. Use this or location_code. Example: `<location_name>`
- `language_code` (string): Language code, such as en. Use this or language_name. Example: `<language_code>`
- `language_name` (string): Full language name, such as English. Use this or language_code. Example: `<language_name>`
- `item_types` (string[]): SERP element types to compare on: organic, paid, featured_snippet, local_pack. Default organic. Example: `[]`
- `max_rank_group` (number): Only count rankings up to this position. Default 100. Example: `10`
- `exclude_top_domains` (boolean): Drop the largest sites, such as wikipedia.org and amazon.com. Default false. Example: `false`
- `exclude_domains` (string[]): Domains to drop from the results, up to 1000. Example: `[]`
- `intersecting_domains` (string[]): Up to 20 domains known to share SERPs with the target. Example: `[]`
- `ignore_synonyms` (boolean): Count only core keywords. Default false. Example: `false`
- `limit` (number): Items to return, 1 to 700. DataForSEO allows 1000 (its default is 100); this connector stops at 700 so a call stays within 100 credits. Omitted, 100 is sent. Example: `100`
- `offset` (number): Items to skip, for the next page. Default 0. Example: `10`
- `filters` (string): JSON array of filter conditions in the DataForSEO syntax, at most 8, such as ["keyword_info.search_volume",">",100]. Example: `<filters>`
- `order_by` (string[]): Up to 3 sorting rules, each field,direction, such as keyword_info.search_volume,desc. Example: `[]`

Response schema example:
```json
{
  "tasks": [
    {
      "domain": "<domain>",
      "avg_position": 0,
      "sum_position": 0,
      "intersections": 0,
      "full_domain_metrics": {},
      "metrics": {}
    }
  ]
}
```

### Backlinks summary

- Capability: `backlinks/summary`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] is the summary.
- Instructions: One target's backlink profile: rank, backlinks, referring domains, IPs and subnets, spam score, broken links, and breakdowns by TLD, link type, and country. 25 credits per call. Use backlinks/list or backlinks/referring-domains for the rows.
- Cost: 15 credits per Backlinks task plus row
- Capability file: [Backlinks summary](https://alexandria.firecrawl.dev/agents/providers/dataforseo/backlinks/summary)

Accepted options:
- `target` (string, required): Domain or subdomain without https:// or www., or an absolute page URL with https://. Example: `<target>`
- `include_subdomains` (boolean): Count links to subdomains of the target. Default true. Example: `false`
- `include_indirect_links` (boolean): Count links that reach the target through a redirect or canonical. Default true. Example: `false`
- `exclude_internal_backlinks` (boolean): Drop links from subdomains of the same domain. Default true. Example: `false`
- `internal_list_limit` (number): Entries kept in the referring_links_* breakdowns. Default 10. Example: `10`
- `backlinks_status_type` (string): live (default) counts backlinks seen on the last check, lost counts removed ones, all counts both. Example: `all`
- `backlinks_filters` (string): JSON array of conditions on the backlinks counted, in the DataForSEO filter syntax, at most 8, such as ["dofollow","=",true]. Example: `<backlinks_filters>`
- `rank_scale` (string): Rank scale, one_hundred or one_thousand (default). Example: `one_hundred`

Response schema example:
```json
{
  "tasks": {
    "target": "<target>",
    "rank": 0,
    "backlinks": 0,
    "backlinks_spam_score": 0,
    "referring_domains": 0,
    "referring_main_domains": 0,
    "referring_ips": 0,
    "broken_backlinks": 0,
    "first_seen": "<first_seen>"
  }
}
```

### Backlinks

- Capability: `backlinks/list`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds target, total_count, items_count, search_after_token, and items, one backlink each.
- Instructions: Backlinks pointing to a domain, subdomain, or page: the linking URL and domain, anchor, dofollow, first and last seen, and rank. 28 credits for the default 100 rows, 60 for 1000. Use backlinks/referring-domains for one row per linking domain.
- Cost: 15 credits per Backlinks task plus row
- Capability file: [Backlinks](https://alexandria.firecrawl.dev/agents/providers/dataforseo/backlinks/list)

Accepted options:
- `target` (string, required): Domain or subdomain without https:// or www., or an absolute page URL with https://. Example: `<target>`
- `mode` (string): as_is (default) for every backlink, one_per_domain, or one_per_anchor. Example: `as_is`
- `custom_mode` (object): Backlinks per field, such as {"field":"domain_from","value":10}. Overrides mode. Example: `{}`
- `filters` (string): JSON array of filter conditions in the DataForSEO syntax, at most 8, such as ["keyword_info.search_volume",">",100]. Example: `<filters>`
- `order_by` (string[]): Up to 3 sorting rules, each field,direction, such as keyword_info.search_volume,desc. Example: `[]`
- `offset` (number): Rows to skip, up to 20,000. Use search_after_token past that. Example: `10`
- `search_after_token` (string): Token from the previous response, for results past 20,000. Example: `<search_after_token>`
- `limit` (number): Rows to return, 1 to 1000. Each row costs $0.000036. Omitted, 100 is sent. Example: `100`
- `backlinks_status_type` (string): live (default) counts backlinks seen on the last check, lost counts removed ones, all counts both. Example: `all`
- `include_subdomains` (boolean): Count links to subdomains of the target. Default true. Example: `false`
- `exclude_internal_backlinks` (boolean): Drop links from subdomains of the same domain. Default true. Example: `false`
- `rank_scale` (string): Rank scale, one_hundred or one_thousand (default). Example: `one_hundred`

Response schema example:
```json
{
  "tasks": [
    {
      "domain_from": "<domain_from>",
      "url_from": "<url_from>",
      "url_to": "<url_to>",
      "anchor": "<anchor>",
      "dofollow": false,
      "rank": 0,
      "domain_from_rank": 0,
      "backlink_spam_score": 0,
      "first_seen": "<first_seen>",
      "last_seen": "<last_seen>",
      "is_lost": false
    }
  ]
}
```

### Referring domains

- Capability: `backlinks/referring-domains`
- Description: The DataForSEO envelope: status_code 20000, cost in USD, and tasks[0] with its own status_code, cost, data (the task as sent), and result. tasks[0].result[0] holds target, total_count, items_count, and items, one referring domain each.
- Instructions: Domains that link to a target, one row each with its rank, backlink count, spam score, and first seen date. 28 credits for the default 100 rows, 60 for 1000.
- Cost: 15 credits per Backlinks task plus row
- Capability file: [Referring domains](https://alexandria.firecrawl.dev/agents/providers/dataforseo/backlinks/referring-domains)

Accepted options:
- `target` (string, required): Domain or subdomain without https:// or www., or an absolute page URL with https://. Example: `<target>`
- `limit` (number): Rows to return, 1 to 1000. Each row costs $0.000036. Omitted, 100 is sent. Example: `100`
- `offset` (number): Items to skip, for the next page. Default 0. Example: `10`
- `internal_list_limit` (number): Entries kept in the referring_links_* breakdowns. Default 10. Example: `10`
- `backlinks_status_type` (string): live (default) counts backlinks seen on the last check, lost counts removed ones, all counts both. Example: `all`
- `filters` (string): JSON array of filter conditions in the DataForSEO syntax, at most 8, such as ["keyword_info.search_volume",">",100]. Example: `<filters>`
- `order_by` (string[]): Up to 3 sorting rules, each field,direction, such as keyword_info.search_volume,desc. Example: `[]`
- `backlinks_filters` (string): JSON array of conditions on the backlinks counted, in the DataForSEO filter syntax, at most 8, such as ["dofollow","=",true]. Example: `<backlinks_filters>`
- `include_subdomains` (boolean): Count links to subdomains of the target. Default true. Example: `false`
- `include_indirect_links` (boolean): Count links that reach the target through a redirect or canonical. Default true. Example: `false`
- `exclude_internal_backlinks` (boolean): Drop links from subdomains of the same domain. Default true. Example: `false`
- `rank_scale` (string): Rank scale, one_hundred or one_thousand (default). Example: `one_hundred`

Response schema example:
```json
{
  "tasks": [
    {
      "domain": "<domain>",
      "rank": 0,
      "backlinks": 0,
      "backlinks_spam_score": 0,
      "referring_pages": 0,
      "first_seen": "<first_seen>",
      "lost_date": "<lost_date>"
    }
  ]
}
```
