Api Endpoint

402api Seller Check

Call before paying an unfamiliar x402 endpoint, or to pick between providers. $0.02, usually <1 s plus one probe: live unpaid probe (status, latency, TLS, PAYMENT-REQUIRED decoded and sanity-checked), seller reputation from indexed on-chain USDC payments to its Base payTo (24 h/7 d count, distinct payers, total and median USD, top-payer share), Bazaar listing and price, and a looks legit/caution/avoid verdict citing each fact. Errors: 400/503 JSON {error}, not charged.

Open interactive test console

Offering

Provider
tokencheck.402api.dev
Method
GET
Offering type
Api Endpoint
Transport type
http
Category
Blockchain And Crypto
Delivery
Not provided
Pricing model
Not provided
x402 version
2

Endpoint context

URL
https://tokencheck.402api.dev/v1/seller-check
MIME type
application/json
First seen
2026-10-16T01:50:32.458Z
Last seen
Tags
X402, seller-reputation, Trust, provider-selection, pre-payment-check, Base, USDC

Payment pricing

x402 payment terms are the authoritative price for calling this endpoint.

Payment option 1
0.02 USDC
Atomic price: 20000 · Network: eip155:8453 · Asset: USDC · Scheme: exact
Raw x402 terms
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "20000",
    "payTo": "0x8C8A81E2acEc6ed62421f1f4E7125B0b84FFffdE"
  }
]

Observed health

Status
Healthy
Latest latency
309 ms
Average latency
806 ms
HTTP status
402
Last checked
Reachability
100% over 14 checks

Latency is measured to the first response headers. A reachable result does not verify response accuracy or merchant identity.

Input schema

{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "const": "http"
    },
    "method": {
      "type": "string",
      "enum": [
        "GET"
      ]
    },
    "queryParams": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "pattern": "^https?://",
          "maxLength": 2048,
          "description": "The x402 resource URL you are about to pay (http/https). Give this or payTo."
        },
        "payTo": {
          "type": "string",
          "pattern": "^0x[0-9a-fA-F]{40}$",
          "description": "A seller's Base payTo address (reputation + its most-called Bazaar resource is probed). Give this or url."
        }
      }
    },
    "discoverable": {
      "const": true
    }
  },
  "required": [
    "type",
    "method"
  ],
  "additionalProperties": false
}

Output schema

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "discoverable": {
          "const": true
        },
        "method": {
          "enum": [
            "GET"
          ],
          "type": "string"
        },
        "queryParams": {
          "properties": {
            "payTo": {
              "description": "A seller's Base payTo address (reputation + its most-called Bazaar resource is probed). Give this or url.",
              "pattern": "^0x[0-9a-fA-F]{40}$",
              "type": "string"
            },
            "url": {
              "description": "The x402 resource URL you are about to pay (http/https). Give this or payTo.",
              "maxLength": 2048,
              "pattern": "^https?://",
              "type": "string"
            }
          },
          "type": "object"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "oneOf": [
            {
              "description": "HTTP 200: the seller report",
              "properties": {
                "bazaar": {
                  "description": "listed, listing (description, amount, 30-day calls/payers), other listings for the payTo",
                  "type": "object"
                },
                "cached": {
                  "type": "boolean"
                },
                "index": {
                  "type": "object"
                },
                "measuredAt": {
                  "type": "string"
                },
                "notes": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "payTo": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "probe": {
                  "description": "status, ms, tls, x402 (version, valid, accepts with recognised asset, usd, payTo)",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "query": {
                  "type": "object"
                },
                "reasons": {
                  "items": {
                    "type": "string"
                  },
                  "type": "array"
                },
                "reputation": {
                  "description": "last24h / last7d: payments, distinctPayers, totalUsd, medianUsd, topPayerShare, complete",
                  "type": [
                    "object",
                    "null"
                  ]
                },
                "verdict": {
                  "enum": [
                    "looks legit",
                    "caution",
                    "avoid"
                  ]
                }
              },
              "required": [
                "verdict",
                "reasons",
                "bazaar",
                "measuredAt"
              ],
              "type": "object"
            },
            {
              "description": "Error body. HTTP 400 = bad or missing input; HTTP 503 = check failed or timed out (25 s). The payment is not settled on errors, so the caller is not charged.",
              "example": {
                "error": "query parameter `token` must be a 0x-prefixed 40-hex-digit Base token address"
              },
              "properties": {
                "error": {
                  "description": "What went wrong, in plain words",
                  "type": "string"
                }
              },
              "required": [
                "error"
              ],
              "type": "object"
            }
          ],
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}