{
  "schemaVersion": "1.0",
  "item": {
    "slug": "yahooquery",
    "name": "yahooquery",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/512z/yahooquery",
    "canonicalUrl": "https://clawhub.ai/512z/yahooquery",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/yahooquery",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=yahooquery",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/research.md",
      "references/keyword_arguments.md",
      "references/index.md",
      "references/advanced.md",
      "references/misc.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "slug": "yahooquery",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-12T22:48:09.169Z",
      "expiresAt": "2026-05-19T22:48:09.169Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=yahooquery",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=yahooquery",
        "contentDisposition": "attachment; filename=\"yahooquery-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "yahooquery"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/yahooquery"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/yahooquery",
    "agentPageUrl": "https://openagent3.xyz/skills/yahooquery/agent",
    "manifestUrl": "https://openagent3.xyz/skills/yahooquery/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/yahooquery/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "yahooquery Skill",
        "body": "Comprehensive access to Yahoo Finance data via the yahooquery Python library. This library provides programmatic access to nearly all Yahoo Finance endpoints, including real-time pricing, fundamentals, analyst estimates, options, news, and premium research."
      },
      {
        "title": "1. Ticker (Company-Specific Data)",
        "body": "The primary interface for retrieving data about one or more securities.\n\nfrom yahooquery import Ticker\n\n# Single or multiple symbols\naapl = Ticker('AAPL')\ntickers = Ticker('AAPL MSFT NVDA', asynchronous=True)"
      },
      {
        "title": "2. Screener (Predefined Stock Lists)",
        "body": "Access to pre-built screeners for discovering stocks by criteria.\n\nfrom yahooquery import Screener\n\ns = Screener()\nscreeners = s.available_screeners  # List all available screeners\ndata = s.get_screeners(['day_gainers', 'most_actives'], count=10)"
      },
      {
        "title": "3. Research (Premium Subscription Required)",
        "body": "Access proprietary research reports and trade ideas.\n\nfrom yahooquery import Research\n\nr = Research(username='you@email.com', password='password')\nreports = r.reports(report_type='Analyst Report', report_date='Last Week')\ntrades = r.trades(trend='Bullish', term='Short term')"
      },
      {
        "title": "Ticker Class: Data Modules",
        "body": "The Ticker class exposes dozens of data endpoints via properties and methods."
      },
      {
        "title": "📊 Financial Statements",
        "body": ".income_statement(frequency='a', trailing=True) - Income statement (annual/quarterly)\n.balance_sheet(frequency='a', trailing=True) - Balance sheet\n.cash_flow(frequency='a', trailing=True) - Cash flow statement\n.all_financial_data(frequency='a') - Combined financials + valuation measures\n.valuation_measures - EV/EBITDA, P/E, P/B, P/S across periods"
      },
      {
        "title": "📈 Pricing & Market Data",
        "body": ".price - Current pricing, market cap, 52-week range\n.history(period='1y', interval='1d', start=None, end=None) - Historical OHLC\n\nperiod: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max\ninterval: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo\n\n\n.option_chain - Full options chain (all expirations)"
      },
      {
        "title": "🔍 Analysis & Estimates",
        "body": ".calendar_events - Next earnings date, EPS/revenue estimates\n.earning_history - Actual vs. estimated EPS (last 4 quarters)\n.earnings - Historical quarterly/annual earnings and revenue\n.earnings_trend - Analyst estimates for upcoming periods\n.recommendation_trend - Buy/Sell/Hold rating changes over time\n.gradings - Recent analyst upgrades/downgrades"
      },
      {
        "title": "🏢 Company Fundamentals",
        "body": ".asset_profile - Address, industry, sector, business summary, officers\n.company_officers - Executives with compensation details\n.summary_profile - Condensed company information\n.key_stats - Forward P/E, profit margin, beta, shares outstanding\n.financial_data - Financial KPIs (ROE, ROA, debt-to-equity, margins)"
      },
      {
        "title": "👥 Ownership & Governance",
        "body": ".insider_holders - List of insider holders and positions\n.insider_transactions - Recent buy/sell transactions by insiders\n.institution_ownership - Top institutional holders\n.fund_ownership - Top mutual fund holders\n.major_holders - Ownership summary (institutional %, insider %, float)"
      },
      {
        "title": "🌍 ESG & Ratings",
        "body": ".esg_scores - Environmental, Social, Governance scores and controversies\n.recommendation_rating - Analyst consensus (Strong Buy → Strong Sell)"
      },
      {
        "title": "📰 News & Insights",
        "body": ".news() - Recent news articles\n.technical_insights - Bullish/bearish technical patterns"
      },
      {
        "title": "💰 Funds & ETFs Only",
        "body": ".fund_holding_info - Top holdings, bond/equity breakdown\n.fund_performance - Historical performance and returns\n.fund_bond_holdings / .fund_bond_ratings - Bond maturity and credit ratings\n.fund_equity_holdings - P/E, P/B, P/S for equity holdings"
      },
      {
        "title": "📊 Other Modules",
        "body": ".summary_detail - Trading stats (day high/low, volume, avg volume)\n.default_key_statistics - Enterprise value, trailing P/E, forward P/E\n.index_trend - Performance relative to a benchmark index\n.quote_type - Security type, exchange, market"
      },
      {
        "title": "Global Functions",
        "body": "import yahooquery as yq\n\n# Search\nresults = yq.search('NVIDIA')\n\n# Market Data\nmarket = yq.get_market_summary(country='US')  # Major indices snapshot\ntrending = yq.get_trending(country='US')  # Trending tickers\n\n# Utilities\ncurrencies = yq.get_currencies()  # List of supported currencies\nexchanges = yq.get_exchanges()  # List of exchanges\nrate = yq.currency_converter('USD', 'EUR')  # Exchange rate"
      },
      {
        "title": "Configuration & Keyword Arguments",
        "body": "The Ticker, Screener, and Research classes accept these optional parameters:"
      },
      {
        "title": "Performance & Reliability",
        "body": "asynchronous=True - Make requests asynchronously (for multiple symbols)\nmax_workers=8 - Number of concurrent workers (when async)\nretry=5 - Number of retry attempts\nbackoff_factor=0.3 - Exponential backoff between retries\nstatus_forcelist=[429, 500, 502, 503, 504] - HTTP codes to retry\ntimeout=5 - Request timeout in seconds"
      },
      {
        "title": "Data Format & Validation",
        "body": "formatted=False - If True, returns data with {raw, fmt, longFmt} structure\nvalidate=True - Validate symbols on instantiation (invalid → .invalid_symbols)\ncountry='United States' - Regional data/news (france, germany, canada, etc.)"
      },
      {
        "title": "Network & Auth",
        "body": "proxies={'http': 'http://proxy:port'} - HTTP/HTTPS proxy\nuser_agent='...' - Custom user agent string\nverify=True - SSL certificate verification\nusername='you@email.com' / password='...' - Yahoo Finance Premium login"
      },
      {
        "title": "Advanced (Shared Sessions)",
        "body": "session=... / crumb=... - Share auth between Research and Ticker instances"
      },
      {
        "title": "1. Async for Multiple Symbols",
        "body": "tickers = Ticker('AAPL MSFT NVDA TSLA', asynchronous=True)\nprices = tickers.price  # Returns dict keyed by symbol"
      },
      {
        "title": "2. Handling DataFrames",
        "body": "Most financial methods return pandas.DataFrame. Convert for JSON output:\n\ndf = aapl.income_statement()\nprint(df.to_json(orient='records', date_format='iso'))"
      },
      {
        "title": "3. Historical Data - 1-Minute Intervals",
        "body": "Yahoo limits 1-minute data to 7 days per request. For 30 days:\n\ntickers = Ticker('AAPL', asynchronous=True)\ndf = tickers.history(period='1mo', interval='1m')  # Makes 4 requests automatically"
      },
      {
        "title": "4. Premium Users: Combining Research + Ticker",
        "body": "r = Research(username='...', password='...')\nreports = r.reports(sector='Technology', investment_rating='Bullish')\n\n# Reuse session for Ticker\ntickers = Ticker('AAPL', session=r.session, crumb=r.crumb)\ndata = tickers.asset_profile"
      },
      {
        "title": "Portfolio Analysis",
        "body": "portfolio = Ticker('AAPL MSFT NVDA', asynchronous=True)\nsummary = portfolio.summary_detail\nearnings = portfolio.earnings\nhistory = portfolio.history(period='1y')"
      },
      {
        "title": "Screening & Discovery",
        "body": "s = Screener()\ngainers = s.get_screeners(['day_gainers'], count=20)\n# Returns DataFrame with price, volume, % change, etc."
      },
      {
        "title": "Options Analysis",
        "body": "nvda = Ticker('NVDA')\noptions = nvda.option_chain\n# Filter for calls/puts, strikes, expirations"
      },
      {
        "title": "Earnings Calendar",
        "body": "tickers = Ticker('AAPL MSFT NVDA')\ncalendar = tickers.calendar_events\n# Shows next earnings date + analyst estimates"
      },
      {
        "title": "Reference Documentation",
        "body": "Full API docs at: /Users/henryzha/.openclaw/workspace-research/skills/yahooquery/references/\n\nindex.md - Overview of classes and functions\nticker/ - Detailed breakdown of all Ticker methods\nscreener.md - Screener class guide\nresearch.md - Research class (Premium)\nkeyword_arguments.md - Complete list of configuration options\nmisc.md - Global utility functions\nadvanced.md - Sharing sessions between Research and Ticker"
      },
      {
        "title": "Environment",
        "body": "Installation: python3 -m pip install yahooquery\nDependencies: pandas, requests-futures, tqdm, beautifulsoup4, lxml\nPython Version: 3.7+"
      },
      {
        "title": "Notes",
        "body": "Yahoo Finance may rate-limit or block requests. Use retry, backoff_factor, and status_forcelist for robustness.\nPremium features (Research class) require a paid Yahoo Finance Premium subscription.\nData accuracy and availability depend on Yahoo Finance's upstream data providers."
      }
    ],
    "body": "yahooquery Skill\n\nComprehensive access to Yahoo Finance data via the yahooquery Python library. This library provides programmatic access to nearly all Yahoo Finance endpoints, including real-time pricing, fundamentals, analyst estimates, options, news, and premium research.\n\nCore Classes\n1. Ticker (Company-Specific Data)\n\nThe primary interface for retrieving data about one or more securities.\n\nfrom yahooquery import Ticker\n\n# Single or multiple symbols\naapl = Ticker('AAPL')\ntickers = Ticker('AAPL MSFT NVDA', asynchronous=True)\n\n2. Screener (Predefined Stock Lists)\n\nAccess to pre-built screeners for discovering stocks by criteria.\n\nfrom yahooquery import Screener\n\ns = Screener()\nscreeners = s.available_screeners  # List all available screeners\ndata = s.get_screeners(['day_gainers', 'most_actives'], count=10)\n\n3. Research (Premium Subscription Required)\n\nAccess proprietary research reports and trade ideas.\n\nfrom yahooquery import Research\n\nr = Research(username='you@email.com', password='password')\nreports = r.reports(report_type='Analyst Report', report_date='Last Week')\ntrades = r.trades(trend='Bullish', term='Short term')\n\nTicker Class: Data Modules\n\nThe Ticker class exposes dozens of data endpoints via properties and methods.\n\n📊 Financial Statements\n.income_statement(frequency='a', trailing=True) - Income statement (annual/quarterly)\n.balance_sheet(frequency='a', trailing=True) - Balance sheet\n.cash_flow(frequency='a', trailing=True) - Cash flow statement\n.all_financial_data(frequency='a') - Combined financials + valuation measures\n.valuation_measures - EV/EBITDA, P/E, P/B, P/S across periods\n📈 Pricing & Market Data\n.price - Current pricing, market cap, 52-week range\n.history(period='1y', interval='1d', start=None, end=None) - Historical OHLC\nperiod: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max\ninterval: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo\n.option_chain - Full options chain (all expirations)\n🔍 Analysis & Estimates\n.calendar_events - Next earnings date, EPS/revenue estimates\n.earning_history - Actual vs. estimated EPS (last 4 quarters)\n.earnings - Historical quarterly/annual earnings and revenue\n.earnings_trend - Analyst estimates for upcoming periods\n.recommendation_trend - Buy/Sell/Hold rating changes over time\n.gradings - Recent analyst upgrades/downgrades\n🏢 Company Fundamentals\n.asset_profile - Address, industry, sector, business summary, officers\n.company_officers - Executives with compensation details\n.summary_profile - Condensed company information\n.key_stats - Forward P/E, profit margin, beta, shares outstanding\n.financial_data - Financial KPIs (ROE, ROA, debt-to-equity, margins)\n👥 Ownership & Governance\n.insider_holders - List of insider holders and positions\n.insider_transactions - Recent buy/sell transactions by insiders\n.institution_ownership - Top institutional holders\n.fund_ownership - Top mutual fund holders\n.major_holders - Ownership summary (institutional %, insider %, float)\n🌍 ESG & Ratings\n.esg_scores - Environmental, Social, Governance scores and controversies\n.recommendation_rating - Analyst consensus (Strong Buy → Strong Sell)\n📰 News & Insights\n.news() - Recent news articles\n.technical_insights - Bullish/bearish technical patterns\n💰 Funds & ETFs Only\n.fund_holding_info - Top holdings, bond/equity breakdown\n.fund_performance - Historical performance and returns\n.fund_bond_holdings / .fund_bond_ratings - Bond maturity and credit ratings\n.fund_equity_holdings - P/E, P/B, P/S for equity holdings\n📊 Other Modules\n.summary_detail - Trading stats (day high/low, volume, avg volume)\n.default_key_statistics - Enterprise value, trailing P/E, forward P/E\n.index_trend - Performance relative to a benchmark index\n.quote_type - Security type, exchange, market\nGlobal Functions\nimport yahooquery as yq\n\n# Search\nresults = yq.search('NVIDIA')\n\n# Market Data\nmarket = yq.get_market_summary(country='US')  # Major indices snapshot\ntrending = yq.get_trending(country='US')  # Trending tickers\n\n# Utilities\ncurrencies = yq.get_currencies()  # List of supported currencies\nexchanges = yq.get_exchanges()  # List of exchanges\nrate = yq.currency_converter('USD', 'EUR')  # Exchange rate\n\nConfiguration & Keyword Arguments\n\nThe Ticker, Screener, and Research classes accept these optional parameters:\n\nPerformance & Reliability\nasynchronous=True - Make requests asynchronously (for multiple symbols)\nmax_workers=8 - Number of concurrent workers (when async)\nretry=5 - Number of retry attempts\nbackoff_factor=0.3 - Exponential backoff between retries\nstatus_forcelist=[429, 500, 502, 503, 504] - HTTP codes to retry\ntimeout=5 - Request timeout in seconds\nData Format & Validation\nformatted=False - If True, returns data with {raw, fmt, longFmt} structure\nvalidate=True - Validate symbols on instantiation (invalid → .invalid_symbols)\ncountry='United States' - Regional data/news (france, germany, canada, etc.)\nNetwork & Auth\nproxies={'http': 'http://proxy:port'} - HTTP/HTTPS proxy\nuser_agent='...' - Custom user agent string\nverify=True - SSL certificate verification\nusername='you@email.com' / password='...' - Yahoo Finance Premium login\nAdvanced (Shared Sessions)\nsession=... / crumb=... - Share auth between Research and Ticker instances\nBest Practices\n1. Async for Multiple Symbols\ntickers = Ticker('AAPL MSFT NVDA TSLA', asynchronous=True)\nprices = tickers.price  # Returns dict keyed by symbol\n\n2. Handling DataFrames\n\nMost financial methods return pandas.DataFrame. Convert for JSON output:\n\ndf = aapl.income_statement()\nprint(df.to_json(orient='records', date_format='iso'))\n\n3. Historical Data - 1-Minute Intervals\n\nYahoo limits 1-minute data to 7 days per request. For 30 days:\n\ntickers = Ticker('AAPL', asynchronous=True)\ndf = tickers.history(period='1mo', interval='1m')  # Makes 4 requests automatically\n\n4. Premium Users: Combining Research + Ticker\nr = Research(username='...', password='...')\nreports = r.reports(sector='Technology', investment_rating='Bullish')\n\n# Reuse session for Ticker\ntickers = Ticker('AAPL', session=r.session, crumb=r.crumb)\ndata = tickers.asset_profile\n\nCommon Use Cases\nPortfolio Analysis\nportfolio = Ticker('AAPL MSFT NVDA', asynchronous=True)\nsummary = portfolio.summary_detail\nearnings = portfolio.earnings\nhistory = portfolio.history(period='1y')\n\nScreening & Discovery\ns = Screener()\ngainers = s.get_screeners(['day_gainers'], count=20)\n# Returns DataFrame with price, volume, % change, etc.\n\nOptions Analysis\nnvda = Ticker('NVDA')\noptions = nvda.option_chain\n# Filter for calls/puts, strikes, expirations\n\nEarnings Calendar\ntickers = Ticker('AAPL MSFT NVDA')\ncalendar = tickers.calendar_events\n# Shows next earnings date + analyst estimates\n\nReference Documentation\n\nFull API docs at: /Users/henryzha/.openclaw/workspace-research/skills/yahooquery/references/\n\nindex.md - Overview of classes and functions\nticker/ - Detailed breakdown of all Ticker methods\nscreener.md - Screener class guide\nresearch.md - Research class (Premium)\nkeyword_arguments.md - Complete list of configuration options\nmisc.md - Global utility functions\nadvanced.md - Sharing sessions between Research and Ticker\nEnvironment\nInstallation: python3 -m pip install yahooquery\nDependencies: pandas, requests-futures, tqdm, beautifulsoup4, lxml\nPython Version: 3.7+\nNotes\nYahoo Finance may rate-limit or block requests. Use retry, backoff_factor, and status_forcelist for robustness.\nPremium features (Research class) require a paid Yahoo Finance Premium subscription.\nData accuracy and availability depend on Yahoo Finance's upstream data providers."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/512z/yahooquery",
    "publisherUrl": "https://clawhub.ai/512z/yahooquery",
    "owner": "512z",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/yahooquery",
    "downloadUrl": "https://openagent3.xyz/downloads/yahooquery",
    "agentUrl": "https://openagent3.xyz/skills/yahooquery/agent",
    "manifestUrl": "https://openagent3.xyz/skills/yahooquery/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/yahooquery/agent.md"
  }
}