SEO API

SEO Search volume API

Get AnyAPI SEO keyword search volume, CPC, competition, bid estimates, and monthly history as normalized JSON.

$108.00/1k req, pay per request, no subscription.

What the API returnedkeywords[0]
{
"keyword": "seo tools",
"searchVolume": 33100,
"cpc": 12.4,
"competition": "high",
"competitionIndex": 87,
"bidLow": 6.8,
"bidHigh": 19.2,
"monthlySearches": [...]
}
Uptime
99.47%
30d · 378 calls
Requests
408
30d · weekly, last 12 wks
Response
4.2s
median · 30d

Pricing

SEO Search volume API pricing

You pay
$1,080.00
$108.00/1k req, only for what you use. No monthly plan.

Call it

Get SEO search volume in one request

import os, requests

res = requests.post(
    "https://api.getanyapi.com/v1/run/seo.search_volume",
    headers={"Authorization": f"Bearer {os.environ['ANYAPI_KEY']}"},
    json={
        "keywords": ""
    },
)
print(res.json())
Open in
Get a free key
Sample response

This sample shows 14 of 15 fields. See every field

{
  "found": true,
  "data": {
    "keywords": [
      {
        "keyword": "seo tools",
        "searchVolume": 33100,
        "cpc": 12.4,
        "competition": "high",
        "competitionIndex": 87,
        "bidLow": 6.8,
        "bidHigh": 19.2,
        "monthlySearches": [
          {
            "year": 2025,
            "month": 4,
            "searchVolume": 29800
          },
          {
            "year": 2025,
            "month": 5,
            "searchVolume": 31200
          },
          {
            "year": 2025,
            "month": 6,
            "searchVolume": 32400
          },
          {
            "year": 2025,
            "month": 7,
            "searchVolume": 32900
          },
          {
            "year": 2025,
            "month": 8,
            "searchVolume": 33100
          }
        ]
      },
      {
        "keyword": "keyword research",
        "searchVolume": 40500,
        "cpc": 8.65,
        "competition": "medium",
        "competitionIndex": 54,
        "bidLow": 3.9,
        "bidHigh": 13.1,
        "monthlySearches": [
          {
            "year": 2025,
            "month": 4,
            "searchVolume": 37200
          },
          {
            "year": 2025,
            "month": 5,
            "searchVolume": 38900
          },
          {
            "year": 2025,
            "month": 6,
            "searchVolume": 39400
          },
          {
            "year": 2025,
            "month": 7,
            "searchVolume": 40100
          },
          {
            "year": 2025,
            "month": 8,
            "searchVolume": 40500
          }
        ]
      }
    ]
  }
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

One request, one response shape.

Every field you send and every field you get back, each with a real example.

Last verified 2026-10-31 · uptime and latency measured over 30d

Request body

JSON, posted to this endpoint.

  • keywordsarray

    ["seo tools","keyword research"]

    SEO keyword phrases to retrieve search-volume metrics for.

  • dateFromstring

    Start of the historical monthly-searches window, formatted YYYY-MM-DD. Cannot be more than four years before today. Omit for the default trailing window.

  • dateTostring

    End of the historical monthly-searches window, formatted YYYY-MM-DD. Omit for the default trailing window.

  • languagestring

    en

    Language code for SEO search-volume metrics.

  • locationinteger

    2840

    Location code for SEO search-volume metrics. The default is the United States.

  • searchPartnersboolean

    false

    When true, include Google search-partner network volume in the reported numbers; when false (the default), count Google search only.

You send. A small JSON body. The values shown are examples to replace with your own.

Response

JSON, one example value per field.

each keyworddata.keywords[]

SEO keyword search-volume records. Populated whenever the provider has data for the entity.

  • bidHighnumber

    19.2

    Upper bound of the estimated paid-search top-of-page bid in USD.

  • bidLownumber

    6.8

    Lower bound of the estimated paid-search top-of-page bid in USD.

  • competitionstring

    high

    Paid-search competition level for the keyword. Populated whenever the provider has data for the entity.

  • competitionIndexinteger

    87

    Paid-search competition index for the keyword.

  • cpcnumber

    12.4

    Average paid-search cost per click in USD. Populated whenever the provider has data for the entity.

  • keywordstring

    seo tools

    Keyword phrase. Populated whenever the provider has data for the entity.

  • searchVolumeinteger

    33100

    Average monthly search volume for the keyword. Populated whenever the provider has data for the entity.

each monthlySearchedata.keywords[].monthlySearches[]

Monthly search-volume history for the keyword.

  • monthinteger

    4

    Calendar month number for the monthly search-volume record.

  • searchVolumeinteger

    29800

    Search volume for the month.

  • yearinteger

    2025

    Calendar year for the monthly search-volume record.

top level
  • foundboolean

    true

  • reason"not_found"

    Present only when `found` is false, and says why there is no result. `not_found`: the source states the target does not exist, or returned nothing for it. A `found: false` answer is a successful call, not an error, and `costUsd` is what it actually cost.

You get back. Named, typed fields in the same shape whichever source answers.

FAQ

About the SEO Search volume API

The AnyAPI SEO Search volume API returns SEO search volume data as normalized JSON from one POST call to /v1/run/seo.search_volume. Get AnyAPI SEO keyword search volume, CPC, competition, bid estimates, and monthly history as normalized JSON. AnyAPI returns one normalized schema whichever source serves it. It costs from $108 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 99.5% of SEO search volume calls through AnyAPI succeeded, with a median response time of 4.2 seconds across 378 measured calls.

It costs from $108 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet and each call draws it down. Some failed wallet-funded requests incur processing charges that we pass through at cost, with no markup; the error response shows the amount charged.

Get AnyAPI SEO keyword search volume, CPC, competition, bid estimates, and monthly history as normalized JSON. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 99.5% of SEO search volume calls through AnyAPI succeeded, with a median response time of 4.2 seconds across 378 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.

Yes. A new AnyAPI account starts with $0.10 of free balance and no card required.

Send a POST request to https://api.getanyapi.com/v1/run/seo.search_volume with your AnyAPI key in an "Authorization: Bearer" header and the input as a JSON body. The same key and the same wallet work on every AnyAPI endpoint.

No. You add US dollars to one prepaid AnyAPI balance and each request draws it down. There is no monthly plan and no minimum, and the same balance pays for every AnyAPI endpoint.

Yes. Install @getanyapi/sdk from npm for TypeScript or getanyapi from pip for Python. Both call every AnyAPI endpoint with the same key, and any HTTP client works too.

Yes. An agent can connect to the AnyAPI MCP server at https://api.getanyapi.com/mcp, or create its own free-trial key with one unauthenticated POST to https://api.getanyapi.com/agent/signup and call this endpoint over HTTP.