# Deal Verdict API

> Deal Verdict API is a paid API for AI agents from deal-verdict-api-production.up.railway.app, paid per call via x402, $0.05/call, status unknown (last checked 2026-09-14).

Determines whether a specific product is meaningfully discounted right now across multiple retailers, returning a single verdict: deal_found, no_deal, or insufficient_data.

## Facts

- Endpoint: POST https://deal-verdict-api-production.up.railway.app/verdict
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-14
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/deal-verdict-api-5516c025
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_IBAXw-A6pZb6kBHVf2xrn

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 deal-verdict-api-5516c025 -d '<json body>'
```

Example prompt: Check if the DeWalt 20V MAX drill is genuinely on sale right now at Home Depot, Lowe's, or Walmart — I want at least 20% off the normal price before I buy.

## When to prefer this

Choose this endpoint when you need a single definitive buy/no-buy signal for a specific product rather than a raw price feed or product search results. It is ideal for automating purchase decisions, deal alerts, or budget-conscious shopping workflows where the agent must resolve a boolean 'is this actually on sale?' question without building custom price-comparison logic. Prefer it over general price APIs when you want multi-retailer coverage collapsed into one verdict with a configurable discount threshold.

## Known failure modes

- Retailer pages unreachable or blocked — listed in merchants_unreachable with verdict potentially downgraded to insufficient_data
- Product not found at any checked retailer — returns insufficient_data verdict
- Ambiguous product name matches wrong variant — size_or_variant field may indicate mismatch
- Reference price cannot be computed — reference_source falls back to computed with lower confidence
- Payment failure — x402 payment of $0.05 USDC not processed, request rejected before execution

## How this service works

Resolve a plain-language product to canonical models, check every reachable retailer, and return a single deal verdict (deal / no deal / insufficient data) with a discount, confidence, and coverage report. Sells the answer, not the underlying listings. Human UI (connect a wallet in-browser): https://deal-verdict-frontend-production.up.railway.app

## Output

A JSON object containing: a verdict string (deal_found, no_deal, or insufficient_data), the current best price found, the retailer offering that price, the store ID, the best discount percentage found, the requested threshold, a list of merchants checked and unreachable, confidence level (high/medium/low), whether the price was verified, the reference price source, size/variant matched, and a plain-English summary explaining the verdict.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "product": {
   "type": "string",
   "description": "The product to shop for, in plain language. Brand and model help but are not required, e.g. '50 gallon natural gas water heater' or 'Bosch 800 series dishwasher'."
  },
  "category": {
   "type": "string",
   "description": "Optional coarse category hint."
  },
  "location": {
   "type": "string",
   "description": "Optional city or ZIP. Localizes the price searches to that area (a city suits the aggregated feed; a ZIP localizes store delivery). No per-store fan-out."
  },
  "variants": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "Optional size/variant hints, e.g. ['50 gallon']."
  },
  "attribute": {
   "type": "string",
   "description": "A required attribute, e.g. 'gas', 'stainless', '15-inch'."
  },
  "product_url": {
   "type": "string",
   "description": "Optional link to a specific product page. The service reads the page's title, model/SKU, and price to identify the exact product and default the reference price. Only the answer is returned - never the page's content or URL."
  },
  "reference_price": {
   "type": "number",
   "description": "Optional. Your own reference/list price to judge against. If omitted, the service uses a trailing median of observed prices."
  },
  "discount_threshold": {
   "type": "number",
   "description": "How deep a discount counts as a deal, as a fraction off the reference price. 0.30 means 'only tell me if something is at least 30% off'. Defaults to the service setting."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "leads": [],
  "price": 591,
  "methods": [
   "per-store retailer lookup"
  ],
  "summary": "A deal was found: home_depot is 21.0% below the computed reference price for this product, at $591.00, which meets your requested threshold of 15% off. Checked 3 retailer(s).",
  "verdict": "deal_found",
  "retailer": "home_depot",
  "store_id": "6970",
  "confidence": "high",
  "price_verified": true,
  "size_or_variant": "50 gallon",
  "reference_source": "computed",
  "merchants_checked": [
   "home_depot",
   "lowes",
   "walmart"
  ],
  "best_discount_found": 0.21,
  "threshold_requested": 0.15,
  "merchants_unreachable": []
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/deal-verdict-api-5516c025/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from deal-verdict-api-production.up.railway.app](https://www.zero.xyz/host/deal-verdict-api-production.up.railway.app/llms.txt)
