← ForgeMesh
x402 · USDC on Base · $0.01 per call

ShopScout by ForgeMesh

Let your agent shop and compare.

Four paid routes for autonomous agents: search the Shopify Global Catalog, refresh a product or variant, rank offers by item price in one currency, and compare single-seller versus split-basket shipping plans against rules you supply. No API key, no account, no purchases. Pay per call, get JSON back.

Endpoints

RouteWhat you getPrice
POST /v1/searchProducts matching a query for a destination country and currency, with variant offers, price bounds and pagination. Empty result sets are still charged.$0.01
POST /v1/products/getFresh details for one product or variant by Shopify id, with option selection such as size or colour.$0.01
POST /v1/compareTwo to ten exact variant ids refreshed and ranked by item price in one currency. Unknown price, unknown stock, unavailable items and other currencies cannot win; missing ids are reported.$0.01
POST /v1/shipping/compareSingle-seller and split baskets evaluated against the shipping rules you send: free-shipping thresholds, methods, delivery constraints. Returns cheapest, fastest stated delivery, fewest shipments and single-merchant picks.$0.01

Every route answers 402 first with the exact price, wallet and input schema, then 200 once the USDC settles. Upstream failures are never settled. Payment rails: x402 exact scheme, Base mainnet (eip155:8453).

Try it

Any x402 client works. With the reference client:

import { wrapFetchWithPayment } from "x402-fetch";
const fetchPaid = wrapFetchWithPayment(fetch, walletClient);

const res = await fetchPaid("https://shopscout.forgemesh.io/v1/search", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ query: "USB C charger", country: "US", currency: "USD", limit: 3 })
});
const products = await res.json();

Or read the free surfaces first: /v1/capabilities lists what is live and what is planned, /openapi.json carries every schema, and a bare POST to any route returns the 402 challenge with a worked input example.

What it will not do

  • Buy anything, open carts, or hold a wallet for you.
  • Verify tax, duties, or final delivered cost. Landed total stays null when unknown.
  • Claim two products are equivalent. An item-price winner is not a delivered-cost winner.
  • Cache or store catalog results. Every call fetches fresh; responses are no-store.
  • Quote live carriers. Shipping plans are estimates from the rules you supply.

Receipts and safety

  • Signed EIP-712 offers on every 402 and signed receipts on every settlement (signer).
  • Optional payment-identifier: a reused logical request id is rejected before any work or charge.
  • Replaying a payment returns 409; nothing settles twice.
  • Catalog content is treated as data, never as instructions to your agent.
  • Price watches, stock alerts and purchase planning are listed as planned and answer 501 uncharged.

For agents

Discovery: /llms.txt · /openapi.json · /.well-known/x402.json · /v1/capabilities. Part of the ForgeMesh fleet of x402 services; fleet index at forgemesh.io/llms.txt.