# Product Offers Extractor for Shopping Agents

> Product Offers Extractor for Shopping Agents is a paid API for AI agents from agent-utilities.agent-utilities.workers.dev, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-14).

Extracts and structures Product/Offer JSON-LD data from raw HTML to help agents compare product offers, prices, and availability with explicit scope warnings

## Facts

- Endpoint: POST https://agent-utilities.agent-utilities.workers.dev/v1/reports/product-offers?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/product-offers-extractor-for-shopping-agents-124bb455
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_JlRX29zGJMfCib6b2JaU3

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 product-offers-extractor-for-shopping-agents-124bb455 -d '<json body>'
```

Example prompt: I just scraped the HTML from this product page — can you pull out all the product offers including prices, availability, SKUs, and any warnings about missing or invalid fields? Here's the HTML, and the base URL is https://example.com/product/123.

## When to prefer this

Choose this endpoint when you have raw HTML from a product or shopping page and need to extract structured Product/Offer JSON-LD data without making additional HTTP requests. It is ideal for agents that scrape pages themselves and need to parse pricing, availability, SKUs, and GTINs from structured markup in a single call. Prefer it over generic HTML parsers when you specifically need JSON-LD e-commerce schema extraction with built-in validation warnings and source pointers. It is not suitable for fetching live prices, verifying stock in real time, or executing purchases.

## Known failure modes

- HTML field missing or empty — returns error requiring html input
- No JSON-LD Product/Offer blocks found in HTML — returns empty offers array with productsFound=0
- Malformed JSON-LD blocks — counted as invalidBlocks with warnings
- Offers exceed maxOffers limit — result is truncated with truncated flag set to true
- Base URL not resolvable for relative URL resolution — canonical URLs may remain relative
- HTML too large — may cause timeout or truncation
- Unresolved offer references — counted in unresolvedReferences field
- Unsupported offer types — counted in unsupportedOffers field

## How this service works

Choose whole-pack quantities under supplied stock limits, compare product offers and keep unknown checkout costs visible. Free examples; paid HTTP and hosted MCP tools.

## Output

Returns structured product offer objects extracted from JSON-LD in the supplied HTML, each with product name, SKU, GTIN, offer type, price, currency, price range, URL, availability, item condition, price valid until, source block pointers, and an array of warnings. Also returns page metadata (title, description, canonical URL, language, robots, social tags), counts of products found without offers, invalid blocks, unresolved references, unsupported offers, and a truncation flag. A scope string clarifies that no live page fetch, script execution, or real-time price/stock verification is performed.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "html"
 ],
 "properties": {
  "html": {
   "type": "string"
  },
  "baseUrl": {
   "type": "string"
  },
  "maxOffers": {
   "type": "integer"
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "result": {
   "type": "object",
   "required": [
    "sourceUrl",
    "metadata",
    "productOffers",
    "scope"
   ],
   "properties": {
    "scope": {
     "type": "string",
     "const": "Source metadata and declared Product/Offer JSON-LD from the same supplied HTML. No page fetch, script execution, merchant verification or live price/stock check. Inspect offer warnings, source pointers, missing fields and truncation. Canonical URLs are page assertions; retain your original source URL."
    },
    "metadata": {
     "type": "object",
     "required": [
      "title",
      "description",
      "language",
      "canonicalUrl",
      "robots",
      "social"
     ],
     "properties": {
      "title": {
       "type": "string"
      },
      "robots": {
       "type": "string"
      },
      "social": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "name",
         "content"
        ],
        "properties": {
         "name": {
          "type": "string"
         },
         "content": {
          "type": "string"
         }
        },
        "additionalProperties": false
       }
      },
      "language": {
       "type": "string"
      },
      "description": {
       "type": "string"
      },
      "canonicalUrl": {
       "type": [
        "string",
        "null"
       ]
      }
     },
     "additionalProperties": false
    },
    "sourceUrl": {
     "type": [
      "string",
      "null"
     ]
    },
    "productOffers": {
     "type": "object",
     "required": [
      "offers",
      "productsFound",
      "productsWithoutOffers",
      "invalidBlocks",
      "unresolvedReferences",
      "unsupportedOffers",
      "truncated",
      "scope"
     ],
     "properties": {
      "scope": {
       "type": "string"
      },
      "offers": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "productName",
         "sku",
         "gtin",
         "offerType",
         "price",
         "currency",
         "lowPrice",
         "highPrice",
         "url",
         "availability",
         "itemCondition",
         "priceValidUntil",
         "source",
         "warnings"
        ],
        "properties": {
         "sku": {
          "type": [
           "string",
           "null"
          ]
         },
         "url": {
          "type": [
           "string",
           "null"
          ]
         },

… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/product-offers-extractor-for-shopping-agents-124bb455/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agent-utilities.agent-utilities.workers.dev](https://www.zero.xyz/host/agent-utilities.agent-utilities.workers.dev/llms.txt)
