Semrush API

Semrush Keywords API

Semrush keyword research for any term: monthly search volume, CPC, competition, keyword difficulty, plus related keywords and question keywords.

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

What the API returneditems[0]
{
"keyword": "best running shoes",
"database": "us",
"searchVolume": 74000,
"cpcUsd": 1.12,
"competition": 0.34,
"keywordDifficulty": 62,
"referringDomainsMedian": 48,
"organicResultsCount": 8420000,
... 3 more fields
}
Uptime
99.94%
30d · 1,763 calls
Requests
1,763
30d · weekly, last 12 wks
Response
6.7s
median · 30d

Pricing

Semrush Keywords API pricing

You pay
$49.50
$4.95/1k req, only for what you use. No monthly plan.
Your first 20 requests are free with the $0.10 starting balance.

Try it

Get Semrush keywords in one request

Open in
Get a free key
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.

This sample shows 20 of 21 fields. See every field

{
  "found": true,
  "data": {
    "items": [
      {
        "keyword": "best running shoes",
        "database": "us",
        "searchVolume": 74000,
        "cpcUsd": 1.12,
        "competition": 0.34,
        "keywordDifficulty": 62,
        "referringDomainsMedian": 48,
        "organicResultsCount": 8420000,
        "intents": [
          "commercial",
          "informational"
        ],
        "relatedKeywords": [
          {
            "keyword": "best running shoes for men",
            "searchVolume": 33100,
            "keywordDifficulty": 58
          },
          {
            "keyword": "best running shoes for women",
            "searchVolume": 27100,
            "keywordDifficulty": 57
          },
          {
            "keyword": "best running shoes for flat feet",
            "searchVolume": 9900,
            "keywordDifficulty": 49
          }
        ],
        "questions": [
          {
            "keyword": "what are the best running shoes for beginners",
            "searchVolume": 1300,
            "keywordDifficulty": 38
          },
          {
            "keyword": "how often should you replace running shoes",
            "searchVolume": 2400,
            "keywordDifficulty": 33
          }
        ]
      }
    ]
  }
}

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.

  • keywordstring

    best running shoes

    The search term to research (e.g. "best running shoes").

  • databasestring

    us

    Two-letter Semrush regional database that scopes the metrics (e.g. us, uk, de).

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

Response

JSON, one example value per field.

each itemdata.items[]

Keyword-research records: search volume, CPC, competition, keyword difficulty, plus related keywords and question keywords for the researched term. Populated whenever the provider has data for the entity.

  • competitionnumber

    0.34

    Paid-search competition density, 0 to 1, or null when Semrush has no data for the keyword.

  • cpcUsdnumber

    1.12

    Average cost per click in USD, or null when Semrush has no data for the keyword.

  • databasestring

    us

    Two-letter Semrush regional database the metrics are scoped to.

  • intentsstring[]

    Search-intent labels for the keyword (e.g. commercial, informational). Populated whenever the provider has data for the entity.

  • keywordstring

    best running shoes

    The researched search term. Populated whenever the provider has data for the entity.

  • keywordDifficultyinteger

    62

    Semrush Keyword Difficulty, 0 to 100, or null when Semrush has no data for the keyword.

  • organicResultsCountinteger

    8420000

    Number of organic results Google returns for the keyword, or null when Semrush has no data for the keyword.

  • referringDomainsMedianinteger

    48

    Median number of referring domains across the ranking pages, or null when Semrush has no data for the keyword.

  • searchVolumeinteger

    74000

    Average monthly search volume in the selected database, or null when Semrush has no data for the keyword.

each questiondata.items[].questions[]

Question-phrased keyword variations with their own volume and difficulty. Populated whenever the provider has data for the entity.

  • keywordstring

    what are the best running shoes for beginners

    The question keyword.

  • keywordDifficultyinteger

    38

    Semrush Keyword Difficulty for the question keyword, 0 to 100, or null when Semrush has no data for the keyword.

  • searchVolumeinteger

    1300

    Average monthly search volume for the question keyword, or null when Semrush has no data for the keyword.

each relatedKeyworddata.items[].relatedKeywords[]

Related keyword suggestions with their own volume and difficulty. Populated whenever the provider has data for the entity.

  • keywordstring

    best running shoes for men

    The related keyword.

  • keywordDifficultyinteger

    58

    Semrush Keyword Difficulty for the related keyword, 0 to 100, or null when Semrush has no data for the keyword.

  • searchVolumeinteger

    33100

    Average monthly search volume for the related keyword, or null when Semrush has no data for the keyword.

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 Semrush Keywords API

The AnyAPI Semrush Keywords API returns Semrush keywords data as normalized JSON from one POST call to /v1/run/semrush.keywords. Semrush keyword research for any term: monthly search volume, CPC, competition, keyword difficulty, plus related keywords and question keywords. AnyAPI returns one normalized schema whichever source serves it. It costs from $4.95 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 99.9% of Semrush keywords calls through AnyAPI succeeded, with a median response time of 6.7 seconds across 1,763 measured calls.

It costs from $4.95 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.

Semrush keyword research for any term: monthly search volume, CPC, competition, keyword difficulty, plus related keywords and question keywords. 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.9% of Semrush keywords calls through AnyAPI succeeded, with a median response time of 6.7 seconds across 1,763 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, which covers 20 Semrush Keywords calls at $0.00495 each.

Send a POST request to https://api.getanyapi.com/v1/run/semrush.keywords 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.