← 返回 Skills 市场
williamkonggh

finddata.skill

作者 williamkongGH · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ✓ 安全检测通过
244
总下载
1
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install finddata
功能描述
Query global public data series across 10 sources using natural language for instant financial, economic, and trade metrics with your FindData API key.
使用说明 (SKILL.md)

FindData — Data Intelligence Skill

Query global data with a single API call. Supports natural language in English and Chinese.

Simple queries (stock price, GDP, exchange rate) use a fast path — Voyage AI selects the tool and rules extract parameters, no LLM needed (~1s). Complex queries (comparisons, derived metrics like profit margin) use LLM planning to generate a multi-step execution plan (~3-5s).

Endpoint: https://finddata.ai/api/query Method: POST Auth: X-API-Key

Content-Type: application/json Body: {"query": "your natural language question"}

Setup

  1. Get your API key at https://finddata.ai (free tier available)
  2. Set your environment variable:
export FINDDATA_API_KEY="odh_your_key_here"

If the user provides their key in the message (starts with odh_), extract it and use it directly.

Usage

curl -s -X POST https://finddata.ai/api/query \
  -H "X-API-Key: $FINDDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "Apple stock price"}'

More examples

# US economic data
curl -s -X POST https://finddata.ai/api/query \
  -H "X-API-Key: $FINDDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "US inflation rate"}'

# Chinese market data
curl -s -X POST https://finddata.ai/api/query \
  -H "X-API-Key: $FINDDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "贵州茅台股价"}'

# Derived metrics (triggers LLM calculation)
curl -s -X POST https://finddata.ai/api/query \
  -H "X-API-Key: $FINDDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "Apple profit margin"}'

# SEC filings
curl -s -X POST https://finddata.ai/api/query \
  -H "X-API-Key: $FINDDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "Tesla 10-K annual report"}'

# Global indicators
curl -s -X POST https://finddata.ai/api/query \
  -H "X-API-Key: $FINDDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "India GDP growth"}'

# International trade
curl -s -X POST https://finddata.ai/api/query \
  -H "X-API-Key: $FINDDATA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "China exports to USA 2023"}'

Sources

Source Best For Examples
Yahoo Finance US/global stock prices, ETFs, crypto, forex "AAPL price", "BTC-USD", "EURUSD"
FRED US economic data (840K+ series) "US GDP", "federal funds rate", "CPI"
China Market (Sina+Tencent) Chinese A-share market data "贵州茅台股价", "A股行情"
World Bank Global indicators, 217 economies "India GDP", "Brazil poverty rate"
SEC EDGAR US company filings (663K+ companies) "TSLA 10-K", "NVDA quarterly revenue"
BIS Central bank rates, financial stability "global policy rates"
Eurostat EU economic data, 27 member states "EU inflation", "Germany unemployment"
BOJ Bank of Japan, Japanese economy "Japan TANKAN", "BOJ policy rate"
Our World in Data Global development, health, environment "life expectancy", "CO2 emissions"
UN Comtrade International merchandise trade, 200+ countries "China exports to USA", "oil trade", "semiconductor imports"

Tool selection is automatic — Voyage AI matches your query to the best tool.

Response Format (v5.1)

The response includes: query result, execution details, data quality issues (if any), and usage info.

Always check success first. Then read data.records for the actual data.

Response Structure

{
  "query": "...",
  "success": true,
  "data": {
    "records": { ... },
    "sources": [ { "tool": "...", "source": "...", "dataType": "...", "latencyMs": 123 } ]
  },
  "derived_metrics": { ... },
  "execution": {
    "planMethod": "fast_path | llm | fallback",
    "plan": { "steps": 1, "requiresCalculation": false },
    "toolsUsed": [ { "tool": "...", "params": { ... }, "success": true, "latencyMs": 123 } ],
    "latency_ms": 456
  },
  "issues": [ { "type": "missing | partial | stale | error", "description": "..." } ],
  "usage": { "plan": "free", "latency_ms": 456, "monthly_limit": 100, "cooldown_seconds": 10 }
}

Key Fields

Field Type Description
success boolean Whether data was retrieved successfully
data.records object The actual data — structure depends on the tool used
data.sources array Which tools/sources provided the data
derived_metrics object or null Calculated metrics (profit margin, growth rate, etc.) — only present when calculation was needed
execution.planMethod string "fast_path" (simple query, no LLM), "llm" (complex query, LLM planned), or "fallback"
issues array or absent Data quality issues — missing data, partial results, stale data, or errors. Absent when no issues.

Example 1: Simple stock price (fast path)

Query: "Apple stock price"

