# x402 Payment Preflight Shortlist

> x402 Payment Preflight Shortlist is a paid API for AI agents from email-preflight-api.vercel.app, paid per call via x402, $0.005/call, status unknown (last checked 2026-10-18).

Searches the Coinbase CDP Bazaar for x402-payment-gated endpoints matching a described need, probes live candidates for valid 402 challenges, and recommends the best passing candidate with full payment details.

## Facts

- Endpoint: POST https://email-preflight-api.vercel.app/api/x402-shortlist?utm_source=zero.xyz
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-18
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/x402-payment-preflight-shortlist-d219edea
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ffH65Zt4K-ckBvPDK7ykm

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 x402-payment-preflight-shortlist-d219edea -d '<json body>'
```

Example prompt: Before I spend any USDC, find me a live x402 endpoint on Base (eip155:8453) that can give me current weather for a city, costs at most $0.01, and actually passes a live 402 challenge check — give me the URL and the exact payment details I need.

## When to prefer this

Use this endpoint when an AI agent needs to autonomously discover and pay for an unknown x402-gated API without hard-coding a specific URL — especially when you want deterministic liveness verification (real HTTP 402 probe) layered on top of semantic search ranking, before committing any on-chain payment. Prefer this over querying the Coinbase Bazaar directly when you also need live endpoint health confirmation and structured payment parameters ready for immediate use.

## Known failure modes

- No candidates found — Bazaar returns zero results for the described need; ok:false with empty recommendation
- All probed candidates fail live check — none return a valid 402 with matching payment details; status:partial or failed
- Probe deadline exceeded — probeDeadlineMs elapsed before all candidates could be checked; partial results returned
- Network mismatch — requested network has no indexed x402 endpoints in Bazaar
- Price ceiling too low — all discovered endpoints exceed maxPriceUsd; no recommendation made
- Bazaar search unavailable — upstream CDP search endpoint unreachable; service error returned

## How this service works

Pre-action x402 payment checks and deterministic email HTML validation for AI agents.

## Output

A JSON object containing: a recommended endpoint with full x402 payment fields (payTo address, asset contract, atomic amount, USD amount, network, scheme), the live check result (HTTP status, payment match, resource match), search metadata (provider, result count, search method), privacy assurances (no credential forwarding, no body forwarding), probe statistics (candidates considered, probed count, deadline), and a list of alternates if the top pick fails. Also includes limitations disclaiming merchant identity and settlement guarantees.

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "live": true,
  "checks": {
   "probeLimit": 3,
   "probedCount": 3,
   "candidateLimit": 6,
   "probeDeadlineMs": 3500,
   "selectionPolicy": "Preserve Coinbase Bazaar search rank; recommend the first candidate that passes every local deterministic live check."
  },
  "search": {
   "status": "completed",
   "endpoint": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/search",
   "provider": "Coinbase CDP Bazaar",
   "resultCount": 4,
   "searchMethod": "vector",
   "rankingNotice": "Search rank is supplied by Coinbase Bazaar from retrieval relevance and service-quality signals; those signals are not independently verified here.",
   "partialResults": true,
   "consideredCount": 4
  },
  "status": "partial",
  "privacy": {
   "retained": false,
   "targetPaymentsMade": false,
   "callerBodyForwarded": false,
   "credentialsForwarded": false,
   "callerHeadersForwarded": false,
   "rawUpstreamBodiesReturned": false
  },
  "request": {
   "need": "current weather for a city",
   "method": "GET",
   "network": "eip155:8453",
   "maxPriceUsd": 0.01
  },
  "service": "x402-purchase-shortlist",
  "version": "2026-07-31",
  "alternates": [],
  "limitations": [
   "Coinbase Bazaar supplies search rank; this service adds deterministic live checks, not an independent quality score.",
   "A recommendation does not establish merchant identity, settlement success, endpoint quality, safety, endorsement, or future behavior."
  ],
  "recommendation": {
   "rank": 1,
   "price": {
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "payTo": "0x1111111111111111111111111111111111111111",
    "scheme": "exact",
    "network": "eip155:8453",
    "amountUsd": "0.005",
    "amountAtomic": "5000",
    "amountUsdBasis": "USDC (6 decimals)"
   },
   "method": "GET",
   "request": {
    "url": "https://weather.example/api/current?city=Toronto",
    "query": {
     "city": "Toronto"
    },
    "method": "GET",
    "headers": {
     "Accept": "application/json"
    }
   },
   "resource": "https://weather.example/api/current?city=Toronto",
   "liveCheck": {
    "status": "passed",
    "httpStatus": 402,
    "paymentMatched": true,
    "resourceMatched": true,
    "bazaarInvocationMetadataPresent": true
   },
   "searchRank": 2,
   "description": "Current weather observations for a requested city.",
   "bazaarLastUpdated": "2026-07-31T12:00:00Z",
   "declaredServiceName": "Example Weather API"
  },
  "disqualifications
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/x402-payment-preflight-shortlist-d219edea/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from email-preflight-api.vercel.app](https://www.zero.xyz/host/email-preflight-api.vercel.app/llms.txt)
