Nexscope

IMPORTANT ASYNCHRONOUS TASK WORKFLOW

  1. Call this MCP generation tool once and read taskId from structuredContent.
  2. Do not call the generation tool again while the task is PENDING or RUNNING.
  3. Wait at least 5 seconds, then call nexscope_media_task_result with skillSlug set to seo-shopping-seller-offers, the exact taskId, and the same bearer API key. While the task remains PENDING or RUNNING, use 5, 10, 20, and 30-second progressive backoff. Never query more often than once every 5 seconds.
  4. Stop querying when the task succeeds or fails. On success, return the final Nexscope resource URLs and the returned count as the actual charged credits.
  5. Never invent a taskId and never expose internal provider names or provider resource URLs.

Search Results Rankings

Shopping Seller Offers MCP Tool

Source-bound Google Shopping seller offers with observed prices and explicit missing evidence. One submit and at most eight fixed reads. Missing values are not zero. Prices and publication are unapproved. Owner-only historical results are retained seven days.

MCP tool name
nexscope_seo_shopping_seller_offers
Legacy MCP endpoint
/api/skill-api/v1/mcp
JSON-RPC method
tools/call

Authentication

Send the user API key as a bearer token on every MCP JSON-RPC request.

Authorization: Bearer nk-xxxxxxxxxxxxxxxxx

If authentication is missing or invalid, ask the user to open API Access and copy a valid key before calling this tool.

Call this MCP tool

Use tools/call with the MCP tool name below. The arguments object should match the table on this page.

