# Lumi Trades x402 Seller Verdict

> Lumi Trades x402 Seller Verdict is a paid API for AI agents from api.lumitrades.io, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-30).

Returns a one-label trust verdict (checks_passed, check_first, checks_failed, or no_data) for an x402 URL or seller domain, with evidence window, test-buy count, delivery history, and reason codes.

## Facts

- Endpoint: GET https://api.lumitrades.io/v1/verdict?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-30
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/lumi-trades-x402-seller-verdict-fe162df5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_T6fkyLHohWMU8uaxq1gov

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 lumi-trades-x402-seller-verdict-fe162df5
```

Example prompt: Before I pay, can you check the Lumi Trades trust verdict for api.example.com/premium-data — is that seller flagged as checks_passed or something worse?

## When to prefer this

Use this endpoint when an AI agent needs a fast, low-cost ($0.01 USDC) binary trust signal about an x402 seller before committing a payment — especially when the agent has the seller's URL or domain and optionally the payTo address and quoted price. Prefer this over manual on-chain lookups or generic reputation checks because it incorporates actual paid test-buy evidence, delivery history, and a signed label that can gate automated payments.

## Known failure modes

- 400 invalid_input — malformed or missing URL parameter
- 402 payment_required — x402 payment not settled correctly
- 409 idempotency_conflict or settlement_status_unknown — duplicate or ambiguous payment
- 429 rate_limited — too many requests
- 500 internal_error — server-side failure
- 502 invalid_verify_response or settle_http_error — upstream verification failure
- 503 stale_data, data_unavailable, or facilitator_unavailable — data too old or service temporarily down

## How this service works

Use when an agent wants a one-label check before paying an x402 URL or seller domain: checks_passed, check_first, checks_failed or no_data, with as-of date, evidence window, conclusive test-buy count, last delivered/failed dates, reason codes, and evidence and appeal links. Same data and signing key as the free /v1/check. Observed on-chain payments appear as ranges only (unverified; no payer addresses or amounts). Not charged on bad input. Observations, not a guarantee.

## Output

A JSON object with a 'kind' of 'lumi_verdict', a trust label (checks_passed, check_first, checks_failed, or no_data), an as-of timestamp, a human-readable label_text, a reason_code, next_update and stale_after timestamps, the number of conclusive test buys (n_conclusive), last_delivered_at and last_failed_at timestamps, an evidence window with date range and test-buy rule, data_age_seconds, observed on-chain payment ranges (unverified, no payer addresses or amounts), commercial_relationship array, reply_url for contact, and payment metadata for the $0.01 USDC charge.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [
      "url"
     ],
     "properties": {
      "url": {
       "type": "string",
       "description": "The x402 resource URL or the seller's domain (required)"
      },
      "payTo": {
       "type": "string",
       "description": "The payTo address from its 402 quote (optional)"
      },
      "amount": {
       "type": "string",
       "description": "The quoted price in USD, e.g. 0.01 (optional)"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "kind",
      "payment"
     ],
     "properties": {
      "kind": {
       "type": "string"
      },
      "as_of": {
       "type": "string"
      },
      "label": {
       "type": "string"
      },
      "payment": {
       "type": "object"
      },
      "reply_url": {
       "type": "string"
      },
      "label_text": {
       "type": "string"
      },
      "next_update": {
       "type": "string"
      },
      "reason_code": {
       "type": "string"
      },
      "stale_after": {
       "type": "string"
      },
      "n_conclusive": {
       "type": "number"
      },
      "last_failed_at": {
       "type": "null"
      },
      "evidence_window": {
       "type": "object"
      },
      "data_age_seconds": {
       "type": "number"
      },
      "last_delivered_at": {
       "type": "string"
      },
      "commercial_relationship": {
       "type": "array"
      },
      "observed_onchain_payments": {
       "type": "object"
      }
     }
    }
   },
   "description": "Errors: 400 invalid_input; 402 payment_required; 409 idempotency_conflict | settlement_status_unknown; 429 rate_limited; 500 internal_error; 502 invalid_verify_response | settle_http_error; 503 stale_data | data_unavailable | facilitator_unavailable. Details: GET /openapi.json (responses) or /.well-known/x402 (errors)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "kind": "lumi_verdict",
  "as_of": "2026-10-25T11:00:00Z",
  "label": "checks_passed",
  "payment": {
   "asset": "USDC",
   "payer": "0x12ab...89cd",
   "amount": "0.01",
   "network": "eip155:8453",
   "transaction": "0x5f0c...e41a"
  },
  "reply_url": "https://lumitrades.io/contact/",
  "label_text": "Delivered in recent checks",
  "next_update": "2026-10-25T17:00:00Z",
  "reason_code": "delivered_recently",
  "stale_after": "2026-10-26T11:00:00Z",
  "n_conclusive": 3,
  "last_failed_at": null,
  "evidence_window": {
   "to": "2026-10-20",
   "from": "2026-09-02",
   "test_buy_rule_days": 14
  },
  "data_age_seconds": 600,
  "last_delivered_at": "2026-10-20T09:12:00Z",
  "commercial_relationship": [],
  "observed_onchain_payments": {
   "name": "Observed on-chain payments (unverified)",
   "shown": true,
   "last_payment": "within the last week",
   "payments_30d": "100–999",
   "payer_groups_30d": "10–99"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/lumi-trades-x402-seller-verdict-fe162df5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.lumitrades.io](https://www.zero.xyz/host/api.lumitrades.io/llms.txt)