{
  "query": "Apple stock price",
  "success": true,
  "data": {
    "records": {
      "ticker": "AAPL",
      "name": "Apple Inc.",
      "price": 173.50,
      "currency": "USD",
      "change": -2.15,
      "changePercent": -1.22,
      "volume": 54321000,
      "marketCap": 2700000000000,
      "pe": 28.5,
      "fiftyTwoWeekHigh": 199.62,
      "fiftyTwoWeekLow": 124.17
    },
    "sources": [
      { "tool": "get_stock_price", "source": "yahoo_finance", "dataType": "quote", "latencyMs": 450 }
    ]
  },
  "execution": {
    "planMethod": "fast_path",
    "plan": { "steps": 1, "requiresCalculation": false },
    "toolsUsed": [
      { "tool": "get_stock_price", "params": { "ticker": "AAPL" }, "purpose": "Fast-path: direct match", "success": true, "source": "yahoo_finance", "latencyMs": 450 }
    ],
    "latency_ms": 890
  },
  "usage": { "plan": "free", "latency_ms": 890, "monthly_limit": 100, "cooldown_seconds": 10 }
}

How to extract the price: response.data.records.price173.50

Example 2: Chinese A-Share (fast path)

Query: "贵州茅台股价"

{
  "query": "贵州茅台股价",
  "success": true,
  "data": {
    "records": {
      "type": "a_share_quote",
      "provider": "sina",
      "records": [
        {
          "code": "600519",
          "market": "SH",
          "name": "贵州茅台",
          "price": 1392.00,
          "open": 1395.00,
          "high": 1403.95,
          "low": 1391.01,
          "volume": 2758646
        }
      ]
    },
    "sources": [
      { "tool": "get_a_share_quote", "source": "china_market", "dataType": "a_share_quote", "latencyMs": 320 }
    ]
  },
  "execution": {
    "planMethod": "fast_path",
    "plan": { "steps": 1, "requiresCalculation": false },
    "toolsUsed": [
      { "tool": "get_a_share_quote", "params": { "stock": "贵州茅台" }, "purpose": "Fast-path: direct match", "success": true, "source": "china_market", "latencyMs": 320 }
    ],
    "latency_ms": 680
  },
  "usage": { "plan": "free", "latency_ms": 680, "monthly_limit": 100, "cooldown_seconds": 10 }
}

How to extract the price: response.data.records.records[0].price1392.00

Example 3: US economic data (fast path)

Query: "US unemployment rate"

{
  "query": "US unemployment rate",
  "success": true,
  "data": {
    "records": {
      "series_id": "UNRATE",
      "title": "Unemployment Rate",
      "frequency": "Monthly",
      "units": "Percent",
      "observations": [
        { "date": "2024-01-01", "value": "3.7" },
        { "date": "2024-02-01", "value": "3.9" }
      ]
    },
    "sources": [
      { "tool": "get_fred_series", "source": "fred", "dataType": "time_series", "latencyMs": 280 }
    ]
  },
  "execution": {
    "planMethod": "fast_path",
    "plan": { "steps": 1, "requiresCalculation": false },
    "toolsUsed": [
      { "tool": "get_fred_series", "params": { "series_id": "UNRATE" }, "success": true, "source": "fred", "latencyMs": 280 }
    ],
    "latency_ms": 620
  },
  "usage": { "plan": "free", "latency_ms": 620, "monthly_limit": 100, "cooldown_seconds": 10 }
}

How to extract the value: response.data.records.observations[0].value"3.7"

Example 4: Derived metrics (LLM planning + calculation)

Query: "Apple profit margin"

{
  "query": "Apple profit margin",
  "success": true,
  "data": {
    "records": {
      "type": "financials",
      "company": "APPLE INC",
      "cik": "0000320193",
      "metrics": {
        "Revenues": { "2024-Q3": 85777000000, "2024-Q2": 90753000000 },
        "NetIncomeLoss": { "2024-Q3": 21448000000, "2024-Q2": 23636000000 }
      }
    },
    "sources": [
      { "tool": "get_company_financials", "source": "sec_edgar", "dataType": "financials", "latencyMs": 1200 }
    ]
  },
  "derived_metrics": {
    "profit_margin": {
      "2024-Q3": "25.0%",
      "2024-Q2": "26.0%"
    },
    "calculation": "Net Income / Revenue"
  },
  "execution": {
    "planMethod": "llm",
    "plan": { "steps": 1, "requiresCalculation": true, "calculation": "profit_margin = NetIncomeLoss / Revenues" },
    "toolsUsed": [
      { "tool": "get_company_financials", "params": { "ticker": "AAPL" }, "success": true, "source": "sec_edgar", "latencyMs": 1200 }
    ],
    "latency_ms": 4500
  },
  "usage": { "plan": "free", "latency_ms": 4500, "monthly_limit": 100, "cooldown_seconds": 10 }
}

How to extract derived metrics: response.derived_metrics.profit_margin{ "2024-Q3": "25.0%", ... }

Example 5: Data quality issues

When data cannot be fully retrieved, the issues array explains what happened:

{
  "success": false,
  "issues": [
    {
      "type": "error",
      "description": "Failed to fetch data from get_stock_price: Ticker 'INVALID' not found",
      "tool": "get_stock_price"
    }
  ]
}

