Nexscope

High Search Volume Keywords

Find high search volume keywords in a large keyword database. Call the High Search Volume Keywords API via REST or MCP to automate SEO research.

CostRecent 20 credits / call
Try online
POST · https://api.nexscope.ai/seo/topSearchesMCP · nexscope_seo_top_searches

What this API does

Find high search volume keywords in a large keyword database. The request accepts language, limit, market. Its documented result includes engine, freshness, cpcUsd, keyword, metricsUpdatedAt, paidCompetition, searchVolume, language.

High Search Volume Keywords API use cases

Build a keyword shortlist

To build a keyword shortlist, a search marketer submits language and limit to High Search Volume Keywords. The returned engine, freshness, cpcUsd help choose candidate search terms for further investigation.

Compare search demand signals

A search marketer uses High Search Volume Keywords with language and limit to compare search demand signals. The returned engine, freshness, cpcUsd help compare keyword demand within the requested market scope.

Plan a content or advertising test

For this workflow, a search marketer calls High Search Volume Keywords with language and limit to plan a content or advertising test. The result helps select terms for a content or advertising experiment.

High Search Volume Keywords API FAQ

What does the High Search Volume Keywords API return?

Find high search volume keywords in a large keyword database. The documented output includes engine, freshness, cpcUsd, keyword, metricsUpdatedAt, paidCompetition, searchVolume, language. It corresponds to the supplied language, limit, market. Optional fields can be absent; a missing value should not be interpreted as a measured zero. Example values illustrate the response shape, rather than live account results.

How many credits does the High Search Volume Keywords API cost?

The current documented cost is Recent 20 credits / call. This is the same cost shown at the top of this page. If a range or estimate is displayed, the final charge depends on the request. Review your available credits and the pricing page before calling the API, and check API usage records for the actual charge.

How do I call the High Search Volume Keywords API from my app or an MCP client?

Send a POST request to https://api.nexscope.ai/seo/topSearches with your API key as a Bearer token and the JSON inputs shown in API integration. In a compatible MCP client such as Claude or Cursor, connect Nexscope and call nexscope_seo_top_searches. Use the MCP arguments shown in the MCP guide, or switch Online test to MCP to review its request before adding it to your app.

View plans and creditsConnect this API with MCP

Try this API
Endpoint
https://api.nexscope.ai/seo/topSearches
MCP method
nexscope_seo_top_searches

Step 1 of 3 · Authenticate

Authentication

All run endpoints require a user API key. Send it as a bearer token in the Authorization header.

Authorization: Bearer nk-xxxxxxxxxxxxxxxxx
Missing or invalid API keys return an authentication error. Manage keys from .

Step 2 of 3 · Send a request

POSThttps://api.nexscope.ai/seo/topSearches

Run an API

Send a JSON request body using the parameters described below.

Example request

Replace YOUR_API_KEY, then run this command in your terminal.

curl -X POST 'https://api.nexscope.ai/seo/topSearches' \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "language": "en",
  "limit": 10,
  "market": "US"
}'

Code example

{
  "language": "en",
  "limit": 10,
  "market": "US"
}

Step 3 of 3 · Inspect the result

Check the response

Read code for the request status and data for the result. Open the parameter and response reference for the full field definitions.

HTTP status codes

CodeDescription
200Default HTTP response for both success and many business errors. Only outer JSON code 0 indicates success or asynchronous acceptance; inspect data for the result.
429Execution admission rate limit; honor Retry-After when present.
503Execution admission is temporarily unavailable; honor Retry-After when present.
Opt-inX-Nexscope-Http-Status: semantic maps controller-handled business errors to HTTP status on run and task routes. Pre-authentication failures, such as a missing or invalid API key (code 11209, including an incomplete or corrupted copy) or an expired website login session (code 12001), may still return HTTP 200 before this mapping. Always check the outer JSON code; malformed requests and infrastructure failures may also return non-200 HTTP responses.
All categories/ Keyword Research
POSThttps://api.nexscope.ai/seo/topSearches

Run this API

Send a JSON request to execute this API and receive the documented response payload.

Endpoint

