Nexscope

WooCommerce Product Variations

Explore the public variations of a WooCommerce product, such as different sizes or colors, using its store address and product ID.

Cost10 credits / call
Try online
POST · https://api.nexscope.ai/woocommerce/productVariationsMCP · nexscope_woocommerce_product_variations

What this API does

Explore the public variations of a WooCommerce product, such as different sizes or colors, using its store address and product ID. The request accepts storeUrl, productId, pageNum, pageSize. Its documented result includes cacheHit, fetchedAt, hasMore, pageNum, pageSize, parentId, products.description, products.id.

WooCommerce Product Variations API use cases

Inspect a candidate product

To inspect a candidate product, a marketplace analyst submits storeUrl and productId to WooCommerce Product Variations. The returned cacheHit, fetchedAt, hasMore help inspect the documented attributes of the candidate product.

Compare listing details

A marketplace analyst uses WooCommerce Product Variations with storeUrl and productId to compare listing details. The returned cacheHit, fetchedAt, hasMore help compare product details with another shortlisted listing.

Prepare product evidence for a sourcing review

For this workflow, a marketplace analyst calls WooCommerce Product Variations with storeUrl and productId to prepare product evidence for a sourcing review. The result helps record product facts before a sourcing discussion.

WooCommerce Product Variations API FAQ

What does the WooCommerce Product Variations API return?

Explore the public variations of a WooCommerce product, such as different sizes or colors, using its store address and product ID. The documented output includes cacheHit, fetchedAt, hasMore, pageNum, pageSize, parentId, products.description, products.id. It corresponds to the supplied storeUrl, productId, pageNum, pageSize. 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 WooCommerce Product Variations API cost?

The current documented cost is 10 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 WooCommerce Product Variations API from my app or an MCP client?

Send a POST request to https://api.nexscope.ai/woocommerce/productVariations 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_woocommerce_product_variations. 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/woocommerce/productVariations
MCP method
nexscope_woocommerce_product_variations

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/woocommerce/productVariations

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/woocommerce/productVariations' \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "productId": "34",
  "storeUrl": "https://example.com"
}'

Code example

{
  "productId": "34",
  "storeUrl": "https://example.com"
}

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 API key (code 11209), 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/ WooCommerce
POSThttps://api.nexscope.ai/woocommerce/productVariations

Run this API

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

Endpoint

MethodPOST
Pathhttps://api.nexscope.ai/woocommerce/productVariations
AuthBearer API key
Content-Typeapplication/json

Request parameters

NameTypeRequiredDescription
storeUrlstringrequired
Public HTTPS store root or WordPress installation path, without query or fragment.
Example: https://example.com
productIdstringrequired
Store-scoped positive product ID, at most 19 decimal digits.
Example: 34
pageNumintegeroptional
Page number, default 1.
Example: 1
pageSizeintegeroptional
Page size, default 20, maximum 100.
Example: 20

Response example

Platform response envelope. code 0 indicates success or acceptance; data contains the business result.

{
  "code": 0,
  "cost": "-1",
  "data": {
    "cacheHit": false,
    "fetchedAt": "1792972800000",
    "hasMore": false,
    "pageNum": 1,
    "pageSize": 20,
    "parentId": "34",
    "products": [
      {
        "description": "Cotton shirt.",
        "id": "34",
        "images": [
          {
            "alt": "Shirt",
            "url": "https://example.com/image.jpg"
          }
        ],
        "isInStock": true,
        "isPasswordProtected": false,
        "name": "Cotton Shirt",
        "prices": {
          "currency": "USD",
          "minorUnit": 2,
          "price": "11.05"
        },
        "shortDescription": "Cotton shirt.",
        "sku": "SHIRT-34",
        "type": "simple",
        "url": "https://example.com/product/shirt",
        "variation": ""
      }
    ],
    "storeUrl": "https://example.com",
    "total": 1,
    "totalPages": 1
  },
  "msg": null,
  "time": "2026-01-01 00:00:00",
  "traceId": null,
  "ts": "0"
}

Response fields

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

