Nexscope

Page Organic Keyword Intersection

SEO API documentation for REST and MCP, generated from the implemented API contract.

API selector
Competitors & Traffic

API overview

Page Organic Keyword Intersection. Bounded Google database facts; estimated traffic is not measured visits. One fixed Live POST, no pagination. Unknown fields and missing values are explicit. Execution and publication remain unapproved. Owner-only historical retrieval retains results for seven days.

Try this API
Endpoint
/api/skill-api/v1/skills/seo-page-keyword-intersection/run
MCP method
nexscope_seo_page_keyword_intersection

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 .
POST/api/skill-api/v1/skills/seo-page-keyword-intersection/run

Run an API

Send a JSON request body using the parameters described below.

Slugseo-page-keyword-intersection
HeadersAuthorization: Bearer nk-...
Content-Type: application/json
Request bodyAPI-specific JSON object.
Response bodyComplete HTTP envelope, including code and data.

Status codes

CodeDescription
200HTTP request completed. Check JSON code; only 0 indicates business success or acceptance.
400Request JSON or required API parameters are invalid.
401API key is missing, invalid, or cannot be matched to a user.
5xxAPI execution or upstream service failed.

Example request

curl -X POST https://api.nexscope.ai/api/skill-api/v1/skills/seo-page-keyword-intersection/run \
  -H "Authorization: Bearer nk-xxxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{   "language": "en",   "limit": 10,   "market": "US",   "mode": "INTERSECTION",   "page1": "https://www.nexscope.ai/",   "page2": "https://www.nexscope.ai/pricing" }'
All categories/ Competitors & Traffic
POST/api/skill-api/v1/skills/seo-page-keyword-intersection/run

Run this API

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

Endpoint

MethodPOST
Path/api/skill-api/v1/skills/seo-page-keyword-intersection/run
AuthBearer API key
Content-Typeapplication/json

Request body

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
modestringoptional
Mode value used by this API operation.
Allowed: INTERSECTION, FIRST_ONLY
Default: INTERSECTION
page1stringrequired
Page1 value used by this API operation.
page2stringrequired
Page2 value used by this API operation.

Request example

{
  "language": "en",
  "limit": 10,
  "market": "US",
  "mode": "INTERSECTION",
  "page1": "https://www.nexscope.ai/",
  "page2": "https://www.nexscope.ai/pricing"
}

Response body

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.inputPage1stringrequired
Input page1 value used by this API operation.
data.result.inputPage2stringrequired
Input page2 value used by this API operation.
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[].firstobjectrequired
First value used by this API operation.
data.result.items[].first.rankAbsoluteinteger | nullrequired
Rank absolute value used by this API operation.
Minimum: 1
data.result.items[].first.rankGroupinteger | nullrequired
Rank group value used by this API operation.
Minimum: 1
data.result.items[].first.typestringrequired
Type value used by this API operation.
Constant: organic
data.result.items[].first.urlstring | nullrequired
Url value used by this API operation.
data.result.items[].keywordstringrequired
Keyword value used by this API operation.
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[].searchVolumeinteger | nullrequired
Search volume value used by this API operation.
Minimum: 0
data.result.items[].secondanyrequired
Second value used by this API operation.
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.modestringrequired
Mode value used by this API operation.
Allowed: INTERSECTION, FIRST_ONLY
data.result.page1stringrequired
Page1 value used by this API operation.
data.result.page2stringrequired
Page2 value used by this API operation.
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.searchTypestringrequired
Search type value used by this API operation.
Constant: organic
data.result.sourceProductstringrequired
Source product value used by this API operation.
Constant: dataforseo_labs
data.result.targetScopestringrequired
Target scope value used by this API operation.
Constant: exact_url
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.

Any of option 1 — requires type, url, rankGroup, rankAbsolute

NameTypeRequiredDescription
data.result.items[].secondobjectrequired
Second value used by this API operation.
data.result.items[].second.rankAbsoluteinteger | nullrequired
Rank absolute value used by this API operation.
Minimum: 1
data.result.items[].second.rankGroupinteger | nullrequired
Rank group value used by this API operation.
Minimum: 1
data.result.items[].second.typestringrequired
Type value used by this API operation.
Constant: organic
data.result.items[].second.urlstring | nullrequired
Url value used by this API operation.

Any of option 2

NameTypeRequiredDescription
data.result.items[].secondnullrequired
Second value used by this API operation.

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.

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",
      "inputPage1": "synthetic",
      "inputPage2": "synthetic",
      "items": [
        {
          "first": {
            "rankAbsolute": 9007199254740992,
            "rankGroup": 9007199254740992,
            "type": "synthetic",
            "url": "synthetic"
          },
          "keyword": "synthetic",
          "missing": [
            {
              "field": "synthetic",
              "reason": "synthetic"
            }
          ],
          "searchVolume": 9007199254740992,
          "second": {
            "rankAbsolute": 9007199254740992,
            "rankGroup": 9007199254740992,
            "type": "synthetic",
            "url": "synthetic"
          }
        }
      ],
      "language": "synthetic",
      "market": "synthetic",
      "missing": [
        {
          "field": "synthetic",
          "reason": "synthetic"
        }
      ],
      "mode": "synthetic",
      "page1": "synthetic",
      "page2": "synthetic",
      "requestedLimit": 1,
      "returnedCount": 1,
      "searchType": "synthetic",
      "sourceProduct": "synthetic",
      "targetScope": "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"
}

Retrieve a processing result

A response with PROCESSING and a callId means 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/api/skill-api/v1/skills/seo-page-keyword-intersection/calls/{callId} \
  -H "Authorization: Bearer nk-xxxxxxxxxxxxxxxxx"

Responses

CodeDescription
200HTTP request completed. Check JSON code; only 0 indicates business success or acceptance.
400Request JSON or required API parameters are invalid.
401API key is missing, invalid, or cannot be matched to a user.
5xxAPI execution or upstream service failed.

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.

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/api/skill-api/v2/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.

Call a tool

{
  "jsonrpc": "2.0",
  "id": "tool-call-1",
  "method": "tools/call",
  "params": {
    "name": "nexscope_seo_page_keyword_intersection",
    "arguments": {
      "language": "en",
      "limit": 10,
      "market": "US",
      "mode": "INTERSECTION",
      "page1": "https://www.nexscope.ai/",
      "page2": "https://www.nexscope.ai/pricing"
    }
  }
}
Legacy MCP v1

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

GET / POST /api/skill-api/v1/mcp

Online test

Execute the current API with your API key and JSON payload.

Try it

Send a real request with the same contract shown in the reference.

Endpoint
/api/skill-api/v1/skills/seo-page-keyword-intersection/run
Processing result endpoint
https://api.nexscope.ai/api/skill-api/v1/skills/seo-page-keyword-intersection/calls/{resultId}
MCP method
nexscope_seo_page_keyword_intersection
cURL
curl -X POST \
  https://api.nexscope.ai/api/skill-api/v1/skills/seo-page-keyword-intersection/run \
  -H "Authorization: Bearer nk-..." \
  -H "Content-Type: application/json" \
  -d '{ "language": "en", "limit": 10, "market": "US", "page1": "https://www.nexscope.ai/", "page2": "https://www.nexscope.ai/pricing" }'
Response
No response yet. Run the request to see the response here.
Processing result

Use the identifier returned by Run API. The tester selects the correct result query automatically, and result queries do not spend credits.

Result response
No task result yet. Query the task to see the generated output here.