Nexscope

WooCommerce Product Categories API

Retrieve WooCommerce product categories from a specified public store with Nexscope. Access structured catalog data without a merchant key.

Cost10 credits / call
Try online
POST · https://api.nexscope.ai/woocommerce/productCategoriesMCP · nexscope_woocommerce_product_categories

What this API does

Retrieve WooCommerce product categories from a specified public store with Nexscope. The request accepts storeUrl, pageNum, pageSize, keyword, hideEmpty. Its documented result includes cacheHit, categories.count, categories.description, categories.id, categories.imageUrl, categories.name, categories.parentId, categories.slug.

WooCommerce Product Categories API API use cases

Inspect a candidate product

To inspect a candidate product, a marketplace analyst submits storeUrl and pageNum to WooCommerce Product Categories API. The returned cacheHit, categories.count, categories.description help inspect the documented attributes of the candidate product.

Compare listing details

A marketplace analyst uses WooCommerce Product Categories API with storeUrl and pageNum to compare listing details. The returned cacheHit, categories.count, categories.description help compare product details with another shortlisted listing.

Prepare product evidence for a sourcing review

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

WooCommerce Product Categories API API FAQ

What does the WooCommerce Product Categories API API return?

Retrieve WooCommerce product categories from a specified public store with Nexscope. The documented output includes cacheHit, categories.count, categories.description, categories.id, categories.imageUrl, categories.name, categories.parentId, categories.slug. It corresponds to the supplied storeUrl, pageNum, pageSize, keyword, hideEmpty. 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 Categories API 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 Categories API API from my app or an MCP client?

Send a POST request to https://api.nexscope.ai/woocommerce/productCategories 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_categories. 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/productCategories
MCP method
nexscope_woocommerce_product_categories

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/productCategories

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

Code example

{
  "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/productCategories

Run this API

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

Endpoint

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

Request parameters

NameTypeRequiredDescription
storeUrlstringrequired
Public HTTPS store root or WordPress installation path.
Example: https://example.com
pageNumintegeroptional
Page number, default 1.
Example: 1
pageSizeintegeroptional
Page size, default 20, maximum 100.
Example: 20
keywordstringoptional
Search within this store; at most 200 characters.
Example: shirt
hideEmptybooleanoptional
Hide terms without products; defaults to the store's true setting.
Example: true

Response example

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

{
  "code": 0,
  "cost": "-1",
  "data": {
    "cacheHit": false,
    "categories": [
      {
        "count": 1,
        "description": "",
        "id": "1",
        "imageUrl": "",
        "name": "Color",
        "parentId": "0",
        "slug": "blue",
        "url": ""
      }
    ],
    "fetchedAt": "1792972800000",
    "hasMore": false,
    "pageNum": 1,
    "pageSize": 20,
    "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, categories, pageNum, pageSize

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.categoriesarrayrequired
Normalized public data. Missing optional values are null or empty strings.
Example: []
data.categories[]objectrequired
Item in data categories.
data.categories[].countanyoptional
Count value used by this API operation.
data.categories[].descriptionstringrequired
Plain text or public URL; empty when unavailable. Images are not fetched.
Example:
data.categories[].idstringrequired
Store-scoped ID string.
Example: 1
data.categories[].imageUrlstringrequired
Plain text or public URL; empty when unavailable. Images are not fetched.
Example:
data.categories[].namestringrequired
Plain text name.
Example: Color
data.categories[].parentIdanyoptional
Parent id value used by this API operation.
data.categories[].slugstringrequired
Plain text or public URL; empty when unavailable. Images are not fetched.
Example: blue
data.categories[].urlstringrequired
Plain text or public URL; empty when unavailable. Images are not fetched.
Example:
data.fetchedAtstringrequired
Fetch time in epoch milliseconds; preserved on cache hits.
Example: 1792972800000
data.hasMoreanyoptional
Has more value used by this API operation.
data.pageNumintegerrequired
Pagination metadata; omitted upstream totals become null.
Example: 1
data.pageSizeintegerrequired
Pagination metadata; omitted upstream totals become null.
Example: 20
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.categories[].countintegeroptional
Associated product count, null when unavailable.
Example: 1

Any of option 2

NameTypeRequiredDescription
data.categories[].countnulloptional
Count value used by this API operation.

Any of option 1

NameTypeRequiredDescription
data.categories[].parentIdstringoptional
Parent ID; 0 is a root term, null means unavailable.
Example: 0

Any of option 2

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

Any of option 1

NameTypeRequiredDescription
data.hasMorebooleanoptional
Null when upstream 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.totalintegeroptional
Pagination metadata; omitted upstream totals become null.
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; omitted upstream totals become null.
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_categories",
    "arguments": {
      "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

Data Example

Request parameters

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

Response

{
  "code": 0,
  "msg": null,
  "data": {
    "storeUrl": "https://cipherskincare.com",
    "categories": [
      {
        "id": "48",
        "name": "Cleanser",
        "slug": "cleanser",
        "description": "Efficient and luxurious.",
        "parentId": "0",
        "count": 1,
        "imageUrl": "https://cipherskincare.com/wp-content/uploads/2020/01/beautiful-mature-woman.jpg.jpg",
        "url": "https://cipherskincare.com/product-category/cleanser/"
      },
      {
        "id": "117",
        "name": "Eyes",
        "slug": "eyes",
        "description": "The ultimate in eye care.",
        "parentId": "0",
        "count": 2,
        "imageUrl": "https://cipherskincare.com/wp-content/uploads/2024/08/close-up-eye.jpg",
        "url": "https://cipherskincare.com/product-category/eyes/"
      }
    ],
    "pageNum": 1,
    "pageSize": 2,
    "total": 6,
    "totalPages": 3,
    "hasMore": true,
    "fetchedAt": "1793089685947",
    "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/productCategories
MCP method
nexscope_woocommerce_product_categories
cURL
curl -X POST \
  https://api.nexscope.ai/woocommerce/productCategories \
  -H "Authorization: Bearer nk-..." \
  -H "Content-Type: application/json" \
  -d '{ "storeUrl": "https://example.com" }'
Response
No response yet. Run the request to see the response here.

Related APIs