# d402 Shopify Product Extractor

> d402 Shopify Product Extractor is a paid API for AI agents from gateway.d402.xyz, paid per call via x402, $0.01/call, status down (last checked 2026-09-15).

Extracts normalized product data (title, price, images, variants, availability, etc.) from a Shopify product page URL using the Shopify-specific adapter.

## Facts

- Endpoint: POST https://gateway.d402.xyz/v1/commerce/shopify/extract-product
- Price: $0.01/call
- Payment: x402
- Status: down
- Last checked: 2026-09-15
- Activations on Zero: 0
- Provider: gateway.d402.xyz
- Website: https://gateway.d402.xyz
- Canonical page: https://www.zero.xyz/c/gateway-d402-xyz-d402-shopify-product-extractor-95eece31
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_91BwaIqRACDQwErqN5cTO

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability gateway-d402-xyz-d402-shopify-product-extractor-95eece31 -d '<json body>'
```

Example prompt: Can you pull all the product details — title, price, variants, availability, and images — from this Shopify product page: https://some-shopify-store.myshopify.com/products/blue-wool-sweater?

## When to prefer this

Use this endpoint when you specifically need to extract product data from a Shopify store and want the Shopify-optimized adapter (better field accuracy, variant parsing, and confidence scores than the generic product extractor). Prefer this over the generic commerce.extract_product route when you know the target is a Shopify storefront. Use the Amazon, Walmart, or Target variants for those respective platforms.

## Known failure modes

- Non-Shopify URL submitted — adapter may fail or return low-confidence results
- Product page is behind a login or age gate — extraction fails with error status
- URL is malformed or unreachable — returns error status with error message
- Timeout exceeded (max 45000ms) — task returns error status
- Rate limiting or payment failure via x402 — request rejected before processing
- Product page uses non-standard Shopify theme — some fields may be null with low confidence scores

## How this service works

Paid d402 provider-scoped capability alias for commerce.extract_product.shopify@1. Workers use the Shopify adapter only, so this route can be tested and registered independently from other commerce providers.

## Output

Returns a taskId and status, plus a result object containing normalized product fields: title, price, currency, brand, SKU, images array, variants array, availability, description, rating, review count, seller, canonical URL, provider product ID, content hash, snapshot CID, extraction confidence scores per field, and metadata about the extractor version and fetch timestamp.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "url"
 ],
 "properties": {
  "url": {
   "type": "string",
   "format": "uri",
   "description": "Public product page URL to extract."
  },
  "sync": {
   "type": "boolean",
   "description": "Optional d402 sync flag. Defaults to gateway policy."
  },
  "locale": {
   "type": "string",
   "description": "Optional locale hint used by provider adapters, for example en-US."
  },
  "timeoutMs": {
   "type": "number",
   "maximum": 45000,
   "minimum": 1,
   "description": "Optional per-request timeout, capped by gateway policy."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "taskId",
  "status"
 ],
 "properties": {
  "error": {
   "type": [
    "string",
    "null"
   ]
  },
  "links": {
   "type": "object",
   "properties": {
    "task": {
     "type": "string"
    },
    "result": {
     "type": "string"
    },
    "receipt": {
     "type": "string"
    }
   }
  },
  "result": {
   "type": "object",
   "required": [
    "url",
    "title",
    "contentHash",
    "snapshotCid",
    "extractorVersion"
   ],
   "properties": {
    "sku": {
     "type": [
      "string",
      "null"
     ]
    },
    "url": {
     "type": "string"
    },
    "brand": {
     "type": [
      "string",
      "null"
     ]
    },
    "price": {
     "type": [
      "string",
      "number",
      "null"
     ]
    },
    "title": {
     "type": "string"
    },
    "images": {
     "type": "array",
     "items": {
      "type": "string"
     }
    },
    "rating": {
     "type": [
      "number",
      "null"
     ]
    },
    "seller": {
     "type": [
      "string",
      "null"
     ]
    },
    "currency": {
     "type": [
      "string",
      "null"
     ]
    },
    "evidence": {
     "type": "array",
     "items": {
      "type": "object"
     }
    },
    "provider": {
     "type": [
      "string",
      "null"
     ]
    },
    "variants": {
     "type": "array",
     "items": {
      "type": "object"
     }
    },
    "fetchedAt": {
     "type": "string"
    },
    "sourceCid": {
     "type": [
      "string",
      "null"
     ]
    },
    "confidence": {
     "type": [
      "number",
      "null"
     ]
    },
    "sourceHash": {
     "type": [
      "string",
      "null"
     ]
    },
    "sourceType": {
     "type": [
      "string",
      "null"
     ]
    },
    "contentHash": {
     "type": "string"
    },
    "description": {
     "type": [
      "string",
      "null"
     ]
    },
    "reviewCount": {
     "type": [
      "number",
      "null"
     ]
    },
    "serviceName": {
     "type": "string"
    },
    "snapshotCid": {
     "type": "string"
    },
    "availability": {
     "type": [
      "string",
      "null"
     ]
    },
    "canonicalUrl": {
     "type": [
      "string",
      "null"
     ]
    },
    "providerHost": {
     "type": [
      "string",
      "null"
     ]
    },
    "serviceVersion": {
     "type": "string"
    },
    "apiEndpointHost": {
     "type": [
      "string",
      "null"
     ]
    },
    "fieldConfidence": {
     "type": "object"
    },
    "ext
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/gateway-d402-xyz-d402-shopify-product-extractor-95eece31/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from gateway.d402.xyz](https://www.zero.xyz/host/gateway.d402.xyz/llms.txt)
