IMPORTANT ASYNCHRONOUS TASK WORKFLOW
- Call this MCP generation tool once and read taskId from structuredContent.
- Do not call generation again while pending or running.
- Query nexscope_media_task_result with this skill slug, the exact taskId, and the same bearer credential using progressive backoff.
Search Results Rankings
Shopping Seller Offers
Source-bound Google Shopping seller offers with observed prices and explicit missing evidence.
nexscope_seo_shopping_seller_offershttps://api.nexscope.ai/mcptools/callAuthentication
Use OAuth 2.1 Authorization Code with PKCE and the mcp:tools scope. API keys remain supported as a compatibility option.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxIf authentication fails, ask the user to open API Access and copy a valid key.
Call this MCP tool
Initialize an MCP 2025-11-25 Streamable HTTP session at https://api.nexscope.ai/mcp, then use tools/call.
{
"jsonrpc": "2.0",
"id": "seo-shopping-seller-offers-1",
"method": "tools/call",
"params": {
"name": "nexscope_seo_shopping_seller_offers",
"arguments": {
"productRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"task_id": "22222222-2222-4222-8222-222222222222"
}
}
}MCP 2025-11-25 · Streamable HTTPProgress is delivered on the original POST SSE response. GET SSE carries notifications; reconnecting must query existing asynchronous work rather than submit again.
Asynchronous task workflow
- 1. Create once
Keep the returned taskId.
- 2. Query with backoff
Use nexscope_media_task_result after 5 seconds, then 10, 20, and 30 seconds.
- 3. Use final result
Stop at success, failure, or timeout.
{
"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"
}
}
}Arguments
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
code | integer | required | 0 means accepted or successful; nonzero is a platform error. |
cost | string | required | Elapsed milliseconds, never credits; -1 outside web requests. |
data | any | required | Data value used by this API operation. |
msg | string | null | required | Msg value used by this API operation. |
time | string | required | Server local time: yyyy-MM-dd HH:mm:ss. |
traceId | string | null | required | Trace id value used by this API operation. |
ts | string | required | Epoch milliseconds. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data | any | required | Data value used by this API operation. |
One of option 1 — requires callId, status, result
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Data value used by this API operation. |
data.callId | string | required | Call id value used by this API operation. |
data.completedAt | string | integer | null | optional | Completed at value used by this API operation. |
data.coverage | object | null | optional | Coverage value used by this API operation. |
data.requestedAt | string | integer | null | optional | Requested at value used by this API operation. |
data.result | any | required | Result value used by this API operation. |
data.schemaVersion | string | optional | Schema version value used by this API operation. |
data.source | string | optional | Source value used by this API operation. |
data.status | string | required | Status value used by this API operation. |
data.usage | object | null | optional | Usage value used by this API operation. |
data.usage.billingStatus | string | null | optional | Billing status value used by this API operation. |
data.usage.chargedCredits | string | integer | null | optional | Charged credits value used by this API operation. |
Any of option 1 — requires meta, sourceCallId, productRef, offers
| Name | Type | Required | Description |
|---|---|---|---|
data.result | object | required | Result value used by this API operation. |
data.result.meta | object | required | Meta value used by this API operation. |
data.result.meta.market | object | required | Market value used by this API operation. |
data.result.meta.market.country | string | required | Country value used by this API operation. Constant: US |
data.result.meta.market.language | string | required | Language value used by this API operation. Constant: en |
data.result.meta.market.locationCode | integer | required | Location code value used by this API operation. Constant: 2840 |
data.result.meta.missing | array | required | Missing value used by this API operation. Maximum items: 100 |
data.result.meta.missing[] | object | required | Item in data result meta missing. |
data.result.meta.missing[].path | string | required | Path value used by this API operation. Maximum length: 256 |
data.result.meta.missing[].reason | string | required | Reason value used by this API operation. Allowed: MISSING, NULL, INVALID, UNSUPPORTED, TRUNCATED |
data.result.meta.missingOverflow | boolean | required | Missing overflow value used by this API operation. |
data.result.meta.retrievedAt | any | required | Retrieved at value used by this API operation. |
data.result.meta.sampledAt | any | required | Sampled at value used by this API operation. |
data.result.meta.source | string | required | Source value used by this API operation. Constant: DATAFORSEO_GOOGLE_SHOPPING_SELLERS |
data.result.meta.truncated | boolean | required | Truncated value used by this API operation. |
data.result.offers | array | required | Offers value used by this API operation. Maximum items: 10 |
data.result.offers[] | object | required | Item in data result offers. |
data.result.offers[].basePrice | any | required | Base price value used by this API operation. |
data.result.offers[].currency | any | required | Currency value used by this API operation. |
data.result.offers[].details | any | required | Details value used by this API operation. |
data.result.offers[].domain | any | required | Domain value used by this API operation. |
data.result.offers[].installmentMonths | any | required | Installment months value used by this API operation. |
data.result.offers[].paymentBreakdown | any | required | Payment breakdown value used by this API operation. |
data.result.offers[].rankAbsolute | any | required | Rank absolute value used by this API operation. |
data.result.offers[].rankGroup | any | required | Rank group value used by this API operation. |
data.result.offers[].sellerName | any | required | Seller name value used by this API operation. |
data.result.offers[].shippingPrice | any | required | Shipping price value used by this API operation. |
data.result.offers[].tax | any | required | Tax value used by this API operation. |
data.result.offers[].title | any | required | Title value used by this API operation. |
data.result.offers[].totalPrice | any | required | Total price value used by this API operation. |
data.result.offers[].url | any | required | Url value used by this API operation. |
data.result.productRef | string | required | Product ref value used by this API operation. Pattern: ^[0-9a-f]{64}$ |
data.result.sourceCallId | string | required | Source call id value used by this API operation. Format: uuid |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.meta.retrievedAt | integer | required | Retrieved at value used by this API operation. Minimum: 0 Maximum: 9007199254740991 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.meta.retrievedAt | null | required | Retrieved at value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.meta.sampledAt | integer | required | Sampled at value used by this API operation. Minimum: 0 Maximum: 9007199254740991 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.meta.sampledAt | null | required | Sampled at value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].basePrice | number | required | Base price value used by this API operation. Minimum: 0 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].basePrice | null | required | Base price value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].currency | string | required | Currency value used by this API operation. Pattern: ^[A-Z]{3}$ |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].currency | null | required | Currency value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].details | string | required | Details value used by this API operation. Maximum length: 8192 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].details | null | required | Details value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].domain | string | required | Domain value used by this API operation. Maximum length: 1024 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].domain | null | required | Domain value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].installmentMonths | integer | required | Installment months value used by this API operation. Minimum: 0 Maximum: 9007199254740991 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].installmentMonths | null | required | Installment months value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].paymentBreakdown | string | required | Payment breakdown value used by this API operation. Maximum length: 8192 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].paymentBreakdown | null | required | Payment breakdown value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].rankAbsolute | integer | required | Rank absolute value used by this API operation. Minimum: 0 Maximum: 9007199254740991 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].rankAbsolute | null | required | Rank absolute value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].rankGroup | integer | required | Rank group value used by this API operation. Minimum: 0 Maximum: 9007199254740991 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].rankGroup | null | required | Rank group value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].sellerName | string | required | Seller name value used by this API operation. Maximum length: 1024 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].sellerName | null | required | Seller name value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].shippingPrice | number | required | Shipping price value used by this API operation. Minimum: 0 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].shippingPrice | null | required | Shipping price value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].tax | number | required | Tax value used by this API operation. Minimum: 0 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].tax | null | required | Tax value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].title | string | required | Title value used by this API operation. Maximum length: 1024 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].title | null | required | Title value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].totalPrice | number | required | Total price value used by this API operation. Minimum: 0 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].totalPrice | null | required | Total price value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].url | string | required | Url value used by this API operation. Maximum length: 4096 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result.offers[].url | null | required | Url value used by this API operation. |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.result | null | required | Result value used by this API operation. |
One of option 2 — requires callId, status, reason, retryable
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Data value used by this API operation. |
data.callId | string | null | required | Call id value used by this API operation. |
data.reason | string | required | Reason value used by this API operation. |
data.retryable | boolean | required | Retryable value used by this API operation. |
data.status | string | required | Status value used by this API operation. |
data.taskId | string | null | optional | Task id value used by this API operation. |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data | null | required | Data value used by this API operation. |
Examples
Example arguments
{
"productRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"task_id": "22222222-2222-4222-8222-222222222222"
}Example structuredContent
{
"code": 0,
"cost": "-1",
"data": {
"callId": "00000000-0000-4000-8000-000000000001",
"reason": "IN_PROGRESS",
"retryable": false,
"status": "PROCESSING"
},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": null,
"ts": "0"
}