{
  "x402Version": 2,
  "id": 36550,
  "slug": "36550",
  "resource": "https://extract.tollkit.dev/extract",
  "description": "Product price lookup for AI agents: give any public product page URL, get the product's current price, currency, availability (in stock or not), name, brand, SKU and images as clean JSON. The page is rendered in a real browser, so JavaScript stores work, and the store's own schema.org product data is read first. For price checks, price monitoring and comparing stores before you buy.",
  "type": "http",
  "serviceName": "Product Price Lookup",
  "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1791089541/bazaar-icons/6490ef4ad700a0e0.png",
  "resourceType": "Monitoring",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0xBbfCE2D320dE6aB328Ba93A771c531ebFC9cE704",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "10000",
      "amountUsd": 0.01,
      "maxTimeoutSeconds": 300
    },
    {
      "scheme": "exact",
      "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
      "payTo": "HBasGEGD1szEkNCWckRoZg2vZGhzt7yLSixLgSHi3gYf",
      "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
      "amount": "10000",
      "amountUsd": 0.01,
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "properties": {
      "example": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "description": "schema.org/Product extracted from the rendered page. Fields the page does not state come back null rather than guessed.",
        "properties": {
          "cache_age_seconds": {
            "type": "integer"
          },
          "cached": {
            "description": "True when re-served from a recent render. Still a paid call, and the data is as old as cache_age_seconds says.",
            "type": "boolean"
          },
          "page": {
            "properties": {
              "fetchedAt": {
                "description": "ISO timestamp of the RENDER, not of this call. Older than now on a cached result.",
                "type": "string"
              },
              "finalUrl": {
                "type": "string"
              },
              "render_ms": {
                "type": "integer"
              },
              "status": {
                "type": "integer"
              },
              "title": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "url": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "product": {
            "properties": {
              "availability": {
                "enum": [
                  "in_stock",
                  "out_of_stock",
                  "preorder",
                  "unknown"
                ],
                "type": "string"
              },
              "brand": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "currency": {
                "description": "ISO 4217. Null whenever price is null.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "description": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "images": {
                "description": "Up to 5 absolute URLs copied from the page. Never invented.",
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "price": {
                "description": "Numeric, no symbol or separators.",
                "type": [
                  "number",
                  "null"
                ]
              },
              "sku": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "url": {
                "type": "string"
              },
              "variants": {
                "items": {
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "values": {
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                },
                "type": "array"
              }
            },
            "type": "object"
          },
          "provenance": {
            "description": "Where each field came from. `declared` fields match what the merchant published in schema.org JSON-LD or Open Graph tags — their own number, the one they stand behind. `inferred` fields were read off the page by a model and deserve less trust. Fields that came back null appear in neither list. Use this to decide which values you can act on directly and which are worth a second look.",
            "properties": {
              "declared": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "inferred": {
                "items": {
                  "type": "string"
                },
                "type": "array"
              },
              "source": {
                "enum": [
                  "json-ld",
                  "meta",
                  "json-ld+meta",
                  "none"
                ],
                "type": "string"
              }
            },
            "type": "object"
          },
          "redirect": {
            "description": "Present only when the browser landed somewhere other than the requested URL.",
            "properties": {
              "final": {
                "type": "string"
              },
              "requested": {
                "type": "string"
              }
            },
            "type": "object"
          }
        },
        "required": [
          "product",
          "page"
        ],
        "type": "object"
      }
    },
    "type": "object"
  },
  "extensions": {
    "bazaar": {
      "info": {
        "input": {
          "body": {
            "url": "https://www.scrapingcourse.com/ecommerce/product/affirm-water-bottle/"
          },
          "bodyType": "json",
          "method": "POST",
          "type": "http"
        },
        "output": {
          "example": {
            "cache_age_seconds": 0,
            "cached": false,
            "page": {
              "fetchedAt": "2026-10-04T12:00:00.000Z",
              "finalUrl": "https://www.scrapingcourse.com/ecommerce/product/affirm-water-bottle/",
              "render_ms": 2140,
              "status": 200,
              "title": "Affirm Water Bottle – Ecommerce Test Site to Learn Web Scraping",
              "url": "https://www.scrapingcourse.com/ecommerce/product/affirm-water-bottle/"
            },
            "product": {
              "availability": "in_stock",
              "brand": null,
              "currency": "USD",
              "description": "This is a simple product called Affirm Water Bottle",
              "images": [
                "https://www.scrapingcourse.com/ecommerce/wp-content/uploads/2024/03/ug06-lb-0.jpg"
              ],
              "name": "Affirm Water Bottle",
              "price": 7,
              "sku": "24-UG06",
              "url": "https://www.scrapingcourse.com/ecommerce/product/affirm-water-bottle/",
              "variants": []
            },
            "provenance": {
              "declared": [
                "name",
                "description",
                "sku",
                "price",
                "currency",
                "availability",
                "images"
              ],
              "inferred": [],
              "source": "json-ld"
            }
          },
          "type": "json"
        }
      },
      "schema": {
        "properties": {
          "input": {
            "properties": {
              "body": {
                "properties": {
                  "allow_redirect": {
                    "default": false,
                    "description": "By default a URL that redirects to what looks like a different page (a discontinued item bouncing to its category listing) is refused free of charge rather than answered with the wrong product.",
                    "type": "boolean"
                  },
                  "url": {
                    "description": "Absolute https:// URL of ONE product page. Not a search or category page, not a login-gated page, and not a private address.",
                    "format": "uri",
                    "type": "string"
                  }
                },
                "required": [
                  "url"
                ],
                "type": "object"
              },
              "bodyType": {
                "enum": [
                  "json"
                ],
                "type": "string"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "method",
              "body"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "description": "schema.org/Product extracted from the rendered page. Fields the page does not state come back null rather than guessed.",
                "properties": {
                  "cache_age_seconds": {
                    "type": "integer"
                  },
                  "cached": {
                    "description": "True when re-served from a recent render. Still a paid call, and the data is as old as cache_age_seconds says.",
                    "type": "boolean"
                  },
                  "page": {
                    "properties": {
                      "fetchedAt": {
                        "description": "ISO timestamp of the RENDER, not of this call. Older than now on a cached result.",
                        "type": "string"
                      },
                      "finalUrl": {
                        "type": "string"
                      },
                      "render_ms": {
                        "type": "integer"
                      },
                      "status": {
                        "type": "integer"
                      },
                      "title": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "url": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "product": {
                    "properties": {
                      "availability": {
                        "enum": [
                          "in_stock",
                          "out_of_stock",
                          "preorder",
                          "unknown"
                        ],
                        "type": "string"
                      },
                      "brand": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "currency": {
                        "description": "ISO 4217. Null whenever price is null.",
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "images": {
                        "description": "Up to 5 absolute URLs copied from the page. Never invented.",
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "price": {
                        "description": "Numeric, no symbol or separators.",
                        "type": [
                          "number",
                          "null"
                        ]
                      },
                      "sku": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "url": {
                        "type": "string"
                      },
                      "variants": {
                        "items": {
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "values": {
                              "items": {
                                "type": "string"
                              },
                              "type": "array"
                            }
                          },
                          "type": "object"
                        },
                        "type": "array"
                      }
                    },
                    "type": "object"
                  },
                  "provenance": {
                    "description": "Where each field came from. `declared` fields match what the merchant published in schema.org JSON-LD or Open Graph tags — their own number, the one they stand behind. `inferred` fields were read off the page by a model and deserve less trust. Fields that came back null appear in neither list. Use this to decide which values you can act on directly and which are worth a second look.",
                    "properties": {
                      "declared": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "inferred": {
                        "items": {
                          "type": "string"
                        },
                        "type": "array"
                      },
                      "source": {
                        "enum": [
                          "json-ld",
                          "meta",
                          "json-ld+meta",
                          "none"
                        ],
                        "type": "string"
                      }
                    },
                    "type": "object"
                  },
                  "redirect": {
                    "description": "Present only when the browser landed somewhere other than the requested URL.",
                    "properties": {
                      "final": {
                        "type": "string"
                      },
                      "requested": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                },
                "required": [
                  "product",
                  "page"
                ],
                "type": "object"
              }
            },
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "product-price",
    "price",
    "product",
    "ecommerce",
    "shopping",
    "bazaar"
  ],
  "sourceHost": "extract.tollkit.dev",
  "lastUpdated": "2026-10-09T19:51:17.407Z",
  "quality": {
    "calls30d": 10,
    "uniquePayers30d": 4,
    "lastCalledAt": "2026-10-09T19:51:17.134Z"
  },
  "metadata": {
    "serviceName": "Product Price Lookup",
    "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1791089541/bazaar-icons/6490ef4ad700a0e0.png",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "url": "https://www.scrapingcourse.com/ecommerce/product/affirm-water-bottle/"
            },
            "bodyType": "json",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "example": {
              "cache_age_seconds": 0,
              "cached": false,
              "page": {
                "fetchedAt": "2026-10-04T12:00:00.000Z",
                "finalUrl": "https://www.scrapingcourse.com/ecommerce/product/affirm-water-bottle/",
                "render_ms": 2140,
                "status": 200,
                "title": "Affirm Water Bottle – Ecommerce Test Site to Learn Web Scraping",
                "url": "https://www.scrapingcourse.com/ecommerce/product/affirm-water-bottle/"
              },
              "product": {
                "availability": "in_stock",
                "brand": null,
                "currency": "USD",
                "description": "This is a simple product called Affirm Water Bottle",
                "images": [
                  "https://www.scrapingcourse.com/ecommerce/wp-content/uploads/2024/03/ug06-lb-0.jpg"
                ],
                "name": "Affirm Water Bottle",
                "price": 7,
                "sku": "24-UG06",
                "url": "https://www.scrapingcourse.com/ecommerce/product/affirm-water-bottle/",
                "variants": []
              },
              "provenance": {
                "declared": [
                  "name",
                  "description",
                  "sku",
                  "price",
                  "currency",
                  "availability",
                  "images"
                ],
                "inferred": [],
                "source": "json-ld"
              }
            },
            "type": "json"
          }
        },
        "schema": {
          "properties": {
            "input": {
              "properties": {
                "body": {
                  "properties": {
                    "allow_redirect": {
                      "default": false,
                      "description": "By default a URL that redirects to what looks like a different page (a discontinued item bouncing to its category listing) is refused free of charge rather than answered with the wrong product.",
                      "type": "boolean"
                    },
                    "url": {
                      "description": "Absolute https:// URL of ONE product page. Not a search or category page, not a login-gated page, and not a private address.",
                      "format": "uri",
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ],
                  "type": "object"
                },
                "bodyType": {
                  "enum": [
                    "json"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method",
                "body"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "description": "schema.org/Product extracted from the rendered page. Fields the page does not state come back null rather than guessed.",
                  "properties": {
                    "cache_age_seconds": {
                      "type": "integer"
                    },
                    "cached": {
                      "description": "True when re-served from a recent render. Still a paid call, and the data is as old as cache_age_seconds says.",
                      "type": "boolean"
                    },
                    "page": {
                      "properties": {
                        "fetchedAt": {
                          "description": "ISO timestamp of the RENDER, not of this call. Older than now on a cached result.",
                          "type": "string"
                        },
                        "finalUrl": {
                          "type": "string"
                        },
                        "render_ms": {
                          "type": "integer"
                        },
                        "status": {
                          "type": "integer"
                        },
                        "title": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "product": {
                      "properties": {
                        "availability": {
                          "enum": [
                            "in_stock",
                            "out_of_stock",
                            "preorder",
                            "unknown"
                          ],
                          "type": "string"
                        },
                        "brand": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "currency": {
                          "description": "ISO 4217. Null whenever price is null.",
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "description": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "images": {
                          "description": "Up to 5 absolute URLs copied from the page. Never invented.",
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "name": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "price": {
                          "description": "Numeric, no symbol or separators.",
                          "type": [
                            "number",
                            "null"
                          ]
                        },
                        "sku": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "url": {
                          "type": "string"
                        },
                        "variants": {
                          "items": {
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "values": {
                                "items": {
                                  "type": "string"
                                },
                                "type": "array"
                              }
                            },
                            "type": "object"
                          },
                          "type": "array"
                        }
                      },
                      "type": "object"
                    },
                    "provenance": {
                      "description": "Where each field came from. `declared` fields match what the merchant published in schema.org JSON-LD or Open Graph tags — their own number, the one they stand behind. `inferred` fields were read off the page by a model and deserve less trust. Fields that came back null appear in neither list. Use this to decide which values you can act on directly and which are worth a second look.",
                      "properties": {
                        "declared": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "inferred": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "source": {
                          "enum": [
                            "json-ld",
                            "meta",
                            "json-ld+meta",
                            "none"
                          ],
                          "type": "string"
                        }
                      },
                      "type": "object"
                    },
                    "redirect": {
                      "description": "Present only when the browser landed somewhere other than the requested URL.",
                      "properties": {
                        "final": {
                          "type": "string"
                        },
                        "requested": {
                          "type": "string"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "required": [
                    "product",
                    "page"
                  ],
                  "type": "object"
                }
              },
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    }
  },
  "liveness": {
    "reliability": null
  },
  "verified": false,
  "featured": false,
  "provider": {
    "host": "extract.tollkit.dev",
    "manifest_name": "extract.tollkit.dev",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-10-14T01:15:01.050Z"
  },
  "exampleResponse": {
    "example": {
      "cache_age_seconds": 0,
      "cached": true,
      "page": {
        "fetchedAt": "string",
        "finalUrl": "string",
        "render_ms": 0,
        "status": 0,
        "title": "string",
        "url": "string"
      },
      "product": {
        "availability": "in_stock",
        "brand": "string",
        "currency": "string",
        "description": "string",
        "images": [
          "string"
        ],
        "name": "string",
        "price": 0,
        "sku": "string",
        "url": "string",
        "variants": [
          {
            "name": "string",
            "values": [
              "string"
            ]
          }
        ]
      },
      "provenance": {
        "declared": [
          "string"
        ],
        "inferred": [
          "string"
        ],
        "source": "json-ld"
      },
      "redirect": {
        "final": "string",
        "requested": "string"
      }
    }
  }
}