Issue types:

  • "missing" — No data returned at all
  • "partial" — Some data sources failed, partial results available
  • "stale" — Data may be outdated (market closed, delayed feed)
  • "error" — Tool execution failed with an error

Data Extraction Quick Reference

Source Tool data.records structure Price/Value Path
Yahoo Finance get_stock_price { ticker, name, price, ... } data.records.price
China Market get_a_share_quote { type, records: [{ price, ... }] } data.records.records[0].price
FRED get_fred_series { series_id, observations: [{ date, value }] } data.records.observations[0].value
World Bank get_world_bank_indicator { indicator, records: [{ value, ... }] } data.records.records[0].value
SEC EDGAR get_company_financials { company, metrics: { ... } } data.records.metrics
BIS get_bis_data { records: [{ value, ... }] } data.records.records[0].value
Eurostat get_eurostat_data { records: [{ value, ... }] } data.records.records[0].value
BOJ get_boj_data { records: [{ value, ... }] } data.records.records[0].value
OWID get_owid_indicator { entities: [{ entity, values: [...] }] } data.records.entities[0].values
UN Comtrade get_trade_data { summary: { totalExportsUSD, ... }, records: [...] } data.records.summary.totalExportsUSD

Parameters

Field Required Description
query Yes Natural language question (English or Chinese)

Error Handling

When success is false, check the issues array for details. The error field may also be present at the top level.

{
  "success": false,
  "data": { "records": null, "sources": [] },
  "issues": [
    { "type": "error", "description": "Failed to fetch data: API timeout" }
  ],
  "error": "All data sources failed"
}

HTTP Status Codes

Code Meaning
200 Success (check success field for data-level errors)
400 Missing or empty query
401 Invalid or missing API key
429 Rate limit exceeded — check retry_after_ms and wait
500 Server error
安全使用建议
This skill legitimately needs your FindData API key to work. To minimize risk, provide the key only if you trust the skill and the FindData service; prefer setting the key as an environment variable (FINDDATA_API_KEY) rather than pasting it inline into a chat message. Note the SKILL.md instructs the agent to extract a key from your message if you include it — do not share this key in public channels. If you install the skill and later suspect the key was exposed, revoke or rotate it at finddata.ai. Also verify the finddata.ai service and the skill author before using in production.
功能分析
Type: OpenClaw Skill Name: finddata Version: 1.0.0 The skill is a legitimate integration for the FindData API (finddata.ai), providing access to various economic and financial data sources. The Python client in `scripts/finddata.py` is a standard wrapper using the `requests` library, and the instructions in `SKILL.md` correctly guide the AI agent on how to handle API authentication and query formatting without any evidence of malicious intent, data exfiltration, or harmful prompt injection.
能力评估
Purpose & Capability
The name/description, SKILL.md, and the included Python client all consistently target the finddata.ai API. The code calls https://finddata.ai/api endpoints and the runtime instructions describe using an X-API-Key — these requirements are coherent with the skill's stated purpose.
Instruction Scope
The SKILL.md explicitly instructs the agent to extract a FindData API key from the user's message (or to prompt for it) and to always use the real key. That behavior is necessary for the skill to authenticate, but it means the agent will look for and accept sensitive keys in user messages — a privacy consideration. The instructions do not ask for unrelated files, credentials, or system data.
Install Mechanism
No install spec (instruction-only) and the only code file is a small, unobfuscated Python client using requests. Nothing is downloaded from arbitrary URLs and no archive extraction or package installs are required by the skill itself.
Credentials
The skill uses a single API credential (FINDDATA_API_KEY) and an optional FINDDATA_BASE_URL. The registry metadata listed no required env vars, but the SKILL.md and client expect FINDDATA_API_KEY; this is a minor metadata mismatch but the environment access itself is proportional to the stated purpose (only the FindData API key is needed).
Persistence & Privilege
The skill does not request permanent/always-on privilege (always:false) and does not modify other skills or system settings. It runs with normal, transient permissions for an API client.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install finddata
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /finddata 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
Initial release of the finddata skill. - Instantly query over 1 million public data series from 10 major sources using natural language (English & Chinese). - Supports both simple (fast-path) and complex (LLM planning) data queries. - Works with data from Yahoo Finance, FRED, World Bank, SEC EDGAR, China Market, BIS, Eurostat, BOJ, Our World in Data, and UN Comtrade. - Secure API usage—requires users to provide their FindData API key with each request. - Returns detailed responses, including data, execution plan, issues, and usage info.
元数据
Slug finddata
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

finddata.skill 是什么?

Query global public data series across 10 sources using natural language for instant financial, economic, and trade metrics with your FindData API key. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 244 次。

如何安装 finddata.skill?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install finddata」即可一键安装,无需额外配置。

finddata.skill 是免费的吗?

是的,finddata.skill 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

finddata.skill 支持哪些平台?

finddata.skill 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 finddata.skill?

由 williamkongGH(@williamkonggh)开发并维护,当前版本 v1.0.0。

💬 留言讨论