MethodPOST
Pathhttps://api.nexscope.ai/seo/topSearches
AuthBearer API key
Content-Typeapplication/json

Request parameters

NameTypeRequiredDescription
languagestringoptional
Language value used by this API operation.
Constant: en
Default: en
limitintegeroptional
Limit value used by this API operation.
Default: 10
Minimum: 1
Maximum: 20
marketstringoptional
Market value used by this API operation.
Constant: US
Default: US

Response example

Example response envelope from the documented SEO API contract.

{
  "code": 0,
  "cost": "-1",
  "data": {
    "callId": "synthetic-call",
    "completedAt": null,
    "coverage": {
      "missing": [
        {
          "field": "synthetic",
          "reason": "UPSTREAM_FIELD_MISSING"
        }
      ],
      "status": "PARTIAL"
    },
    "requestedAt": "123",
    "result": {
      "engine": "synthetic",
      "freshness": "synthetic",
      "items": [
        {
          "cpcUsd": "synthetic",
          "keyword": "synthetic",
          "metricsUpdatedAt": 9007199254740992,
          "missing": [
            {
              "field": "synthetic",
              "reason": "synthetic"
            }
          ],
          "paidCompetition": 1.25,
          "searchVolume": 9007199254740992
        }
      ],
      "language": "synthetic",
      "market": "synthetic",
      "missing": [
        {
          "field": "synthetic",
          "reason": "synthetic"
        }
      ],
      "ordering": "synthetic",
      "rankingBasis": "synthetic",
      "requestedLimit": 1,
      "returnedCount": 1,
      "sourceProduct": "synthetic",
      "truncated": false
    },
    "schemaVersion": "synthetic",
    "source": "synthetic",
    "status": "PARTIAL",
    "usage": {
      "billingStatus": "UNAPPROVED",
      "chargedCredits": "0"
    }
  },
  "msg": null,
  "time": "2026-01-01 00:00:00",
  "traceId": "synthetic-trace",
  "ts": "9007199254740993"
}

Response fields