Any of option 1 — requires storeUrl, fetchedAt, cacheHit, products, pageNum, pageSize, parentId

NameTypeRequiredDescription
dataobjectrequired
Data value used by this API operation.
data.cacheHitbooleanrequired
Whether the response was served from the anonymous 60-second cache.
Example: false
data.fetchedAtstringrequired
Fetch time in epoch milliseconds, not the product modification time.
Example: 1792972800000
data.hasMoreanyoptional
Has more value used by this API operation.
data.pageNumintegerrequired
Pagination metadata; totals are null when the store omits headers.
Example: 1
data.pageSizeintegerrequired
Pagination metadata; totals are null when the store omits headers.
Example: 20
data.parentIdstringrequired
Requested parent product ID; every SKU must match it.
Example: 34
data.productsarrayrequired
Normalized public products.
Example: []
data.products[]objectrequired
Item in data products.
data.products[].descriptionanyoptional
Description value used by this API operation.
data.products[].idanyoptional
Id value used by this API operation.
data.products[].imagesarrayrequired
Public image URLs; images are not fetched by this API.
Example: []
data.products[].images[]objectrequired
Item in data products[] images.
data.products[].images[].altstringrequired
Plain text alternative label.
Example: Shirt
data.products[].images[].urlstringrequired
Image URL.
Example: https://example.com/image.jpg
data.products[].isInStockanyoptional
Is in stock value used by this API operation.
data.products[].isPasswordProtectedanyoptional
Is password protected value used by this API operation.
data.products[].nameanyoptional
Name value used by this API operation.
data.products[].parentIdanyoptional
Parent id value used by this API operation.
data.products[].pricesobjectrequired
Anonymous store pricing; decimal values are strings for exact precision.
Example: {}
data.products[].prices.currencystringrequired
Currency code.
Example: USD
data.products[].prices.maxPriceanyoptional
Max price value used by this API operation.
data.products[].prices.maxPriceMinoranyoptional
Max price minor value used by this API operation.
data.products[].prices.minPriceanyoptional
Min price value used by this API operation.
data.products[].prices.minPriceMinoranyoptional
Min price minor value used by this API operation.
data.products[].prices.minorUnitintegerrequired
Currency decimal precision.
Example: 2
data.products[].prices.priceanyoptional
Price value used by this API operation.
data.products[].prices.priceMinoranyoptional
Price minor value used by this API operation.
data.products[].prices.regularPriceanyoptional
Regular price value used by this API operation.
data.products[].prices.regularPriceMinoranyoptional
Regular price minor value used by this API operation.
data.products[].prices.salePriceanyoptional
Sale price value used by this API operation.
data.products[].prices.salePriceMinoranyoptional
Sale price minor value used by this API operation.
data.products[].shortDescriptionanyoptional
Short description value used by this API operation.
data.products[].skuanyoptional
Sku value used by this API operation.
data.products[].stockQuantityanyoptional
Stock quantity value used by this API operation.
data.products[].typeanyoptional
Type value used by this API operation.
data.products[].urlanyoptional
Url value used by this API operation.
data.products[].variationanyoptional
Variation value used by this API operation.
data.storeUrlstringrequired
Normalized store identity.
Example: https://example.com
data.totalanyoptional
Total value used by this API operation.
data.totalPagesanyoptional
Total pages value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.hasMorebooleanoptional
Null when total pages are unavailable.
Example: false

Any of option 2

NameTypeRequiredDescription
data.hasMorenulloptional
Has more value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].descriptionstringoptional
Plain text or public product identifier.
Example: Cotton shirt.

Any of option 2

NameTypeRequiredDescription
data.products[].descriptionnulloptional
Description value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].idstringoptional
Plain text or public product identifier.
Example: 34

Any of option 2

NameTypeRequiredDescription
data.products[].idnulloptional
Id value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].isInStockbooleanoptional
Store value, null when unavailable.
Example: true

Any of option 2

NameTypeRequiredDescription
data.products[].isInStocknulloptional
Is in stock value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].isPasswordProtectedbooleanoptional
Store value, null when unavailable.
Example: false

