# Deal Triage Intent

Give a product query (or ASIN), get shopping offers, the Amazon listing, and reviews.

- endpoint: `GET https://marketplaceforaiagents.com/api/public/v1/deal-triage`
- category: intents
- price: $0.005 USDC per call (5000 atomic, 6 decimals)
- free tier: 3 calls per agent identity, shared across all endpoints (unknown/generic clients draw from a site-wide 100 successful free calls per UTC day; crawlers get none)
- settlement: USDC on Base mainnet `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913`, payee `0x05e82e03753c7bc99fb24d10a876cce53f24b7b7`, scheme `exact`
- sandbox: append `?network=base-sepolia` for testnet USDC + mock data
- results key: `results`
- html: https://marketplaceforaiagents.com/listings/deal-triage

## What it returns

Triage a purchase: Google Shopping offers, then the Amazon record (product detail when an ASIN is known or found, otherwise Amazon search), then Amazon reviews when an ASIN is resolvable.

## Use cases

- Pre-purchase check for a buying agent
- Offer vs marketplace price sanity check
- Fast quality screen before recommending

## Parameters

| param | type | required | default | description |
| --- | --- | --- | --- | --- |
| `q` | string | yes | — | Product query |
| `asin` | string | no | — | Amazon ASIN, when already known. Skips discovery. |
| `amazon_domain` | string | no | amazon.com | Amazon marketplace domain |

## Example call

```bash
curl -s "https://marketplaceforaiagents.com/api/public/v1/deal-triage?q=example"
```

## Response shape

```json
{
  "intent": "deal-triage",
  "chain": [
    "google-shopping",
    "amazon-product",
    "amazon-reviews"
  ],
  "steps_run": 3,
  "results": {
    "google-shopping": {
      "note": "Normalized response of /api/public/v1/google-shopping"
    },
    "amazon-product": {
      "note": "Normalized response of /api/public/v1/amazon-product"
    },
    "amazon-reviews": {
      "note": "Normalized response of /api/public/v1/amazon-reviews"
    }
  }
}
```

## Payment

1. Call without `X-PAYMENT`. The first 3 calls per identity (across all endpoints) return 200 with an `X-Free-Calls-Remaining` header.
2. After that the response is `402` with an `accepts[]` requirement.
3. Sign the EIP-3009 USDC authorization, base64 the x402 payload, resend as `X-PAYMENT`.
4. Settlement receipt returns in the `X-PAYMENT-RESPONSE` header.
