[
  {
    "name": "fear_greed",
    "description": "Returns the daily crypto Fear & Greed index, 0-100, with BTC price context alongside each reading. The same series behind the dashboard's Fear & Greed widget.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 365,
        "description": "Max days returned"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"fear_greed\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "mvrv",
    "description": "Returns Bitcoin's MVRV Z-Score, a daily on-chain cycle-timing indicator. The same series behind the dashboard's MVRV Z-Score widget.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 10000,
        "description": "Max days returned (newest N, served ascending)"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"mvrv\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "etf_flow",
    "description": "Reports daily net flows into and out of the US spot BTC/ETH ETFs. The same series behind the dashboard's ETF Flow widget.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "asset",
        "type": "string",
        "required": false,
        "default": "btc",
        "description": "Base coin: btc or eth"
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 365,
        "description": "Max trading days returned"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"etf_flow\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "coinbase_premium",
    "description": "Tracks the price gap between Coinbase and Binance BTC \u2014 a classic read on US institutional buying pressure. The same series behind the dashboard's Coinbase Premium widget.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "interval",
        "type": "string",
        "required": false,
        "default": "1h",
        "description": "Bucket interval: 1m, 5m, 15m, 1h, 1d"
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 500,
        "description": "Max buckets fetched per venue leg"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"coinbase_premium\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "options_report",
    "description": "Builds a full options-market picture for a token: max pain, gamma exposure, implied volatility, skew, and notable block trades. See the key_levels section of the response for options-derived price levels. Also relevant to: L2 \u00b7 AI-recommended TP/SL.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "token_address",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Token identifier (e.g. 'bitcoin', 'ethereum', 'solana', 'ripple', 'tron', 'avalanche-2')"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"options_report\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "derivatives_analysis",
    "description": "Pulls funding rate, open interest, and liquidation evidence for a token's derivatives market. Also relevant to: L2 \u00b7 Position risk.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "exchange_id",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Optional derivatives venue pin, e.g. 'hyperliquid_perp' for HIP-3 builder-dex assets (xyz:* pairs), 'ondo_perps' for Ondo-native funding and snapshot-only open interest, 'binance_futures', or 'bybit_futures'. Omit to let TrueNorth select the venue."
      },
      {
        "name": "sections",
        "type": "array",
        "required": false,
        "default": null,
        "description": "Optional response evidence scope. Null or omission uses the least-privilege funding/open-interest scope; liquidation evidence is returned only when 'liquidations' is selected."
      },
      {
        "name": "token_address",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Token identifier (e.g. 'bitcoin', 'ethereum')"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"derivatives_analysis\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "hyperliquid_smart_money",
    "description": "Analyzes what large, historically profitable Hyperliquid wallets are positioned in for a given token.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "sort_by",
        "type": "string",
        "required": false,
        "default": "abs_size",
        "description": "Sort criterion: 'abs_size', 'position_value', 'unrealized_pnl', 'leverage', or 'margin_used'"
      },
      {
        "name": "token_address",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Token identifier (e.g. 'bitcoin', 'ethereum')"
      },
      {
        "name": "top_n",
        "type": "integer",
        "required": false,
        "default": 10,
        "description": "Number of top positions to return (1-100)"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"hyperliquid_smart_money\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "polymarket_insight",
    "description": "Looks up live odds from prediction markets.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "event_slug",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Exact the prediction-market venue event slug to fetch via Gamma /events"
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 5,
        "description": "Maximum number of markets to return (1-10)"
      },
      {
        "name": "query_type",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Market category: 'crypto_price', 'macro_outlook', 'regulatory', or 'general'"
      },
      {
        "name": "search_terms",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Custom search terms to override the default query"
      },
      {
        "name": "token",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Token name or symbol \u2014 required when query_type is 'crypto_price'"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"polymarket_insight\", \"arguments\": {\"limit\": 10, \"query_type\": \"crypto_price\", \"search_terms\": \"bitcoin\"}}'",
    "auth": "none"
  },
  {
    "name": "market_whale_positions",
    "description": "Lists the largest Hyperliquid positions currently held by large wallets ('whales'), sourced through TrueNorth's market-data gateway.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "base_coin",
        "type": "string",
        "required": false,
        "default": "BTC",
        "description": "Base coin to filter, such as BTC."
      },
      {
        "name": "size",
        "type": "integer",
        "required": false,
        "default": 50,
        "description": "Maximum leaderboard rows."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"market_whale_positions\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "rest:tnapi:/api/fear-greed",
    "description": "The plain-REST twin of the fear_greed tool \u2014 same daily Fear & Greed series, no tool-call wrapper needed.",
    "method": "GET",
    "url": "https://tn-api.truenorth.xyz/api/fear-greed",
    "args": [
      {
        "name": "limit",
        "type": "int",
        "required": false,
        "default": 365,
        "description": "Max days returned (newest N, served ascending)."
      }
    ],
    "example_request": "curl \"https://tn-api.truenorth.xyz/api/fear-greed?limit=365\"",
    "auth": "none"
  },
  {
    "name": "rest:tnapi:/api/mvrv",
    "description": "The plain-REST twin of the mvrv tool \u2014 same Bitcoin MVRV Z-Score series, no tool-call wrapper needed.",
    "method": "GET",
    "url": "https://tn-api.truenorth.xyz/api/mvrv",
    "args": [
      {
        "name": "limit",
        "type": "int",
        "required": false,
        "default": 10000,
        "description": "Max days returned (newest N, served ascending). Default equals the max \u2014 the route returns the full archive unless limited."
      }
    ],
    "example_request": "curl \"https://tn-api.truenorth.xyz/api/mvrv?limit=10000\"",
    "auth": "none"
  },
  {
    "name": "rest:tnapi:/api/etf-flow",
    "description": "The plain-REST twin of the etf_flow tool \u2014 same US spot-ETF net-flow series.",
    "method": "GET",
    "url": "https://tn-api.truenorth.xyz/api/etf-flow",
    "args": [
      {
        "name": "asset",
        "type": "enum",
        "required": false,
        "default": "btc",
        "description": "Base coin."
      },
      {
        "name": "limit",
        "type": "int",
        "required": false,
        "default": 365,
        "description": "Max trading days returned (newest N, served ascending)."
      }
    ],
    "example_request": "curl \"https://tn-api.truenorth.xyz/api/etf-flow?asset=btc&limit=365\"",
    "auth": "none"
  },
  {
    "name": "rest:tnapi:/api/coinbase-premium",
    "description": "The plain-REST twin of the coinbase_premium tool \u2014 same Coinbase-vs-Binance BTC gap series.",
    "method": "GET",
    "url": "https://tn-api.truenorth.xyz/api/coinbase-premium",
    "args": [
      {
        "name": "interval",
        "type": "enum",
        "required": false,
        "default": "1h",
        "description": "Bucket interval."
      },
      {
        "name": "limit",
        "type": "int",
        "required": false,
        "default": 500,
        "description": "Max buckets fetched per venue leg."
      }
    ],
    "example_request": "curl \"https://tn-api.truenorth.xyz/api/coinbase-premium?interval=1h&limit=500\"",
    "auth": "none"
  },
  {
    "name": "performance_scanner",
    "description": "Ranks a universe of tokens by relative strength against a benchmark and flags standouts from STRONG_BUY to UNDERPERFORMING.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "lookback_days",
        "type": "integer",
        "required": false,
        "default": 7,
        "description": "Lookback period in days (1-30)"
      },
      {
        "name": "token_universe",
        "type": "string",
        "required": false,
        "default": "crypto_top_by_volume_and_market_cap",
        "description": "Universe to scan: crypto_top_by_volume_and_market_cap (default; volume \u2229 market-cap), crypto_top_by_volume (volume-only), ondo_tokenized_stock, commodity, or us_equities_sp500"
      },
      {
        "name": "top_n",
        "type": "integer",
        "required": false,
        "default": 29,
        "description": "Number of ranked performers returned; distinct from presentation row count"
      },
      {
        "name": "universe_size",
        "type": "integer",
        "required": false,
        "default": 30,
        "description": "Number of tokens in the candidate universe (1-200)"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"performance_scanner\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "technical_analysis",
    "description": "Runs standard technical indicators (RSI, MACD, support/resistance) on a token and explains what they mean. See the market_structure section of the response for support/resistance and trend structure. Also relevant to: L2 \u00b7 AI-recommended TP/SL.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "exchange_id",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Optional explicit venue id, e.g. 'hyperliquid_perp', 'COMEX', 'NASDAQ'"
      },
      {
        "name": "start_end_datetime",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Time range for historical analysis (ISO 8601 format)"
      },
      {
        "name": "timeframe",
        "type": "string",
        "required": false,
        "default": "1h",
        "description": "One chart timeframe: '5m', '15m', '1h', '4h', or '1d'."
      },
      {
        "name": "token_address",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Token identifier (e.g. 'bitcoin', 'ethereum')"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"technical_analysis\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "trending_discovery",
    "description": "Surfaces trending crypto tokens, mapped to a tradable exchange.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "include_categories",
        "type": "boolean",
        "required": false,
        "default": false,
        "description": "Include trending categories alongside tokens"
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 10,
        "description": "Maximum number of trending tokens to return (5-15)"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"trending_discovery\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "event_v2",
    "description": "Searches TrueNorth's own curated market story index for news and catalysts.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "event_type",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Filter to a single event type"
      },
      {
        "name": "include_body",
        "type": "boolean",
        "required": false,
        "default": false,
        "description": "Include full article/analysis body in results"
      },
      {
        "name": "include_full_summary",
        "type": "boolean",
        "required": false,
        "default": false,
        "description": "Include the complete enrichment summary in addition to the compact preview"
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 20,
        "description": "Max results to request from the index"
      },
      {
        "name": "min_rank_score",
        "type": "integer",
        "required": false,
        "default": null,
        "description": "Minimum final rank score"
      },
      {
        "name": "query",
        "type": "string",
        "required": false,
        "default": null,
        "description": "TOPIC to look for, as free text matched against article text (e.g. 'earnings', 'China export', 'Fed', 'tariffs'). At least one of token_address or query is required. Omit it to get the asset's events unfiltered. Do NOT pass the asset's own symbol/name here when token_address is set \u2014 that filters on wording, not identity. Without token_address a recognized asset name here is resolved to its canonical token identity instead of being matched as text."
      },
      {
        "name": "sort_by",
        "type": "string",
        "required": false,
        "default": "relevance",
        "description": "Result order: 'relevance' for free-form catalyst research within the selected time window, or 'time' for newest-first information feeds."
      },
      {
        "name": "source",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Filter to a single source"
      },
      {
        "name": "ticker",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Deprecated \u2014 prefer token_address. Names the asset by ticker (e.g. 'BTC'); it is resolved to the asset filter, so do not also repeat the asset in query."
      },
      {
        "name": "time_window",
        "type": "string",
        "required": false,
        "default": "24h",
        "description": "Optional recency filter as a positive integer hour/day duration (for example '6h', '72h', '7d', or '30d'), or 'all'"
      },
      {
        "name": "token_address",
        "type": "string",
        "required": false,
        "default": null,
        "description": "The asset to search, as a canonical id (e.g. 'bitcoin', 'stock_nvda', 'comm_gold'). At least one of token_address or query is required. This is exact-match \u2014 free text like 'NVDA' or 'Nvidia' will not match."
      },
      {
        "name": "top_only",
        "type": "boolean",
        "required": false,
        "default": false,
        "description": "Only return top-ranked catalysts"
      },
      {
        "name": "topic",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Filter to a single topic"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"event_v2\", \"arguments\": {\"token_address\": \"bitcoin\"}}'",
    "auth": "none"
  },
  {
    "name": "financial_economic_calendar",
    "description": "Lists upcoming and recent macro releases \u2014 CPI, non-farm payrolls, rate decisions \u2014 with consensus and actual values.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "country",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Single country code filter (e.g. US); omit for all."
      },
      {
        "name": "end_date",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Inclusive upper bound (YYYY-MM-DD); defaults to start+14d."
      },
      {
        "name": "start_date",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Inclusive lower bound (YYYY-MM-DD); defaults to today."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_economic_calendar\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "financial_earnings_calendar",
    "description": "Lists upcoming and recent earnings events in a date window.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "end_date",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Inclusive upper bound (YYYY-MM-DD); defaults to start+14d."
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 30,
        "description": "Max events."
      },
      {
        "name": "start_date",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Inclusive lower bound (YYYY-MM-DD); defaults to today."
      },
      {
        "name": "tickers",
        "type": "array",
        "required": false,
        "default": null,
        "description": "Optional ticker filter (max 25)."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_earnings_calendar\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "financial_fundamental_graph",
    "description": "Returns a stock's income, balance-sheet and cash-flow history already shaped as chart cards, each naming its own chart type. The one-call backbone for this section: income statement, balance sheet, cash flow, ratios, segment mix, earnings versus estimate and the forward estimate ranges all come back pre-shaped as chart cards, each naming its own chartType. The dedicated endpoints below return the same underlying data unshaped, with their own filters and deeper history. Pass include_html: false unless you want the optional self-contained dashboard, which is most of the payload.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "include_html",
        "type": "boolean",
        "required": false,
        "default": true,
        "description": "When true, include a self-contained lightweight HTML/SVG dashboard in the result."
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 8,
        "description": "Max reporting periods per statement source."
      },
      {
        "name": "metrics",
        "type": "array",
        "required": false,
        "default": null,
        "description": "Optional metric keys to render. Omit for the full available dashboard: core statement metrics, derived ratios, segmented revenue mix cards, earnings actual-vs-estimate cards, and available analyst estimate/rating cards."
      },
      {
        "name": "period",
        "type": "string",
        "required": false,
        "default": "annual",
        "description": "'annual', 'quarter', or 'quarterly'. Quarterly is normalised to 'quarter'."
      },
      {
        "name": "ticker",
        "type": "string",
        "required": true,
        "default": null,
        "description": "US stock ticker (e.g. AAPL)."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_fundamental_graph\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "financial_analyst_estimates",
    "description": "Returns Wall Street's EPS/revenue consensus, price targets, and buy/hold/sell ratings for a stock.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 30,
        "description": "Max forecast periods."
      },
      {
        "name": "period",
        "type": "string",
        "required": false,
        "default": "annual",
        "description": "'annual' or 'quarter'."
      },
      {
        "name": "ticker",
        "type": "string",
        "required": true,
        "default": null,
        "description": "US stock ticker (e.g. AAPL)."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_analyst_estimates\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "financial_earnings_data",
    "description": "Returns quarterly EPS and revenue, actual versus estimate. The newest row is the NEXT scheduled report: estimates present, actuals still null.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 30,
        "description": "Max quarterly periods."
      },
      {
        "name": "ticker",
        "type": "string",
        "required": true,
        "default": null,
        "description": "US stock ticker."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_earnings_data\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "financial_metrics",
    "description": "Computes 40+ derived financial ratios \u2014 margins, ROE/ROA, leverage, liquidity, per-share, YoY growth \u2014 from a company's statements.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 4,
        "description": "Max reporting periods."
      },
      {
        "name": "period",
        "type": "string",
        "required": false,
        "default": "annual",
        "description": "'annual' or 'quarter'."
      },
      {
        "name": "ticker",
        "type": "string",
        "required": true,
        "default": null,
        "description": "US stock ticker."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_metrics\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "financial_segmented_revenue",
    "description": "Returns SEC-derived segmented revenue (by product/geography) for a US issuer's reporting periods. A company reports whichever breakdowns it chooses, so group items[] by segments[].type rather than assuming a fixed set of views.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 20,
        "description": "Maximum reporting periods (up to 200)."
      },
      {
        "name": "period",
        "type": "string",
        "required": false,
        "default": "annual",
        "description": "'annual' or 'quarterly'."
      },
      {
        "name": "report_period_end",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Inclusive upper bound on report_period (YYYY-MM-DD)."
      },
      {
        "name": "report_period_start",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Inclusive lower bound on report_period (YYYY-MM-DD)."
      },
      {
        "name": "segment_type",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Optional segment-type filter (e.g. 'ProductOrService', 'StatementGeographical', 'StatementBusinessSegments')."
      },
      {
        "name": "ticker",
        "type": "string",
        "required": true,
        "default": null,
        "description": "US stock ticker (e.g. AAPL)."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_segmented_revenue\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "financial_statements",
    "description": "Returns income, balance sheet, cash-flow, and key-stats statements for a stock.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 30,
        "description": "Max reporting periods."
      },
      {
        "name": "period",
        "type": "string",
        "required": false,
        "default": "annual",
        "description": "'annual' or 'quarter'."
      },
      {
        "name": "statement_type",
        "type": "string",
        "required": false,
        "default": "income",
        "description": "'income', 'balance', 'cashflow', or 'key-stats'."
      },
      {
        "name": "ticker",
        "type": "string",
        "required": true,
        "default": null,
        "description": "US stock ticker."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_statements\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "financial_institutional_ownership",
    "description": "Lists the top 13F institutional holders of a US stock, with shares held and percent of shares outstanding.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 20,
        "description": "Max institutional holders to return (sorted by market value descending)."
      },
      {
        "name": "quarter",
        "type": "integer",
        "required": false,
        "default": null,
        "description": "Optional filing quarter override (1-4). Must be supplied together with ``year``."
      },
      {
        "name": "ticker",
        "type": "string",
        "required": true,
        "default": null,
        "description": "US stock ticker (e.g. AAPL)."
      },
      {
        "name": "year",
        "type": "integer",
        "required": false,
        "default": null,
        "description": "Optional filing year override. Must be supplied together with ``quarter``. Default: latest filed 13F quarter."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_institutional_ownership\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "financial_insider_trades",
    "description": "Lists SEC Form 4 insider transactions for a US stock.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "end_date",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Inclusive upper bound (YYYY-MM-DD)."
      },
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 30,
        "description": "Max Form 4 events."
      },
      {
        "name": "start_date",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Inclusive lower bound (YYYY-MM-DD)."
      },
      {
        "name": "ticker",
        "type": "string",
        "required": true,
        "default": null,
        "description": "US stock ticker."
      },
      {
        "name": "transaction_code",
        "type": "string",
        "required": false,
        "default": null,
        "description": "SEC Form 4 code filter (P/S/A/M/F/...). Leave unset for all."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_insider_trades\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "financial_stock_dividends",
    "description": "Lists a US stock's historical dividend events.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "limit",
        "type": "integer",
        "required": false,
        "default": 30,
        "description": "Max dividend events."
      },
      {
        "name": "ticker",
        "type": "string",
        "required": true,
        "default": null,
        "description": "US stock ticker."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_stock_dividends\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "financial_company_facts",
    "description": "Merges a company profile with SEC EDGAR identity data for one stock. Resolves a ticker to the cik that the filings-based endpoints in this section join on.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "ticker",
        "type": "string",
        "required": true,
        "default": null,
        "description": "US stock ticker."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_company_facts\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "venue_costs",
    "description": "Looks up the latest fee, slippage, and funding-cadence config for one instrument on one venue.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "asset_class",
        "type": "string",
        "required": false,
        "default": "crypto",
        "description": "crypto, stock, or commodity."
      },
      {
        "name": "instrument",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Instrument identifier (e.g. 'BTC', 'AAPL')."
      },
      {
        "name": "instrument_type",
        "type": "string",
        "required": false,
        "default": "spot",
        "description": "spot or perp."
      },
      {
        "name": "venue",
        "type": "string",
        "required": false,
        "default": "auto",
        "description": "Venue override; 'auto' picks default for the asset/instrument."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"venue_costs\", \"arguments\": {\"instrument\": \"BTC\"}}'",
    "auth": "none"
  },
  {
    "name": "liquidation_risk",
    "description": "Calculates how close a position sits to its exchange-computed liquidation price.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "current_price",
        "type": "number",
        "required": true,
        "default": null,
        "description": "Current market price"
      },
      {
        "name": "direction",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Position direction: 'long' or 'short'"
      },
      {
        "name": "liquidation_price",
        "type": "number",
        "required": true,
        "default": null,
        "description": "Exchange-provided liquidation price"
      },
      {
        "name": "token_address",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Token identifier (e.g. 'bitcoin', 'ethereum')"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"liquidation_risk\", \"arguments\": {\"current_price\": 64000, \"direction\": \"long\", \"liquidation_price\": 58000, \"token_address\": \"bitcoin\"}}'",
    "auth": "none"
  },
  {
    "name": "kline_analysis",
    "description": "Reads a token's price chart (candles) and summarizes the pattern in plain language.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "exchange_id",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Optional explicit venue id, e.g. 'hyperliquid_perp', 'COMEX', 'NASDAQ'"
      },
      {
        "name": "start_end_datetime",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Time range for historical data (ISO 8601 format)"
      },
      {
        "name": "timeframe",
        "type": "string",
        "required": false,
        "default": "1h",
        "description": "Chart timeframe. Single: '5m','15m','1h','4h','1d'"
      },
      {
        "name": "token_address",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Token identifier (e.g. 'bitcoin', 'ethereum')"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"kline_analysis\", \"arguments\": {}}'",
    "auth": "none"
  },
  {
    "name": "market_session",
    "description": "Tells you whether a venue's market is currently open, and what the local time is there for the user.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "at",
        "type": "string",
        "required": false,
        "default": null,
        "description": "UTC instant or ISO timestamp; defaults to now"
      },
      {
        "name": "symbol",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Optional symbol for display and symbol-specific notes"
      },
      {
        "name": "timestamp",
        "type": "string",
        "required": false,
        "default": null,
        "description": "Alias for at, accepted for CLI convenience"
      },
      {
        "name": "timezone",
        "type": "string",
        "required": false,
        "default": "UTC",
        "description": "IANA timezone for user-facing local output"
      },
      {
        "name": "venue",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Market venue or supported alias: hyperliquid_perp, us_equities/nyse/nasdaq, cme_comex_gold"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"market_session\", \"arguments\": {\"venue\": \"hyperliquid_perp\"}}'",
    "auth": "none"
  },
  {
    "name": "recipe:mcp-connect",
    "description": "Connect a coding agent or chat assistant to TrueNorth's MCP server for read-only tool access \u2014 54 tools, production only.",
    "method": "MCP",
    "url": "https://mcp.true-north.xyz/mcp?token=<your-key>",
    "args": [],
    "example_request": "curl \"https://mcp.true-north.xyz/mcp?token=$TN_MCP_KEY\"",
    "auth": "api_key"
  },
  {
    "name": "resolve_asset",
    "description": "Turns a free-text ticker or name into the canonical token address and best exchange to trade it on, across crypto, stocks, and more.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "asset_class",
        "type": "string",
        "required": false,
        "default": "auto",
        "description": "Optional hint: 'auto' (default), 'crypto', 'equity', 'stock', or 'etf'."
      },
      {
        "name": "query",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Ticker, symbol, or asset name to resolve (e.g. 'SPCX', 'BTC', 'AAPL')"
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"resolve_asset\", \"arguments\": {\"query\": \"BTC\"}}'",
    "auth": "none"
  },
  {
    "name": "financial_resolve_stock_ticker",
    "description": "Fuzzy-matches free text to a US stock ticker.",
    "method": "POST",
    "url": "https://tn-api.truenorth.xyz/api/agent-tools/call",
    "args": [
      {
        "name": "query",
        "type": "string",
        "required": true,
        "default": null,
        "description": "Free-text \u2014 accepts tickers ('AAPL'), company names ('apple'), brand aliases, or natural-language prompts. 1..160 chars."
      }
    ],
    "example_request": "curl -X POST \"https://tn-api.truenorth.xyz/api/agent-tools/call\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"toolName\": \"financial_resolve_stock_ticker\", \"arguments\": {\"query\": \"AAPL\"}}'",
    "auth": "none"
  }
]