Any of option 2

NameTypeRequiredDescription
data.products[].isPasswordProtectednulloptional
Is password protected value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].namestringoptional
Plain text or public product identifier.
Example: Cotton Shirt

Any of option 2

NameTypeRequiredDescription
data.products[].namenulloptional
Name value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].parentIdstringoptional
Store value; null when unavailable.
Example: null

Any of option 2

NameTypeRequiredDescription
data.products[].parentIdnulloptional
Parent id value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].prices.maxPricestringoptional
Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount.
Example: null

Any of option 2

NameTypeRequiredDescription
data.products[].prices.maxPricenulloptional
Max price value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].prices.maxPriceMinorstringoptional
Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount.
Example: null

Any of option 2

NameTypeRequiredDescription
data.products[].prices.maxPriceMinornulloptional
Max price minor value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].prices.minPricestringoptional
Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount.
Example: null

Any of option 2

NameTypeRequiredDescription
data.products[].prices.minPricenulloptional
Min price value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].prices.minPriceMinorstringoptional
Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount.
Example: null

Any of option 2

NameTypeRequiredDescription
data.products[].prices.minPriceMinornulloptional
Min price minor value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].prices.pricestringoptional
Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount.
Example: 11.05

Any of option 2

NameTypeRequiredDescription
data.products[].prices.pricenulloptional
Price value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].prices.priceMinorstringoptional
Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount.
Example: null

Any of option 2

NameTypeRequiredDescription
data.products[].prices.priceMinornulloptional
Price minor value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].prices.regularPricestringoptional
Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount.
Example: null

Any of option 2

NameTypeRequiredDescription
data.products[].prices.regularPricenulloptional
Regular price value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].prices.regularPriceMinorstringoptional
Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount.
Example: null

Any of option 2

NameTypeRequiredDescription
data.products[].prices.regularPriceMinornulloptional
Regular price minor value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].prices.salePricestringoptional
Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount.
Example: null

Any of option 2

NameTypeRequiredDescription
data.products[].prices.salePricenulloptional
Sale price value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].prices.salePriceMinorstringoptional
Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount.
Example: null

Any of option 2

NameTypeRequiredDescription
data.products[].prices.salePriceMinornulloptional
Sale price minor value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].shortDescriptionstringoptional
Plain text or public product identifier.
Example: Cotton shirt.

Any of option 2

NameTypeRequiredDescription
data.products[].shortDescriptionnulloptional
Short description value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].skustringoptional
Plain text or public product identifier.
Example: SHIRT-34

Any of option 2

NameTypeRequiredDescription
data.products[].skunulloptional
Sku value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].stockQuantityintegeroptional
Always null: public Store API does not expose exact inventory.
Example: null

Any of option 2

NameTypeRequiredDescription
data.products[].stockQuantitynulloptional
Stock quantity value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].typestringoptional
Store value; null when unavailable.
Example: simple

Any of option 2

NameTypeRequiredDescription
data.products[].typenulloptional
Type value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].urlstringoptional
Plain text or public product identifier.
Example: https://example.com/product/shirt

Any of option 2

NameTypeRequiredDescription
data.products[].urlnulloptional
Url value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.products[].variationstringoptional
Plain text or public product identifier.
Example:

Any of option 2

NameTypeRequiredDescription
data.products[].variationnulloptional
Variation value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.totalintegeroptional
Pagination metadata; totals are null when the store omits headers.
Example: 1

Any of option 2

NameTypeRequiredDescription
data.totalnulloptional
Total value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.totalPagesintegeroptional
Pagination metadata; totals are null when the store omits headers.
Example: 1

Any of option 2

NameTypeRequiredDescription
data.totalPagesnulloptional
Total pages value used by this API operation.

Any of option 2

NameTypeRequiredDescription
datanullrequired
Data value used by this API operation.

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 API key (code 11209), 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_woocommerce_product_variations",
    "arguments": {
      "productId": "34",
      "storeUrl": "https://example.com"
    }
  }
}

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 the WooCommerce Product Variations API provide, and how might I use it?

AI answer