NameTypeRequiredDescription
codeintegerrequired
0 is a successful envelope; inspect data.status separately.
Allowed: 0, 42008, 42009
coststringrequired
Elapsed processing milliseconds; not price. -1 for non-web context.
dataobjectrequired
Data value used by this API operation.
data.callIdstring | nulloptional
Call id value used by this API operation.
data.completedAtstring | integer | nulloptional
Completed at value used by this API operation.
data.coverageobjectoptional
Coverage value used by this API operation.
data.coverage.missingarrayoptional
Missing value used by this API operation.
data.coverage.missing[]objectrequired
Item in data coverage missing.
data.coverage.missing[].fieldstringoptional
Field value used by this API operation.
data.coverage.missing[].reasonstringoptional
Reason value used by this API operation.
data.coverage.statusstringoptional
Status value used by this API operation.
data.requestedAtstring | integer | nulloptional
Requested at value used by this API operation.
data.resultobject | nullrequired
Result value used by this API operation.
data.result.enginestringrequired
Engine value used by this API operation.
Constant: google
data.result.freshnessstringrequired
Freshness value used by this API operation.
Constant: database_latest_available
data.result.itemsarrayrequired
Items value used by this API operation.
Minimum items: 0
Maximum items: 20
data.result.items[]objectrequired
Item in data result items.
data.result.items[].cpcUsdstring | nullrequired
Cpc usd value used by this API operation.
Pattern: ^(0|[1-9][0-9]*)(\.[0-9]+)?$
data.result.items[].keywordstringrequired
Keyword value used by this API operation.
data.result.items[].metricsUpdatedAtinteger | nullrequired
Metrics updated at value used by this API operation.
Minimum: 0
data.result.items[].missingarrayrequired
Missing value used by this API operation.
Minimum items: 0
data.result.items[].missing[]objectrequired
Item in data result items[] missing.
data.result.items[].missing[].fieldstringrequired
Field value used by this API operation.
data.result.items[].missing[].reasonstringrequired
Reason value used by this API operation.
Allowed: UPSTREAM_FIELD_MISSING, UPSTREAM_FIELD_INVALID, DUPLICATE_UPSTREAM_ITEM, UPSTREAM_ITEM_MISSING
data.result.items[].paidCompetitionnumber | nullrequired
Paid competition value used by this API operation.
Minimum: 0
Maximum: 1
data.result.items[].searchVolumeinteger | nullrequired
Search volume value used by this API operation.
Minimum: 0
data.result.languagestringrequired
Language value used by this API operation.
Constant: en
data.result.marketstringrequired
Market value used by this API operation.
Constant: US
data.result.missingarrayrequired
Missing value used by this API operation.
Minimum items: 0
data.result.missing[]objectrequired
Item in data result missing.
data.result.missing[].fieldstringrequired
Field value used by this API operation.
data.result.missing[].reasonstringrequired
Reason value used by this API operation.
Allowed: UPSTREAM_FIELD_MISSING, UPSTREAM_FIELD_INVALID, DUPLICATE_UPSTREAM_ITEM, UPSTREAM_ITEM_MISSING
data.result.orderingstringrequired
Ordering value used by this API operation.
Constant: search_volume_desc
data.result.rankingBasisstringrequired
Ranking basis value used by this API operation.
Constant: google_ads_search_volume
data.result.requestedLimitintegerrequired
Requested limit value used by this API operation.
Minimum: 1
Maximum: 20
data.result.returnedCountintegerrequired
Returned count value used by this API operation.
Minimum: 0
data.result.sourceProductstringrequired
Source product value used by this API operation.
Constant: dataforseo_labs
data.result.truncatedbooleanrequired
Truncated value used by this API operation.
data.schemaVersionstring | nulloptional
Schema version value used by this API operation.
data.sourcestring | nulloptional
Source value used by this API operation.
data.statusstringoptional
Status value used by this API operation.
Allowed: SUCCESS, PARTIAL, EMPTY, PROCESSING, UNKNOWN, FAILED
data.usageobject | nulloptional
Usage value used by this API operation.
data.usage.billingStatusstring | nulloptional
Billing status value used by this API operation.
data.usage.chargedCreditsstring | integer | nulloptional
Charged credits value used by this API operation.
msgstring | nullrequired
Available upstream msg/errmsg/message is preferred for success and failure; Chinese is translated to English. Missing successful message is null. Platform-only errors and task states use platform English. Message text never determines success or retry.
timestringrequired
yyyy-MM-dd HH:mm:ss
traceIdstring | nullrequired
Trace id value used by this API operation.
tsstringrequired
Epoch milliseconds; global long serializer.

Accepted processing response

code 0 confirms acceptance. Use data.callId to query the same request; processing is not completion.

NameTypeRequiredDescription
codeintegerrequired
0 is a successful envelope; inspect data.status separately.
Constant: 0
coststringrequired
Elapsed processing milliseconds; not price. -1 for non-web context.
dataobjectrequired
Data value used by this API operation.
data.callIdstring | nullrequired
Call id value used by this API operation.
data.reasonstringrequired
Reason value used by this API operation.
Constant: IN_PROGRESS
data.retryablebooleanoptional
Retryable value used by this API operation.
data.statusstringrequired
Status value used by this API operation.
Constant: PROCESSING
data.taskIdstring | nulloptional
Task id value used by this API operation.
msgstring | nullrequired
Available upstream msg/errmsg/message is preferred for success and failure; Chinese is translated to English. Missing successful message is null. Platform-only errors and task states use platform English. Message text never determines success or retry.
timestringrequired
yyyy-MM-dd HH:mm:ss
traceIdstring | nullrequired
Trace id value used by this API operation.
tsstringrequired
Epoch milliseconds; global long serializer.

Error response

NameTypeRequiredDescription
codeintegerrequired
0 is a successful envelope; inspect data.status separately.
coststringrequired
Elapsed processing milliseconds; not price. -1 for non-web context.
dataobjectrequired
Data value used by this API operation.
data.callIdstring | nullrequired
Call id value used by this API operation.
data.reasonstring | nullrequired
Reason value used by this API operation.
data.retryablebooleanoptional
Retryable value used by this API operation.
data.statusstring | nullrequired
Status value used by this API operation.
data.taskIdstring | nulloptional
Task id value used by this API operation.
msgstring | nullrequired
Available upstream msg/errmsg/message is preferred for success and failure; Chinese is translated to English. Missing successful message is null. Platform-only errors and task states use platform English. Message text never determines success or retry.
timestringrequired
yyyy-MM-dd HH:mm:ss
traceIdstring | nullrequired
Trace id value used by this API operation.
tsstringrequired
Epoch milliseconds; global long serializer.

