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

# DataForSEO

> SEO and SERP intelligence API covering Google/Bing search results, keyword volume and difficulty, estimated organic traffic for any domain, backlinks, on-page audits, and WHOIS data.

SEO and SERP intelligence API covering Google/Bing search results, keyword volume and difficulty, estimated organic traffic for any domain, backlinks, on-page audits, and WHOIS data. Best for competitive analysis and SEO research where you need Google-rank-based traffic estimates and keyword data across 249 countries. Unlike Similarweb (panel-based, total traffic), DataForSEO estimates organic search traffic from SERP rank and keyword volume.

16 endpoints available through Lava's AI Gateway. See the [DataForSEO API docs](https://docs.dataforseo.com/v3/) for full documentation.

<Info>Supports both **managed** (Lava's API keys) and **unmanaged** (bring your own credentials) mode.</Info>

## Endpoints

### Get Google organic SERP results for a keyword (live, advanced mode). Returns ranked organic results, featured snippets, knowledge panels, and related searches.

**POST** `https://api.dataforseo.com/v3/serp/google/organic/live/advanced` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/serp/google/organic/live/advanced', {
      body: [
    {
      "keyword": "seo tools",
      "location_code": 2840,
      "language_code": "en",
      "device": "desktop"
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fserp%2Fgoogle%2Forganic%2Flive%2Fadvanced" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"keyword":"seo tools","location_code":2840,"language_code":"en","device":"desktop"}]'
    ```
  </Tab>
</Tabs>

### Get Google Maps SERP results for a local-intent keyword — returns local business listings with ratings, reviews, and map coordinates.

**POST** `https://api.dataforseo.com/v3/serp/google/maps/live/advanced` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/serp/google/maps/live/advanced', {
      body: [
    {
      "keyword": "coffee shops san francisco",
      "location_code": 2840,
      "language_code": "en"
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fserp%2Fgoogle%2Fmaps%2Flive%2Fadvanced" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"keyword":"coffee shops san francisco","location_code":2840,"language_code":"en"}]'
    ```
  </Tab>
</Tabs>

### Get Google News SERP results for a keyword. Useful for brand monitoring and current-events research.

**POST** `https://api.dataforseo.com/v3/serp/google/news/live/advanced` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/serp/google/news/live/advanced', {
      body: [
    {
      "keyword": "openai announcement",
      "location_code": 2840,
      "language_code": "en"
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fserp%2Fgoogle%2Fnews%2Flive%2Fadvanced" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"keyword":"openai announcement","location_code":2840,"language_code":"en"}]'
    ```
  </Tab>
</Tabs>

### Estimate organic search traffic for up to 1000 domains at once. Returns modeled monthly organic visits based on each domain's ranking keywords × search volume × CTR. Best endpoint for competitive traffic comparison.

**POST** `https://api.dataforseo.com/v3/dataforseo_labs/google/bulk_traffic_estimation/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/dataforseo_labs/google/bulk_traffic_estimation/live', {
      body: [
    {
      "targets": [
        "stripe.com",
        "square.com",
        "adyen.com"
      ],
      "location_code": 2840,
      "language_code": "en"
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fdataforseo_labs%2Fgoogle%2Fbulk_traffic_estimation%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"targets":["stripe.com","square.com","adyen.com"],"location_code":2840,"language_code":"en"}]'
    ```
  </Tab>
</Tabs>

### Overview of a domain's SEO metrics: estimated organic traffic, paid traffic, keyword count, impressions, and traffic value (USD equivalent of the SEO traffic if it were purchased via ads).

**POST** `https://api.dataforseo.com/v3/dataforseo_labs/google/domain_rank_overview/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/dataforseo_labs/google/domain_rank_overview/live', {
      body: [
    {
      "target": "stripe.com",
      "location_code": 2840,
      "language_code": "en"
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fdataforseo_labs%2Fgoogle%2Fdomain_rank_overview%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"target":"stripe.com","location_code":2840,"language_code":"en"}]'
    ```
  </Tab>
</Tabs>

### List every keyword a domain ranks for in Google organic search, along with its rank, search volume, traffic estimate, and SERP features.

**POST** `https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live', {
      body: [
    {
      "target": "stripe.com",
      "location_code": 2840,
      "language_code": "en",
      "limit": 100
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fdataforseo_labs%2Fgoogle%2Franked_keywords%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"target":"stripe.com","location_code":2840,"language_code":"en","limit":100}]'
    ```
  </Tab>
</Tabs>

### Find organic-search competitors for a domain — other domains that rank for the same keywords — ranked by keyword overlap and traffic overlap.

**POST** `https://api.dataforseo.com/v3/dataforseo_labs/google/competitors_domain/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/dataforseo_labs/google/competitors_domain/live', {
      body: [
    {
      "target": "stripe.com",
      "location_code": 2840,
      "language_code": "en",
      "limit": 20
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fdataforseo_labs%2Fgoogle%2Fcompetitors_domain%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"target":"stripe.com","location_code":2840,"language_code":"en","limit":20}]'
    ```
  </Tab>
</Tabs>

### Get keyword suggestions related to a seed keyword, enriched with search volume, CPC, competition, and keyword difficulty.

**POST** `https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_suggestions/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/dataforseo_labs/google/keyword_suggestions/live', {
      body: [
    {
      "keyword": "payment processing",
      "location_code": 2840,
      "language_code": "en",
      "limit": 50
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fdataforseo_labs%2Fgoogle%2Fkeyword_suggestions%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"keyword":"payment processing","location_code":2840,"language_code":"en","limit":50}]'
    ```
  </Tab>
</Tabs>

### Look up monthly Google search volume, CPC, and competition for up to 1000 keywords at once, sourced directly from Google Ads.

**POST** `https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/keywords_data/google_ads/search_volume/live', {
      body: [
    {
      "keywords": [
        "seo tools",
        "rank tracker",
        "keyword research"
      ],
      "location_code": 2840,
      "language_code": "en"
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fkeywords_data%2Fgoogle_ads%2Fsearch_volume%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"keywords":["seo tools","rank tracker","keyword research"],"location_code":2840,"language_code":"en"}]'
    ```
  </Tab>
</Tabs>

### Discover the keywords Google Ads associates with a given website. Useful for inferring what a competitor advertises against.

**POST** `https://api.dataforseo.com/v3/keywords_data/google_ads/keywords_for_site/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/keywords_data/google_ads/keywords_for_site/live', {
      body: [
    {
      "target": "stripe.com",
      "location_code": 2840,
      "language_code": "en"
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fkeywords_data%2Fgoogle_ads%2Fkeywords_for_site%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"target":"stripe.com","location_code":2840,"language_code":"en"}]'
    ```
  </Tab>
</Tabs>

### Summary of a domain or URL's backlink profile: total backlinks, referring domains, rank, spam score, and anchor text distribution.

**POST** `https://api.dataforseo.com/v3/backlinks/summary/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/backlinks/summary/live', { body: [{"target":"stripe.com","include_subdomains":true}] });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fbacklinks%2Fsummary%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"target":"stripe.com","include_subdomains":true}]'
    ```
  </Tab>
</Tabs>

### List of domains linking to a given target, with per-domain backlink counts, first/last seen dates, and link attributes.

**POST** `https://api.dataforseo.com/v3/backlinks/referring_domains/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/backlinks/referring_domains/live', {
      body: [
    {
      "target": "stripe.com",
      "limit": 100,
      "include_subdomains": true
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fbacklinks%2Freferring_domains%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"target":"stripe.com","limit":100,"include_subdomains":true}]'
    ```
  </Tab>
</Tabs>

### Instant on-page SEO audit for a single URL: returns meta tags, headings, content stats, broken links, and page speed metrics without a full site crawl.

**POST** `https://api.dataforseo.com/v3/on_page/instant_pages` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/on_page/instant_pages', {
      body: [
    {
      "url": "https://stripe.com/pricing",
      "enable_javascript": true
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fon_page%2Finstant_pages" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"url":"https://stripe.com/pricing","enable_javascript":true}]'
    ```
  </Tab>
</Tabs>

### WHOIS record for a domain plus SEO overlay: registration date, registrar, expiration, estimated traffic, and ranking overview.

**POST** `https://api.dataforseo.com/v3/domain_analytics/whois/overview/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/domain_analytics/whois/overview/live', { body: [{"limit":10,"filters":[["domain","=","stripe.com"]]}] });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fdomain_analytics%2Fwhois%2Foverview%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"limit":10,"filters":[["domain","=","stripe.com"]]}]'
    ```
  </Tab>
</Tabs>

### Detect the technologies (CMS, analytics, ad networks, CDNs, frameworks) used on a given domain — BuiltWith-style tech stack detection.

**POST** `https://api.dataforseo.com/v3/domain_analytics/technologies/domain_technologies/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/domain_analytics/technologies/domain_technologies/live', { body: [{"target":"stripe.com"}] });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fdomain_analytics%2Ftechnologies%2Fdomain_technologies%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"target":"stripe.com"}]'
    ```
  </Tab>
</Tabs>

### Search the Apple App Store by app listings — matches against title, description, and category. Returns app listings with rankings, ratings, pricing, and metadata.

**POST** `https://api.dataforseo.com/v3/app_data/apple/app_listings/search/live` — \$0.001 / request

<Tabs>
  <Tab title="SDK">
    ```typescript theme={null}
    const data = await lava.gateway('https://api.dataforseo.com/v3/app_data/apple/app_listings/search/live', {
      body: [
    {
      "keyword": "expense tracker",
      "location_code": 2840,
      "language_code": "en"
    }
    ],
    });
    ```
  </Tab>

  <Tab title="cURL">
    ```bash theme={null}
    curl -X POST "https://api.lava.so/v1/forward?u=https%3A%2F%2Fapi.dataforseo.com%2Fv3%2Fapp_data%2Fapple%2Fapp_listings%2Fsearch%2Flive" \
      -H "Authorization: Bearer $LAVA_SECRET_KEY" \
      -H "Content-Type: application/json" \
      -d '[{"keyword":"expense tracker","location_code":2840,"language_code":"en"}]'
    ```
  </Tab>
</Tabs>

## Next Steps

<CardGroup cols={2}>
  <Card title="All Providers" icon="grid" href="/gateway/supported-providers">
    Browse all supported AI providers
  </Card>

  <Card title="Forward Proxy" icon="route" href="/gateway/forward-proxy">
    Learn how to construct proxy URLs and authenticate requests
  </Card>
</CardGroup>