Given a store and productId, this API returns a paged list of documented product entries associated with that parent. The example shows a simple product, so the response alone does not establish that every entry is a distinct variation.

Data categoryDocumented fieldsWhat the values mean
Product identityparentId, products.id, products.type, products.name, products.skuThe requested parent ID and each returned product's identity, type, name, and SKU.
Variation and descriptionproducts.variation, products.description, products.shortDescriptionAny reported variation label and product descriptions.
Priceproducts.prices.currency, products.prices.minorUnit, products.prices.priceThe reported currency, currency precision, and price value.
Availability and accessproducts.isInStock, products.isPasswordProtectedReported stock and password protection flags.
Product presentationproducts.url, products.images.url, products.images.altA product page link and image links with alternative text.
Result navigationtotal, totalPages, hasMore, pageNum, pageSizeCounts and paging values for the returned entries.
  • Inspect the SKUs and types returned for a known product ID.
    • Prompt example: “I manage an online store catalog. Could you inspect the SKUs and types returned for a known product ID? Show the relevant returned evidence and tell me what input you need from me.”
  • Compare reported prices and stock flags among returned entries when several are present.
    • Prompt example: “I manage an online store catalog. Could you compare reported prices and stock flags among returned entries when several are present? Show the returned values behind the comparison, and mark missing data.”
  • Display a product selector with names, images, and variation labels where those values are supplied.
    • Prompt example: “I manage an online store catalog. Could you display a product selector with names, images, and variation labels where those values are supplied? Show the relevant returned evidence and tell me what input you need from me.”
  • Page through the entries associated with a parent product. Prices and stock flags reflect the returned store data, not a guarantee of current availability.
    • Prompt example: “I manage an online store catalog. Could you page through the entries associated with a parent product? Show the relevant returned evidence and tell me what input you need from me.”

Data Example

Sample request and response

Request parameters

{
  "storeUrl": "https://cipherskincare.com",
  "productId": "20183",
  "pageSize": 2
}

Response

{
  "code": 0,
  "msg": null,
  "data": {
    "storeUrl": "https://cipherskincare.com",
    "products": [
      {
        "id": "20188",
        "parentId": "20183",
        "type": "variation",
        "name": "The Anomaly",
        "sku": "CIP-ANM-15",
        "url": "https://cipherskincare.com/product/the-anomaly/?attribute_pa_size=15ml",
        "description": "",
        "shortDescription": "",
        "variation": "Size: 15ml",
        "isInStock": true,
        "stockQuantity": null,
        "prices": {
          "currency": "USD",
          "minorUnit": 2,
          "priceMinor": "10500",
          "price": "105.00",
          "regularPriceMinor": "10500",
          "regularPrice": "105.00",
          "salePriceMinor": "10500",
          "salePrice": "105.00",
          "minPrice": null,
          "maxPrice": null,
          "minPriceMinor": null,
          "maxPriceMinor": null
        },
        "images": [
          {
            "url": "https://cipherskincare.com/wp-content/uploads/2024/08/cipher-skincare-the-anomaly-eye-matrix-serum-concentrate-15ml-1.jpg",
            "alt": "best eye serum cipher skincare the anomaly eye matrix concentrate targets under eye and lids"
          }
        ]
      }
    ],
    "pageNum": 1,
    "pageSize": 2,
    "total": 1,
    "totalPages": 1,
    "hasMore": false,
    "parentId": "20183",
    "fetchedAt": "1793089683164",
    "cacheHit": false
  }
}

Online test

Execute the current API with your API key and JSON payload. Online tests use this site's configured API environment; the Endpoint and copyable examples use the public integration address.

10 credits / callAPI usage records

Try it

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

Endpoint
/woocommerce/productVariations
MCP method
nexscope_woocommerce_product_variations
cURL
curl -X POST \
  https://api.nexscope.ai/woocommerce/productVariations \
  -H "Authorization: Bearer nk-..." \
  -H "Content-Type: application/json" \
  -d '{ "productId": "34", "storeUrl": "https://example.com" }'
Response
No response yet. Run the request to see the response here.

Related APIs