Retrieve a processing result

A response withPROCESSING and a callIdmeans the result is still being prepared. Use the result query below with the returned identifier. This lookup reads the stored result and does not spend credits.

curl -X GET https://api.nexscope.ai/seo/topSearches/calls/{callId} \
  -H "Authorization: Bearer nk-xxxxxxxxxxxxxxxxx"

Responses

CodeDescription
200Default HTTP response for both success and many business errors. Only outer JSON code 0 indicates success or asynchronous acceptance; inspect data for the result.
429Execution admission rate limit; honor Retry-After when present.
503Execution admission is temporarily unavailable; honor Retry-After when present.
Opt-inX-Nexscope-Http-Status: semantic maps controller-handled business errors to HTTP status on run and task routes. Pre-authentication failures, such as a missing or invalid API key (code 11209, including an incomplete or corrupted copy) or an expired website login session (code 12001), may still return HTTP 200 before this mapping. Always check the outer JSON code; malformed requests and infrastructure failures may also return non-200 HTTP responses.

Data source, freshness, and limitations

Source, freshness, coverage, rate limits, and estimation notes are not specified in this API definition unless they appear in the request or response field documentation above. Do not assume official marketplace data or real-time freshness when it is not explicitly documented.

Step 1 of 2 · Connect your MCP client

MCP

V2 recommended

Connect remote agents through the standard MCP 2025-11-25 Streamable HTTP endpoint. Use OAuth 2.1 Authorization Code with PKCE, or an API key for compatibility.

POST https://api.nexscope.ai/mcp
MCP-Protocol-Version: 2025-11-25
Content-Type: application/json
Authentication

OAuth clients request the mcp:tools scope. The endpoint's 401 response advertises protected-resource metadata for authorization discovery.

Step 2 of 2 · Call the tool

Call a tool

{
  "jsonrpc": "2.0",
  "id": "tool-call-1",
  "method": "tools/call",
  "params": {
    "name": "nexscope_seo_top_searches",
    "arguments": {
      "language": "en",
      "limit": 10,
      "market": "US"
    }
  }
}

Legacy MCP v1

Existing API-key clients can continue using the compatibility endpoint. New integrations should use MCP v2.

GET / POST /mcp/legacy

What can you do with this API?

Data explained and practical use cases

AI Guide

Question

What data can High Search Volume Keywords provide, and how might I use it?

AI answer

This API returns high-volume keywords from a Google Ads search-volume database for the documented US market and English language. It ranks the returned keywords by search volume, with at most 20 items.

Data categoryDocumented fieldsWhat the values mean
Search termsdata.result.items[].keywordThe keyword text to investigate or use in a content or advertising plan.
Search demanddata.result.items[].searchVolumeThe database’s search-volume metric for the keyword, when available.
Cost-per-click estimatedata.result.items[].cpcUsdUS-dollar CPC metric, when available; it is not a guaranteed current bid or price.
Paid competitiondata.result.items[].paidCompetitionA paid-search competition metric from 0 to 1, when available.
Data scopedata.result.rankingBasis, data.result.freshness, data.result.market, data.result.languageRanking uses Google Ads search volume; freshness means the latest available database values, for US and English.
Coverage and gapsdata.result.returnedCount, data.result.truncated, data.result.items[].missing[].field, data.result.items[].missing[].reasonShows list size, truncation, and unavailable or invalid item metrics. A null metric should not be treated as zero.
  • Build a shortlist of widely searched terms for a US English content calendar.
    • Prompt example: “I plan search marketing for an online store. Could you build a shortlist of widely searched terms for a US English content calendar? Show the relevant returned evidence and tell me what input you need from me.”
  • Compare search volume and paid competition when choosing topics that merit deeper keyword research.
    • Prompt example: “I plan search marketing for an online store. Could you compare search volume and paid competition when choosing topics that merit deeper keyword research? Show the returned values behind the comparison, and mark missing data.”
  • Inspect CPC estimates alongside volume to identify terms worth evaluating for a paid-search campaign.
    • Prompt example: “I plan search marketing for an online store. Could you inspect CPC estimates alongside volume to identify terms worth evaluating for a paid-search campaign? Show matching records and source links where the API provides them; ask me for any required identifier or filter.”
  • Check each keyword’s missing-field information before ranking candidates by a metric that may be null.
    • Prompt example: “I plan search marketing for an online store. Could you check each keyword’s missing-field information before ranking candidates by a metric that may be null? Show the relevant returned evidence and tell me what input you need from me.”