{
  "jsonrpc": "2.0",
  "id": "seo-shopping-seller-offers-1",
  "method": "tools/call",
  "params": {
    "name": "nexscope_seo_shopping_seller_offers",
    "arguments": {
      "task_id": "22222222-2222-4222-8222-222222222222",
      "productRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    }
  }
}
Legacy endpoint
POST /api/skill-api/v1/mcp
Canonical detail URL
https://www.nexscope.ai/mcp-map/seo-shopping-seller-offers

Asynchronous task workflow

This capability uses a create-and-query flow. Creating the task and retrieving its final generated resources are two connected requests.

  1. 1. Create onceCall the MCP tool once and keep the returned taskId.
  2. 2. Query with backoffCall nexscope_media_task_result with this skill slug and task ID. Wait at least 5 seconds first; while pending or running, back off at 5, 10, 20, then 30-second intervals.
  3. 3. Use final resultStop at a terminal status. Successful results contain Nexscope resource URLs and the actual charged-credit count.
MCP task result call
{
  "jsonrpc": "2.0",
  "id": "seo-shopping-seller-offers-result-1",
  "method": "tools/call",
  "params": {
    "name": "nexscope_media_task_result",
    "arguments": {
      "skillSlug": "seo-shopping-seller-offers",
      "taskId": "TASK_ID_FROM_THE_GENERATION_RESULT"
    }
  }
}
REST fallback
GET https://api.nexscope.ai/api/skill-api/v1/skills/seo-shopping-seller-offers/tasks/{taskId}

Arguments

No arguments are defined for this tool.

Response fields

Treat structuredContent as the programmatic API response payload.

NameTypeRequiredDescription
dataanyrequired
Data value used by this API operation.
codeintegerrequired
0 means accepted or successful; nonzero is a platform error.
msgstring | nullrequired
Msg value used by this API operation.
tsstringrequired
Epoch milliseconds.
timestringrequired
Server local time: yyyy-MM-dd HH:mm:ss.
coststringrequired
Elapsed milliseconds, never credits; -1 outside web requests.
traceIdstring | nullrequired
Trace id value used by this API operation.

Any of option 1

NameTypeRequiredDescription
dataanyrequired
Data value used by this API operation.

One of option 1 — requires callId, status, result

NameTypeRequiredDescription
dataobjectrequired
Data value used by this API operation.
data.resultanyrequired
Result value used by this API operation.
data.callIdstringrequired
Call id value used by this API operation.
data.schemaVersionstringoptional
Schema version value used by this API operation.
data.statusstringrequired
Status value used by this API operation.
data.sourcestringoptional
Source value used by this API operation.
data.requestedAtstring | integer | nulloptional
Requested at value used by this API operation.
data.completedAtstring | integer | nulloptional
Completed at value used by this API operation.
data.coverageobject | nulloptional
Coverage value used by this API operation.
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.

Any of option 1 — requires meta, sourceCallId, productRef, offers

NameTypeRequiredDescription
data.resultobjectrequired
Result value used by this API operation.
data.result.metaobjectrequired
Meta value used by this API operation.
data.result.meta.sourcestringrequired
Source value used by this API operation.
Constant: DATAFORSEO_GOOGLE_SHOPPING_SELLERS
data.result.meta.sampledAtanyrequired
Sampled at value used by this API operation.
data.result.meta.retrievedAtanyrequired
Retrieved at value used by this API operation.
data.result.meta.marketobjectrequired
Market value used by this API operation.
data.result.meta.market.countrystringrequired
Country value used by this API operation.
Constant: US
data.result.meta.market.locationCodeintegerrequired
Location code value used by this API operation.
Constant: 2840
data.result.meta.market.languagestringrequired
Language value used by this API operation.
Constant: en
data.result.meta.truncatedbooleanrequired
Truncated value used by this API operation.
data.result.meta.missingarrayrequired
Missing value used by this API operation.
Maximum items: 100
data.result.meta.missing[]objectrequired
Item in data result meta missing.
data.result.meta.missing[].pathstringrequired
Path value used by this API operation.
Maximum length: 256
data.result.meta.missing[].reasonstringrequired
Reason value used by this API operation.
Allowed: MISSING, NULL, INVALID, UNSUPPORTED, TRUNCATED
data.result.meta.missingOverflowbooleanrequired
Missing overflow value used by this API operation.
data.result.sourceCallIdstringrequired
Source call id value used by this API operation.
Format: uuid
data.result.productRefstringrequired
Product ref value used by this API operation.
Pattern: ^[0-9a-f]{64}$
data.result.offersarrayrequired
Offers value used by this API operation.
Maximum items: 10
data.result.offers[]objectrequired
Item in data result offers.
data.result.offers[].sellerNameanyrequired
Seller name value used by this API operation.
data.result.offers[].titleanyrequired
Title value used by this API operation.
data.result.offers[].domainanyrequired
Domain value used by this API operation.
data.result.offers[].urlanyrequired
Url value used by this API operation.
data.result.offers[].detailsanyrequired
Details value used by this API operation.
data.result.offers[].basePriceanyrequired
Base price value used by this API operation.
data.result.offers[].taxanyrequired
Tax value used by this API operation.
data.result.offers[].shippingPriceanyrequired
Shipping price value used by this API operation.
data.result.offers[].totalPriceanyrequired
Total price value used by this API operation.
data.result.offers[].currencyanyrequired
Currency value used by this API operation.
data.result.offers[].installmentMonthsanyrequired
Installment months value used by this API operation.
data.result.offers[].paymentBreakdownanyrequired
Payment breakdown value used by this API operation.
data.result.offers[].rankGroupanyrequired
Rank group value used by this API operation.
data.result.offers[].rankAbsoluteanyrequired
Rank absolute value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.meta.sampledAtintegerrequired
Sampled at value used by this API operation.
Minimum: 0

Any of option 2

NameTypeRequiredDescription
data.result.meta.sampledAtnullrequired
Sampled at value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.meta.retrievedAtintegerrequired
Retrieved at value used by this API operation.
Minimum: 0

Any of option 2

NameTypeRequiredDescription
data.result.meta.retrievedAtnullrequired
Retrieved at value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].sellerNamestringrequired
Seller name value used by this API operation.
Maximum length: 1024

