{
  "x402Version": 2,
  "id": 601,
  "slug": "601",
  "resource": "https://agentpay.tools/tools/verified_route/call",
  "description": "Buyer-side trust oracle for the x402 marketplace: 'I need X, budget $Y — which tool is real?' Sweeps the WHOLE catalog across many queries, collapses sybil/factory clusters (one wallet stamping many fake-distinct listings), ranks the genuinely-used survivors by unique-payer usage, and returns one vetted pick with a ready-to-pay challenge. The credit-bureau check an agent can't do in a single query.",
  "type": "http",
  "accepts": [
    {
      "scheme": "exact",
      "network": "eip155:8453",
      "payTo": "0xE8B25A72dD6aeF69515452a61AD231C7DF2843b7",
      "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "amount": "10000",
      "maxTimeoutSeconds": 300
    }
  ],
  "outputSchema": {
    "bazaar": {
      "description": "Vet before you pay a stranger: sweep the x402 catalog, collapse sybil/factory listings, rank real providers by usage, and return ONE recommendation under budget with a ready-to-pay x402 challenge + a catalog dossier (scanned / real_providers / sybil_collapsed / biggest_factory).",
      "info": {
        "errors": [
          {
            "body": {
              "error": "<summary>",
              "reason": "<machine-readable reason>"
            },
            "retry": "Re-request the challenge and pay again",
            "status": 402,
            "when": "No payment attached (this challenge), or the attached payment failed verification: wrong amount/recipient, memo mismatch, expired, or already used (replay)"
          },
          {
            "body": {
              "detail": [
                {
                  "loc": [
                    "body"
                  ],
                  "msg": "<what is wrong>",
                  "type": "<error type>"
                }
              ]
            },
            "retry": "Fix the body and retry with a fresh payment",
            "status": 422,
            "when": "Request body present but malformed (invalid JSON or wrong field types) WITH a payment header attached — checked BEFORE settlement, so the payment is never consumed. An unpaid malformed request gets the 402, not a 422"
          },
          {
            "body": {
              "detail": "Tool '<name>' not found"
            },
            "status": 404,
            "when": "Unknown tool name"
          },
          {
            "body": {
              "error": "Rate limit exceeded"
            },
            "retry": "Back off and retry after a minute",
            "status": 429,
            "when": "Rate limited (per-IP and per-wallet limits)"
          },
          {
            "body": {
              "error": "Tool execution failed",
              "payment_status": "refund_pending",
              "tool": "<name>"
            },
            "status": 500,
            "when": "Payment settled on-chain but tool execution failed — the payment is marked refund_pending automatically; you are not charged for a failed call"
          },
          {
            "body": {
              "detail": "<what is unavailable>"
            },
            "retry": "Retry shortly",
            "status": 503,
            "when": "Tool temporarily unavailable, or the gateway cannot persist the challenge (fail-closed)"
          }
        ],
        "input": {
          "body": {
            "parameters": {
              "budget_usd": 1,
              "chain": "",
              "need": "dex pair liquidity"
            }
          },
          "bodyType": "json",
          "method": "POST",
          "type": "http"
        },
        "output": {
          "example": {
            "catalog": {
              "biggest_factory": {
                "listings": 72,
                "pay_to": "0x2bb72231eed3"
              },
              "real_providers": 41,
              "scanned": 117,
              "sybil_collapsed": 73
            },
            "need": "dex pair liquidity",
            "recommendation": {
              "calls30d": 3246,
              "name": "Otto AI",
              "network": "eip155:8453",
              "payers30d": 200,
              "price_usd": "0.001",
              "quality": 3851,
              "ready_to_pay": {
                "accepts": {
                  "network": "eip155:8453",
                  "scheme": "exact"
                },
                "network": "eip155:8453",
                "url": "https://otto.example/dex"
              },
              "url": "https://otto.example/dex"
            },
            "vetting": "swept 17 queries → 117 listings → collapsed 73 sybil listings → 41 real providers"
          },
          "type": "json"
        }
      },
      "schema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "input": {
            "additionalProperties": false,
            "properties": {
              "body": {
                "properties": {
                  "parameters": {
                    "properties": {
                      "budget_usd": {
                        "description": "Max USDC to pay the downstream tool per call (default 1)",
                        "type": "number"
                      },
                      "chain": {
                        "description": "Optional chain filter: 'base', 'arbitrum', 'solana'. Empty = all chains. Solana picks are discovery-only (probe coverage: Base only — on-chain delivery unverified)",
                        "type": "string"
                      },
                      "need": {
                        "description": "What the agent needs, e.g. 'dex pair liquidity', 'crypto prices'",
                        "type": "string"
                      }
                    },
                    "required": [
                      "need"
                    ],
                    "type": "object"
                  }
                },
                "type": "object"
              },
              "bodyType": {
                "enum": [
                  "json",
                  "form-data",
                  "text"
                ],
                "type": "string"
              },
              "method": {
                "enum": [
                  "POST"
                ],
                "type": "string"
              },
              "type": {
                "const": "http",
                "type": "string"
              }
            },
            "required": [
              "type",
              "bodyType",
              "body",
              "method"
            ],
            "type": "object"
          },
          "output": {
            "properties": {
              "example": {
                "type": "object"
              },
              "type": {
                "type": "string"
              }
            },
            "required": [
              "type"
            ],
            "type": "object"
          }
        },
        "required": [
          "input"
        ],
        "type": "object"
      }
    }
  },
  "tags": [
    "bazaar"
  ],
  "sourceHost": "agentpay.tools",
  "lastUpdated": "2026-09-09T21:57:28.56Z",
  "quality": {
    "calls30d": 11,
    "uniquePayers30d": 5,
    "lastCalledAt": "2026-09-09T21:57:28.07Z"
  },
  "liveness": {},
  "verified": false,
  "featured": false,
  "provider": {
    "host": "agentpay.tools",
    "manifest_name": "agentpay.tools",
    "source": "cdp-mirror",
    "source_manifest_url": "https://api.cdp.coinbase.com/platform/v2/x402/discovery/resources",
    "submitted_at": "2026-09-18T22:00:31.484Z"
  }
}