Data Example

Sample request and response

Request parameters

{
  "limit": 10,
  "market": "US",
  "language": "en"
}

Response

{
  "code": 0,
  "msg": null,
  "data": {
    "usage": {
      "billingStatus": "CHARGED",
      "chargedCredits": 20
    },
    "callId": "f98148bb-044c-4fbf-a8fa-0e215e4580fc",
    "result": {
      "items": [
        {
          "cpcUsd": "0.03",
          "keyword": "yout7be",
          "missing": [],
          "searchVolume": 226000000,
          "paidCompetition": 0.02,
          "metricsUpdatedAt": 1789255334000
        },
        {
          "cpcUsd": "0.03",
          "keyword": "6youtube",
          "missing": [],
          "searchVolume": 226000000,
          "paidCompetition": 0.02,
          "metricsUpdatedAt": 1789406092000
        },
        {
          "cpcUsd": "0.03",
          "keyword": "yourb",
          "missing": [],
          "searchVolume": 226000000,
          "paidCompetition": 0.02,
          "metricsUpdatedAt": 1789529813000
        },
        {
          "cpcUsd": "0.03",
          "keyword": "yo0utube",
          "missing": [],
          "searchVolume": 226000000,
          "paidCompetition": 0.02,
          "metricsUpdatedAt": 1789541555000
        },
        {
          "cpcUsd": "0.03",
          "keyword": "youtube",
          "missing": [],
          "searchVolume": 226000000,
          "paidCompetition": 0.02,
          "metricsUpdatedAt": 1789386231000
        },
        {
          "cpcUsd": "0.03",
          "keyword": "yout8be",
          "missing": [],
          "searchVolume": 226000000,
          "paidCompetition": 0.02,
          "metricsUpdatedAt": 1789227366000
        },
        {
          "cpcUsd": "0.03",
          "keyword": "yout4",
          "missing": [],
          "searchVolume": 226000000,
          "paidCompetition": 0.02,
          "metricsUpdatedAt": 1789515022000
        },
        {
          "cpcUsd": "0.03",
          "keyword": "y6outube",
          "missing": [],
          "searchVolume": 226000000,
          "paidCompetition": 0.02,
          "metricsUpdatedAt": 1789617750000
        },
        {
          "cpcUsd": "0.03",
          "keyword": "tpu tubes",
          "missing": [],
          "searchVolume": 226000000,
          "paidCompetition": 0.02,
          "metricsUpdatedAt": 1789174352000
        },
        {
          "cpcUsd": "0.03",
          "keyword": "yout8ube",
          "missing": [],
          "searchVolume": 226000000,
          "paidCompetition": 0.02,
          "metricsUpdatedAt": 1789418193000
        }
      ],
      "engine": "google",
      "market": "US",
      "missing": [],
      "language": "en",
      "ordering": "search_volume_desc",
      "freshness": "database_latest_available",
      "truncated": false,
      "rankingBasis": "google_ads_search_volume",
      "returnedCount": 10,
      "sourceProduct": "dataforseo_labs",
      "requestedLimit": 10
    },
    "source": "dataforseo",
    "status": "SUCCESS",
    "coverage": {
      "status": "COMPLETE",
      "missing": []
    },
    "completedAt": 1789640437459,
    "requestedAt": 1789640433964,
    "schemaVersion": "MDX-F1-KW10-1.0"
  }
}