# ForgeMesh ShopScout – Shipping Comparison

> ForgeMesh ShopScout – Shipping Comparison is a paid API for AI agents from shopscout.forgemesh.io, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-10).

Compares single-seller and split-basket shipping costs across fulfillment groups using supplied shipping rules, free-shipping thresholds, and delivery constraints.

## Facts

- Endpoint: POST https://shopscout.forgemesh.io/v1/shipping/compare?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-10
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/forgemesh-shopscout-shipping-comparison-a235497c
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_xX_7PkdgYM2_TpvFFY5Mp

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 forgemesh-shopscout-shipping-comparison-a235497c -d '<json body>'
```

Example prompt: I have 2 items in my cart — item A (qty 2) offered by merchant-1 at 1500 USD cents and merchant-2 at 1400 USD cents, and item B (qty 1) offered only by merchant-1 at 800 cents. Merchant-1 ships to US for $5 base with free shipping over $20, and merchant-2 charges $4 flat. Can you compare single-seller vs split-basket shipping to the US in USD and tell me which option is cheapest?

## When to prefer this

Use this endpoint when you need to programmatically compare shipping costs across multiple fulfillment groups or merchants for a shopping basket, especially when free-shipping thresholds, delivery day constraints, or split-basket scenarios are involved. It is the right choice when you already have offer prices and shipping rules and want pure cost computation without triggering a checkout. Prefer alternatives if you need real-time rate quotes from carriers, tax/duty calculation, or actual order placement.

## Known failure modes

- Item references an offer group_id not present in fulfillment_groups — validation error
- Destination country not covered by any fulfillment group's ship_to_countries — no valid configurations returned
- All fulfillment options exceed max_delivery_days constraint — empty result set
- Currency code does not match a valid ISO-4217 3-letter code — schema rejection
- Item or fulfillment_groups arrays exceed size limits (6 items, 4 methods, 4 offers) — 422 error
- Mismatched minor unit amounts (e.g. sending dollar amounts instead of cents) — silently incorrect results
- Payment not included or insufficient — 402 Payment Required

## How this service works

Compare single-seller and split baskets using supplied shipping rules, including free-shipping thresholds and delivery constraints. Estimates exclude tax and duties.

## Output

Returns a ranked set of fulfillment basket configurations (single-seller and split across groups), each showing per-group shipping method selected, shipping cost in minor currency units, subtotal, total estimated cost (excluding tax and duties), and delivery day estimate. Configurations that violate delivery or shipment constraints are excluded.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "items": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "item_id",
     "quantity",
     "offers"
    ],
    "properties": {
     "offers": {
      "type": "array",
      "items": {
       "type": "object",
       "required": [
        "offer_id",
        "group_id",
        "unit_price_minor"
       ],
       "properties": {
        "group_id": {
         "type": "string",
         "pattern": "^[a-zA-Z0-9_.-]{1,80}$"
        },
        "offer_id": {
         "type": "string",
         "pattern": "^[a-zA-Z0-9_.-]{1,80}$"
        },
        "unit_price_minor": {
         "type": "integer",
         "maximum": 1000000000,
         "minimum": 0
        }
       }
      },
      "maxItems": 4,
      "minItems": 1
     },
     "item_id": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9_.-]{1,80}$"
     },
     "quantity": {
      "type": "integer",
      "maximum": 100,
      "minimum": 1
     }
    }
   },
   "maxItems": 6,
   "minItems": 1
  },
  "currency": {
   "type": "string",
   "pattern": "^[A-Z]{3}$",
   "description": "All input amounts use minor units of this currency; no currency conversion."
  },
  "constraints": {
   "type": "object",
   "properties": {
    "max_shipments": {
     "type": "integer",
     "maximum": 6,
     "minimum": 1
    },
    "max_delivery_days": {
     "type": "integer",
     "maximum": 365,
     "minimum": 0
    }
   }
  },
  "destination": {
   "type": "object",
   "required": [
    "country"
   ],
   "properties": {
    "country": {
     "type": "string",
     "pattern": "^[A-Z]{2}$"
    }
   }
  },
  "fulfillment_groups": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "group_id",
     "merchant_id",
     "rule_source",
     "ship_to_countries",
     "methods"
    ],
    "properties": {
     "methods": {
      "type": "array",
      "items": {
       "type": "object",
       "required": [
        "method_id",
        "base_minor",
        "per_unit_minor",
        "delivery_days_max"
       ],
       "properties": {
        "method_id": {
         "type": "string",
         "pattern": "^[a-zA-Z0-9_.-]{1,80}$"
        },
        "base_minor": {
         "type": "integer",
         "maximum": 1000000000,
         "minimum": 0
        },
        "per_unit_minor": {
         "type": "integer",
         "maximum": 1000000000,
         "minimum": 0
        },
        "delivery_days_max": {
         "type": [
       
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/forgemesh-shopscout-shipping-comparison-a235497c/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from shopscout.forgemesh.io](https://www.zero.xyz/host/shopscout.forgemesh.io/llms.txt)
