# 402utils x402 Endpoint Quote & Market Pricer

> 402utils x402 Endpoint Quote & Market Pricer is a paid API for AI agents from 402utils.com, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-15).

Probes an x402-protected endpoint (without paying), decodes its payment requirements (price, asset, network, payTo), and enriches the result with live market context showing whether the price is fair compared to similar endpoints.

## Facts

- Endpoint: GET https://402utils.com/v1/x402-quote
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/402utils-x402-endpoint-quote-market-pricer-d3f5d444
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Apj-kmDIOpa42kw98e384

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 402utils-x402-endpoint-quote-market-pricer-d3f5d444
```

Example prompt: Can you probe this x402 endpoint and tell me what it costs, which asset and network it uses, and whether it's priced below the market median for its category? The URL is https://api.example.com/some-x402-resource

## When to prefer this

Use this endpoint when you need to inspect the cost and payment requirements of an x402-protected API before committing to pay for it, and especially when you want market context to evaluate whether the price is fair. Ideal for agents that need to make budget-aware decisions about which x402 APIs to call. Prefer over manual HTTP probing because it handles SSRF safety, decodes payment headers, resolves USD values, and layers on live market comparison in a single call.

## Known failure modes

- URL is not an x402 endpoint (isX402: false, no payment fields decoded)
- Target URL is blocked by SSRF protection (private/internal addresses rejected)
- Bazaar market data unavailable — quote is still returned but marketContext omitted or has insufficient sample size (sampleSize < 3, medianForCategory omitted)
- Target URL unreachable or returns non-402 error (probe fails, error returned)
- URL parameter missing or malformed (validation error)

## How this service works

Enriched quote for an x402 endpoint: probes it unpaid (never pays, SSRF-checked), decodes {price, asset, network, payTo}, then compares the USD price against the live Bazaar market for its category → {marketContext:{category, medianForCategory, cheaperThanMarket}}. Not just how much, but whether it's fair. Market context is best-effort; the decoded quote returns even if the Bazaar read fails. Neutral — our own endpoints are never featured.

## Output

Returns a decoded payment quote including: whether the URL is an x402 endpoint, price in atomic units of the asset, asset identifier, network, payTo address, and USD price if the asset is a recognized stablecoin. Also returns market context with the derived category, sample size of matching Bazaar endpoints, median USD price for that category, and a boolean indicating whether this endpoint is cheaper than the market median.

## 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",
       "format": "uri",
       "description": "Public http(s) URL of the x402 endpoint to quote (required)."
      }
     },
     "description": "Query string only."
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "isX402",
      "status"
     ],
     "properties": {
      "asset": {
       "type": "string"
      },
      "payTo": {
       "type": "string"
      },
      "price": {
       "type": "string",
       "description": "Chosen accept's amount in atomic units of the asset."
      },
      "isX402": {
       "type": "boolean"
      },
      "status": {
       "type": "integer"
      },
      "network": {
       "type": "string"
      },
      "priceUsd": {
       "type": "number",
       "description": "USD price when the asset is a recognised USD stablecoin."
      },
      "resource": {
       "type": "string"
      },
      "discovery": {
       "type": "object",
       "description": "Bazaar/discovery extension, passed through verbatim when present."
      },
      "description": {
       "type": "string"
      },
      "marketContext": {
       "type": "object",
       "required": [
        "category",
        "sampleSize"
       ],
       "properties": {
        "category": {
         "type": "string",
         "description": "Derived category keyword the market is sampled for."
        },
        "sampleSize": {
         "type": "integer",
         "description": "USD-priced Bazaar resources matched for the category."
        },
        "cheaperThanMarket": {
         "type": "boolean",
         "description": "True when this endpoint's USD price is below the category median."
        },
        "medianForCategory": {
         "type": "number",
         "description": "Median USD price across the matched category (omitted if <3 matches)."
  
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/402utils-x402-endpoint-quote-market-pricer-d3f5d444/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 402utils.com](https://www.zero.xyz/host/402utils.com/llms.txt)