Any of option 2

NameTypeRequiredDescription
data.result.offers[].sellerNamenullrequired
Seller name value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].titlestringrequired
Title value used by this API operation.
Maximum length: 1024

Any of option 2

NameTypeRequiredDescription
data.result.offers[].titlenullrequired
Title value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].domainstringrequired
Domain value used by this API operation.
Maximum length: 1024

Any of option 2

NameTypeRequiredDescription
data.result.offers[].domainnullrequired
Domain value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].urlstringrequired
Url value used by this API operation.
Maximum length: 4096

Any of option 2

NameTypeRequiredDescription
data.result.offers[].urlnullrequired
Url value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].detailsstringrequired
Details value used by this API operation.
Maximum length: 8192

Any of option 2

NameTypeRequiredDescription
data.result.offers[].detailsnullrequired
Details value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].basePricenumberrequired
Base price value used by this API operation.
Minimum: 0

Any of option 2

NameTypeRequiredDescription
data.result.offers[].basePricenullrequired
Base price value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].taxnumberrequired
Tax value used by this API operation.
Minimum: 0

Any of option 2

NameTypeRequiredDescription
data.result.offers[].taxnullrequired
Tax value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].shippingPricenumberrequired
Shipping price value used by this API operation.
Minimum: 0

Any of option 2

NameTypeRequiredDescription
data.result.offers[].shippingPricenullrequired
Shipping price value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].totalPricenumberrequired
Total price value used by this API operation.
Minimum: 0

Any of option 2

NameTypeRequiredDescription
data.result.offers[].totalPricenullrequired
Total price value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].currencystringrequired
Currency value used by this API operation.
Pattern: ^[A-Z]{3}$

Any of option 2

NameTypeRequiredDescription
data.result.offers[].currencynullrequired
Currency value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].installmentMonthsintegerrequired
Installment months value used by this API operation.
Minimum: 0

Any of option 2

NameTypeRequiredDescription
data.result.offers[].installmentMonthsnullrequired
Installment months value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].paymentBreakdownstringrequired
Payment breakdown value used by this API operation.
Maximum length: 8192

Any of option 2

NameTypeRequiredDescription
data.result.offers[].paymentBreakdownnullrequired
Payment breakdown value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].rankGroupintegerrequired
Rank group value used by this API operation.
Minimum: 0

Any of option 2

NameTypeRequiredDescription
data.result.offers[].rankGroupnullrequired
Rank group value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.result.offers[].rankAbsoluteintegerrequired
Rank absolute value used by this API operation.
Minimum: 0

Any of option 2

NameTypeRequiredDescription
data.result.offers[].rankAbsolutenullrequired
Rank absolute value used by this API operation.

Any of option 2

NameTypeRequiredDescription
data.resultnullrequired
Result value used by this API operation.

One of option 2 — requires callId, status, reason, retryable

NameTypeRequiredDescription
dataobjectrequired
Data value used by this API operation.
data.reasonstringrequired
Reason value used by this API operation.
data.callIdstring | nullrequired
Call id value used by this API operation.
data.statusstringrequired
Status value used by this API operation.
data.retryablebooleanrequired
Retryable value used by this API operation.
data.taskIdstring | nulloptional
Task id value used by this API operation.

Any of option 2

NameTypeRequiredDescription
datanullrequired
Data value used by this API operation.

Examples

Example arguments

{
  "task_id": "22222222-2222-4222-8222-222222222222",
  "productRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}

Example structuredContent

{
  "data": {
    "status": "PROCESSING",
    "retryable": false,
    "reason": "IN_PROGRESS",
    "callId": "00000000-0000-4000-8000-000000000001"
  },
  "code": 0,
  "msg": null,
  "ts": "0",
  "time": "2026-01-01 00:00:00",
  "cost": "-1",
  "traceId": null
}