{
  "openapi": "3.0.3",
  "info": {
    "title": "AgentToll",
    "version": "0.14.0",
    "description": "Pay-per-call data APIs for AI agents. Paid endpoints return HTTP 402 with an x402 quote; pay $0.001-$0.008 in USDC on Base mainnet per call. No API keys. Onchain identity: agenttoll.base.eth.",
    "contact": {
      "name": "AgentToll",
      "url": "https://github.com/tevfikefeaydin/agenttoll/issues",
      "email": "tevfikefe.aydin@gmail.com"
    },
    "license": {
      "name": "MIT",
      "url": "https://github.com/tevfikefeaydin/agenttoll/blob/main/LICENSE"
    }
  },
  "servers": [
    {
      "url": "https://agenttoll.app"
    }
  ],
  "paths": {
    "/api/health": {
      "get": {
        "summary": "Service status (free)",
        "responses": {
          "200": {
            "description": "OK"
          }
        },
        "security": []
      }
    },
    "/api/catalog": {
      "get": {
        "summary": "Machine-readable catalog of everything for sale (free)",
        "responses": {
          "200": {
            "description": "Catalog"
          }
        },
        "security": []
      }
    },
    "/api/demo": {
      "get": {
        "summary": "Sample response shapes for every paid endpoint (free)",
        "responses": {
          "200": {
            "description": "Samples"
          }
        },
        "security": []
      }
    },
    "/api/stats": {
      "get": {
        "summary": "Onchain-derived toll counter (free): calls, USDC revenue, unique payers, and the same figures excluding the operator's own test wallet",
        "responses": {
          "200": {
            "description": "Stats read from USDC transfers on Base"
          }
        },
        "security": []
      }
    },
    "/api/price/{symbol}": {
      "get": {
        "summary": "Token price lookup: spot price in USD + 24h change for a crypto asset",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.001"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-]{0,31}$",
              "minLength": 1,
              "maxLength": 32
            },
            "example": "eth",
            "description": "Ticker (eth, btc, sol, usdc, aero, degen...) or any CoinGecko id, e.g. degen-base"
          }
        ],
        "responses": {
          "200": {
            "description": "Price data",
            "content": {
              "application/json": {
                "example": {
                  "symbol": "eth",
                  "id": "ethereum",
                  "usd": 1867.28,
                  "change24h": -0.1,
                  "source": "coingecko",
                  "at": "2026-08-05T13:31:57.070Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid path or query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/gas": {
      "get": {
        "summary": "Base gas price check: gas price and latest block, optionally costed for a transaction size",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.001"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "gasLimit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 21000,
              "maximum": 30000000
            },
            "example": 150000,
            "description": "Optional. Price a transaction of this gas size: the reply gains estimate.ethCost and estimate.usdCost. 21000 is a plain transfer, ~65000 an ERC-20 transfer, 150000-300000 a swap."
          }
        ],
        "responses": {
          "200": {
            "description": "Gas data",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "gasPriceWei": "6041753",
                  "gasPriceGwei": 0.006041753,
                  "latestBlock": 49573693,
                  "estimate": {
                    "gasLimit": 150000,
                    "ethCost": 9.06263e-7,
                    "usdCost": 0.001692,
                    "ethUsd": 1867.28
                  },
                  "at": "2026-08-05T13:32:13.596Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/trending": {
      "get": {
        "summary": "Trending token scan: the tokens moving across the market right now",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.002"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 25
            },
            "example": 5,
            "description": "Optional. Return only the top N tokens. Defaults to the provider's full list."
          }
        ],
        "responses": {
          "200": {
            "description": "Trending tokens",
            "content": {
              "application/json": {
                "example": {
                  "coins": [
                    {
                      "id": "hyperliquid",
                      "symbol": "hype",
                      "name": "Hyperliquid",
                      "rank": 18,
                      "usd": 22.4,
                      "change24h": 3.1
                    }
                  ],
                  "source": "coingecko",
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/base/token/{address}": {
      "get": {
        "summary": "Base token price lookup by contract address: onchain USD price for any Base token",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.001"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^0x[0-9a-fA-F]{40}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Token price",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "token": "0x4200000000000000000000000000000000000006",
                  "usd": 1867.28,
                  "source": "geckoterminal",
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid path or query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/base/address/{address}": {
      "get": {
        "summary": "Base wallet lookup: primary basename, ETH balance, tx count, contract or EOA",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.001"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^0x[0-9a-fA-F]{40}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Address info",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "address": "0xe553...56f8",
                  "basename": "agenttoll.base.eth",
                  "ethBalance": 0.0019,
                  "txCount": 42,
                  "isContract": false,
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid path or query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/base/trending": {
      "get": {
        "summary": "Trending Base pool scan: price, volume, liquidity",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.002"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 10
            },
            "example": 5,
            "description": "Optional. How many pools to return."
          }
        ],
        "responses": {
          "200": {
            "description": "Trending pools",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "pools": [
                    {
                      "name": "AERO / USDC",
                      "pool": "0x6cdc...971d",
                      "priceUsd": 0.4206,
                      "volume24hUsd": 1118348.8,
                      "change24hPct": 2.711,
                      "liquidityUsd": 25358508.8
                    }
                  ],
                  "source": "geckoterminal-trending",
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/base/radar": {
      "get": {
        "summary": "New token radar on Base with a liquidity floor: fresh pools that already hold real liquidity, spam filtered",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.003"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "minLiquidity",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000000000,
              "default": 10000
            },
            "example": 50000,
            "description": "Optional. Liquidity floor in USD. Raise it to cut more spam, lower it to see everything new."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 30,
              "default": 15
            },
            "example": 5,
            "description": "Optional. How many pools to return, busiest first."
          }
        ],
        "responses": {
          "200": {
            "description": "New pools, each carrying its token address so it can be passed straight to /api/base/safety",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "pools": [
                    {
                      "name": "BASED / ETH 1%",
                      "pool": "0x2acb...cac0",
                      "token": "0xb6bb786056c690e41b20a587573fd77aade2eb07",
                      "createdAt": "2026-08-05T13:01:33Z",
                      "priceUsd": 0.0000156,
                      "volume24hUsd": 19071.46,
                      "liquidityUsd": 14246.1
                    }
                  ],
                  "minLiquidityUsd": 10000,
                  "count": 1,
                  "source": "geckoterminal-new-pools",
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/feargreed": {
      "get": {
        "summary": "Crypto market sentiment check: Fear & Greed index with yesterday comparison and optional daily history",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.001"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 30
            },
            "example": 7,
            "description": "Optional. Add a daily history array covering this many days, so you can see whether sentiment is turning."
          }
        ],
        "responses": {
          "200": {
            "description": "Index",
            "content": {
              "application/json": {
                "example": {
                  "value": 27,
                  "classification": "Fear",
                  "yesterday": 25,
                  "days": 7,
                  "history": [
                    {
                      "date": "2026-08-05T00:00:00.000Z",
                      "value": 27,
                      "classification": "Fear"
                    }
                  ],
                  "at": "2026-08-05T13:32:14.339Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/brief": {
      "get": {
        "summary": "Market brief in one call: prices, Base gas, sentiment",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.005"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "symbols",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "default": "btc,eth,sol"
            },
            "example": "eth,degen,aero",
            "description": "Optional. Comma-separated tickers or CoinGecko ids to price instead of the default majors, up to 6. Same flat price either way."
          }
        ],
        "responses": {
          "200": {
            "description": "Brief",
            "content": {
              "application/json": {
                "example": {
                  "majors": {
                    "eth": {
                      "symbol": "eth",
                      "usd": 1867.28,
                      "change24h": -0.1
                    }
                  },
                  "baseGas": {
                    "chain": "base",
                    "gasPriceGwei": 0.006,
                    "latestBlock": 49573686
                  },
                  "sentiment": {
                    "value": 27,
                    "classification": "Fear",
                    "yesterday": 25
                  },
                  "at": "2026-08-05T13:31:59.006Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/try/premium": {
      "get": {
        "summary": "Turkish lira crypto premium check: implied vs official USD/TRY via a crypto cross-rate",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.002"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "asset",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "btc",
                "eth",
                "usdt",
                "usdc"
              ],
              "default": "btc"
            },
            "example": "usdt",
            "description": "Optional. Which asset carries the cross-rate. USDT is the reading desks quote, because it is what actually changes hands."
          }
        ],
        "responses": {
          "200": {
            "description": "Premium",
            "content": {
              "application/json": {
                "example": {
                  "asset": "usdt",
                  "assetUsd": 0.999318,
                  "assetTry": 47.53,
                  "impliedUsdTry": 47.5624,
                  "officialUsdTry": 47.2891,
                  "premiumPct": 0.578,
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/base/portfolio/{address}": {
      "get": {
        "summary": "Wallet portfolio on Base: everything an address holds valued in USD, ETH plus its ERC-20 tokens, largest first",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.003"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^0x[0-9a-fA-F]{40}$"
            }
          },
          {
            "name": "minValue",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000000000,
              "default": 1
            },
            "example": 100,
            "description": "Optional. USD floor per holding, which is what keeps airdropped spam out of the answer."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 20
            },
            "example": 10,
            "description": "Optional. How many holdings to list. The total always covers everything above the floor, listed or not."
          }
        ],
        "responses": {
          "200": {
            "description": "Holdings, totals, and how many were hidden or could not be priced",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "address": "0x1985...5c87",
                  "basename": null,
                  "native": {
                    "symbol": "ETH",
                    "balance": 194.68,
                    "priceUsd": 1868.57,
                    "valueUsd": 363774.32
                  },
                  "tokens": [
                    {
                      "symbol": "CBBTC",
                      "name": "Coinbase Wrapped BTC",
                      "address": "0xcbb7...33bf",
                      "balance": 5.673857,
                      "priceUsd": 64198,
                      "valueUsd": 364250.29
                    }
                  ],
                  "totalUsd": 7143109.27,
                  "tokenCount": 52,
                  "shown": 1,
                  "hiddenBelowFloor": 48,
                  "unpriced": 0,
                  "minValueUsd": 10000,
                  "source": "blockscout",
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid path or query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/base/safety/{address}": {
      "get": {
        "summary": "Token safety check for a Base token - honeypot, rug and trap detection: simulated buy and sell, taxes, owner privileges, holder concentration, liquidity, deployer history",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.003"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^0x[0-9a-fA-F]{40}$"
            },
            "example": "0x940181a94A35A4569E4529A3CDfB74e38FD98631",
            "description": "Token contract address on Base"
          }
        ],
        "responses": {
          "200": {
            "description": "Verdict (clear, caution, high-risk or insufficient-data) plus every individual check",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "token": "0x940181a94a35a4569e4529a3cdfb74e38fd98631",
                  "name": "Aerodrome",
                  "symbol": "AERO",
                  "verdict": "caution",
                  "failed": [],
                  "warnings": [
                    "owner-powers",
                    "liquidity"
                  ],
                  "unchecked": [],
                  "checks": [
                    {
                      "id": "honeypot",
                      "status": "pass",
                      "detail": "A simulated buy and sell both succeeded"
                    },
                    {
                      "id": "taxes",
                      "status": "pass",
                      "detail": "Buy tax 0%, sell tax 0%"
                    },
                    {
                      "id": "owner-powers",
                      "status": "warn",
                      "detail": "Owner can: owner can mint new supply"
                    },
                    {
                      "id": "deployer",
                      "status": "pass",
                      "detail": "The deployer is a wallet with 731 transactions and holds 0.12094 ETH"
                    }
                  ],
                  "deployer": {
                    "address": "0xe83f922c34a1...",
                    "isContract": false,
                    "txCount": 731,
                    "balanceEth": 0.12094,
                    "firstSeen": null,
                    "ageHours": null,
                    "flaggedScam": false
                  },
                  "holderCount": 748566,
                  "listedOnCex": [
                    "Coinbase"
                  ],
                  "sources": [
                    "goplus",
                    "honeypot.is"
                  ],
                  "disclaimer": "Automated checks against public data, not investment advice. Passing every check does not make a token safe.",
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid path or query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/base/name/{nameOrAddress}": {
      "get": {
        "summary": "Basename lookup both ways: a name returns its address, owner and text records; a 0x address returns its primary basename",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.001"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "nameOrAddress",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "agenttoll.base.eth",
            "description": "A basename (the .base.eth suffix is optional) or a 0x address"
          }
        ],
        "responses": {
          "200": {
            "description": "Resolution result",
            "content": {
              "application/json": {
                "example": {
                  "query": "agenttoll.base.eth",
                  "name": "agenttoll.base.eth",
                  "address": "0xe553...56f8",
                  "resolver": "0x426fA03f...",
                  "records": {},
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid path or query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/watch/address/{address}": {
      "get": {
        "summary": "Wallet activity watch: new activity for a Base address since your cursor. The reply's `cursor` is what you pass as `since` next time.",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.002"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^0x[0-9a-fA-F]{40}$"
            }
          },
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "ISO timestamp cursor from the previous reply"
          }
        ],
        "responses": {
          "200": {
            "description": "Events since the cursor",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "address": "0xe553...56f8",
                  "since": "2026-08-05T08:40:01Z",
                  "count": 1,
                  "events": [
                    {
                      "hash": "0x4893...3c91",
                      "at": "2026-08-05T12:10:44Z",
                      "direction": "in",
                      "counterparty": "0x5f87...6f78",
                      "ethValue": 0,
                      "method": "transferWithAuthorization"
                    }
                  ],
                  "cursor": "2026-08-05T12:10:44Z",
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid path or query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/watch/radar": {
      "get": {
        "summary": "New pool watch: only the Base pools that appeared since your cursor",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.003"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "since",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "description": "ISO timestamp cursor from the previous reply"
          }
        ],
        "responses": {
          "200": {
            "description": "New pools since the cursor",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "since": "2026-08-05T08:40:01Z",
                  "count": 1,
                  "pools": [
                    {
                      "name": "BASED / ETH 1%",
                      "pool": "0x2acb...cac0",
                      "token": "0xb6bb786056c690e41b20a587573fd77aade2eb07",
                      "createdAt": "2026-08-05T13:01:33Z",
                      "priceUsd": 0.0000156,
                      "volume24hUsd": 19071.46,
                      "liquidityUsd": 14246.1
                    }
                  ],
                  "cursor": "2026-08-05T13:01:33Z",
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid path or query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/watch/price/{symbol}": {
      "get": {
        "summary": "Price alert check: has the asset moved past your threshold from your reference price?",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.001"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "symbol",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "eth"
          },
          {
            "name": "ref",
            "in": "query",
            "required": true,
            "schema": {
              "type": "number"
            },
            "description": "Reference price in USD"
          },
          {
            "name": "pct",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "default": 2
            },
            "description": "Threshold in percent"
          }
        ],
        "responses": {
          "200": {
            "description": "Alert state",
            "content": {
              "application/json": {
                "example": {
                  "symbol": "eth",
                  "usd": 1867.28,
                  "ref": 1900,
                  "changePct": -1.7221,
                  "thresholdPct": 2,
                  "triggered": false,
                  "direction": "down",
                  "at": "2026-08-05T13:31:58.678Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid path or query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/base/scout": {
      "get": {
        "summary": "New token scan with a safety verdict attached: today’s new Base pools above your liquidity floor, each already checked",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.008"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "minLiquidity",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 0,
              "maximum": 1000000000,
              "default": 15000
            },
            "example": 25000,
            "description": "Optional. Liquidity floor in USD."
          },
          {
            "name": "pools",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 4,
              "default": 3
            },
            "example": 3,
            "description": "Optional. How many of the top pools to safety-check."
          }
        ],
        "responses": {
          "200": {
            "description": "New pools with safety verdicts and a summary",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "minLiquidityUsd": 25000,
                  "pools": [
                    {
                      "name": "SAAS / WETH 1%",
                      "pool": "0x1c3a...9d2e",
                      "token": "0x74bb95da6692c34ee9755ac87ea10366653dbc77",
                      "createdAt": "2026-08-06T09:12:44Z",
                      "priceUsd": 0.0021,
                      "volume24hUsd": 88410.2,
                      "liquidityUsd": 445120.5,
                      "safety": {
                        "verdict": "high-risk",
                        "failed": [
                          "liquidity"
                        ],
                        "warnings": [
                          "creator-stake"
                        ],
                        "unchecked": []
                      }
                    }
                  ],
                  "summary": {
                    "found": 3,
                    "checked": 3,
                    "unchecked": 0,
                    "highRisk": 1,
                    "caution": 2,
                    "insufficientData": 0,
                    "clear": 0
                  },
                  "source": "geckoterminal-new-pools",
                  "disclaimer": "Automated checks against public data, not investment advice.",
                  "at": "2026-08-06T10:00:00.000Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/base/radar/history": {
      "get": {
        "summary": "Past-day radar snapshot: exactly as committed to public git the day it was taken, with the Base tx that paid for it",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.002"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "date",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^d{4}-d{2}-d{2}$"
            },
            "example": "2026-08-06",
            "description": "Optional. Snapshot day, default latest. History begins 2026-08-06."
          }
        ],
        "responses": {
          "200": {
            "description": "The snapshot plus provenance links (git commit, raw file, settlement tx)",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "date": "2026-08-06",
                  "at": "2026-08-06T10:57:00.000Z",
                  "settlement": "0x9c41...b02a",
                  "summary": {
                    "found": 3,
                    "checked": 3,
                    "unchecked": 0,
                    "highRisk": 1,
                    "caution": 2,
                    "insufficientData": 0,
                    "clear": 0
                  },
                  "pools": [
                    {
                      "name": "openhuman / WETH",
                      "pool": "0x74bb...dc77",
                      "token": "0x74bb95da6692c34ee9755ac87ea10366653dbc77",
                      "createdAt": "2026-08-05T13:02:05Z",
                      "priceUsd": 0.0000047,
                      "liquidityUsd": 68437,
                      "volume24hUsd": 5.4,
                      "safety": {
                        "verdict": "high-risk",
                        "failed": [
                          "liquidity"
                        ],
                        "warnings": [
                          "creator-stake"
                        ],
                        "unchecked": []
                      }
                    }
                  ],
                  "provenance": {
                    "commit": "https://github.com/tevfikefeaydin/agenttoll/commits/main/data/scout/2026-08-06.json",
                    "raw": "https://raw.githubusercontent.com/.../2026-08-06.json",
                    "paidWith": "https://basescan.org/tx/0x9c41...b02a"
                  },
                  "availableDates": {
                    "first": "2026-08-06",
                    "last": "2026-08-06",
                    "count": 1
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid or unavailable date (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/base/scorecard": {
      "get": {
        "summary": "Radar track record: tokens it surfaced grouped by the verdict they got then, valued at what they trade for now",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.005"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "days",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 30,
              "default": 7
            },
            "example": 7,
            "description": "Optional. How many trailing snapshot days to cover."
          }
        ],
        "responses": {
          "200": {
            "description": "Cohort stats and per-token rows, each verifiable against a dated git commit",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "windowDays": 7,
                  "trackRecord": {
                    "daysCovered": 7,
                    "firstSnapshot": "2026-08-06",
                    "lastSnapshot": "2026-08-12"
                  },
                  "cohorts": {
                    "high-risk": {
                      "count": 5,
                      "liquidityGone": 4,
                      "medianChangePct": -97.2
                    },
                    "caution": {
                      "count": 9,
                      "liquidityGone": 2,
                      "medianChangePct": -41.5
                    },
                    "insufficient-data": {
                      "count": 2,
                      "liquidityGone": 0,
                      "medianChangePct": -12.3
                    },
                    "clear": {
                      "count": 1,
                      "liquidityGone": 0,
                      "medianChangePct": 8.4
                    }
                  },
                  "tokens": [
                    {
                      "token": "0x74bb...dc77",
                      "name": "openhuman / WETH",
                      "flaggedOn": "2026-08-06",
                      "verdictThen": "high-risk",
                      "liquidityThenUsd": 68437,
                      "liquidityNowUsd": 3,
                      "priceChangePct": -99.1,
                      "liquidityGone": true
                    }
                  ],
                  "methodology": "Each token judged from its first appearance: verdict and price then, deepest-pool price now. Snapshots are dated git commits.",
                  "disclaimer": "A track record, not investment advice.",
                  "at": "2026-08-12T10:00:00.000Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    },
    "/api/base/fresh": {
      "get": {
        "summary": "New pair scan seconds after launch: Uniswap v4 pools read straight off Base before any indexer has them",
        "x-payment-info": {
          "price": {
            "currency": "USD",
            "mode": "fixed",
            "amount": "0.004"
          },
          "protocols": [
            {
              "x402": {
                "version": 2,
                "network": "eip155:8453",
                "scheme": "exact",
                "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
                "assetSymbol": "USDC",
                "payTo": "0xe55359021a6a22d8385b827405991c56075f56f8"
              }
            }
          ]
        },
        "parameters": [
          {
            "name": "minutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 60,
              "default": 10
            },
            "example": 10,
            "description": "Optional. How far back to look."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 50,
              "default": 15
            },
            "example": 15,
            "description": "Optional. How many pools to return, youngest first."
          },
          {
            "name": "fundedOnly",
            "in": "query",
            "required": false,
            "schema": {
              "type": "boolean",
              "default": false
            },
            "example": true,
            "description": "Optional. Drop pools nobody has added liquidity to yet."
          }
        ],
        "responses": {
          "200": {
            "description": "Pools with the launched token, funding status, and hook provenance",
            "content": {
              "application/json": {
                "example": {
                  "chain": "base",
                  "scope": "uniswap-v4",
                  "windowMinutes": 10,
                  "headBlock": 49648349,
                  "pools": [
                    {
                      "poolId": "0xb2417a41cd75...",
                      "protocol": "uniswap-v4",
                      "token": "0x47d4126cb8...",
                      "tokenBasis": "quote-asset",
                      "pair": [
                        "0x4200000000000000000000000000000000000006",
                        "0x47d4126cb8..."
                      ],
                      "quote": "0x4200000000000000000000000000000000000006",
                      "quoteSymbol": "WETH",
                      "block": 49648342,
                      "createdAt": "2026-08-07T09:41:12.000Z",
                      "ageSeconds": 14,
                      "funded": true,
                      "hook": "0xbdf938149a...",
                      "hookPools": 21,
                      "feeMode": "dynamic",
                      "feeBps": null
                    }
                  ],
                  "summary": {
                    "found": 10,
                    "funded": 10,
                    "bespokeHooks": 0,
                    "shown": 10
                  },
                  "method": "Read from the Uniswap v4 PoolManager's own Initialize log on Base...",
                  "notMeasured": "USD liquidity - v4 keeps every pool's tokens in one singleton...",
                  "at": "2026-08-07T09:41:26.000Z"
                }
              }
            }
          },
          "400": {
            "description": "Invalid query parameter (not charged)"
          },
          "402": {
            "description": "x402 payment quote"
          }
        }
      }
    }
  }
}
