#574 by GitHub stars

simonlin1212/global-stock-data

美股港股全栈数据工具包(官方源优先)— 十七层架构·50+端点·18数据源·全部零鉴权。在原有行情/K线/技术指标(MA/MACD/RSI/KDJ/布林带)/基本面/资金面/期权/SEC Filing/工具八层之上,新增:CBOE官方期权链(完整希腊字母+IV+0DTE流+异动识别)、FINRA全市场每日空头成交量、SEC EDGAR申报事件流(Form4内部人/8-K/13F机构持仓)、EDGAR全市场横截面筛选、美债收益率曲线/CFTC COT/财报日历;V2.1 新增全球利率汇率层(BIS 38家央行政策利率、欧洲央行汇率/利率/欧元区收益率曲线、纽约联储SOFR/EFFR、美联储H.1

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Network or broad shell → After Network or broad shell

b97923970196 → b7f220296607

A local comparison is unavailable. You can inspect the recorded versions on GitHub.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → b97923970196

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit b7f22029660769baa29a4403cc61c285f35f8905

1.8kGitHub stars
17stars in 7 days
1skill in this repository
7commits in 30 days

Heat

6.2
  • Star growth, last 7 daysAhead of 84% of tracked repositories
  • Star growth, last 24 hoursAhead of 84% of tracked repositories
  • Rank movement, last 7 daysAhead of 30% of tracked repositories
  • Commits, last 30 daysAhead of 73% of tracked repositories
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekAhead of 0% of tracked repositories

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Aug 2, 2026Nov 7, 20261,843

Individual skills in this repository

How it works

global-stock-data

When your agent uses it

美股港股全栈数据工具包(官方源优先)— 十七层架构·50+端点·18数据源·全部零鉴权。在原有行情/K线/技术指标(MA/MACD/RSI/KDJ/布林带)/基本面/资金面/期权/SEC Filing/工具八层之上,新增:CBOE官方期权链(完整希腊字母+IV+0DTE流+异动识别)、FINRA全市场每日空头成交量、SEC EDGAR申报事件流(Form4内部人/8-K/13F机构持仓)、EDGAR全市场横截面筛选、美债收益率曲线/CFTC COT/财报日历;V2.1 新增全球利率汇率层(BIS 38家央行政策利率、欧洲央行汇率/利率/欧元区收益率曲线、纽约联储SOFR/EFFR、美联储H.10汇率/H.6货币存量、美国财政部国债拍卖/联邦债务),Yahoo K线修复全历史日线与时区并支持日本/台湾/韩国/印度/欧洲等市场代码;V2.2 新增CBOE波动率指数历史与VIX期限结构、FINRA做空余额(每月两期)、SEC Form 4内部人逐笔交易与13F机构持仓解析、台股官方OpenAPI(证交所+柜买中心,可商用)、美国能源信息署EIA原油/天然气价格与库存;V2.3 新增美国宏观层(美国劳工统计局BLS公共API免注册:CPI/核心CPI/非农/失业率/时薪/PPI/JOLTS职位空缺/进口价格/ECI/生产率,附官方发布日程与修订规则,劳工部每周初请/续请失业金)。每个数据源标注合规级别与条款原文。内嵌全部调用代码,自包含零依赖外部文件。适用于美股港股个股分析、全市场筛选、财报解读、期权与0DTE策略、做空数据追踪、内部人交易与13F持仓、SEC文件检索、资金流与机构持仓分析、全球利率汇率与央行政策跟踪、VIX波动率、台股、原油天然气、美国CPI/非农/失业金等宏观数据与发布日程等场景。

What it loads into context

Frontmatter

584 tokens

Always available to the agent

SKILL.md

70,261 tokens

When the skill is activated

Reference documents

30,751 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 端点路由速查(按需定位,不必通读全文)
  2. 数据源合规分级(取用前必读 — 各级均引条款原文)
  3. When to Activate
  4. Prerequisites
  5. 市场代码规则
  6. 共用 Helper 函数
  7. Layer 1: 行情层
  8. Layer 2: K线层
  9. Layer 3: 技术指标层
  10. Layer 4: 基本面层
  11. Layer 5: 资金面层
  12. Layer 6: 期权层
  13. Layer 7: SEC Filing 层(仅美股)
  14. Layer 8: 工具层
  15. Layer 9: 做空层 — FINRA(B 级 ⭐ V2.0 新增 · V2.2 补做空余额 · 仅美股)
  16. Layer 10: 申报事件流 — SEC EDGAR(S 级 ⭐ V2.0 新增 · V2.2 补 Form 4 / 13F 解析 · 仅美股)
  17. Layer 11: 全市场横截面 — EDGAR frames(S 级 ⭐ V2.0 新增 · 免费 screener)
  18. Layer 12: 宏观 / 日历(S 级为主 ⭐ V2.0 新增)
  19. Layer 13: 全球利率 / 汇率 / 央行(S 级 ⭐ V2.1 新增)
  20. Layer 14: 台股 — 台湾证交所 / 柜买中心 OpenAPI(S 级 ⭐ V2.2 新增)
  21. Layer 15: 能源 — 美国能源信息署 EIA(库存 S 级 · 现货价格 B 级 ⭐ V2.2 新增)
  22. Layer 16: 美国宏观 — 劳工统计局 BLS / 劳工部失业金申领(S 级 ⭐ V2.3 新增)
  23. 数据源优先级
  24. 数据源汇总

Files

  • CHANGELOG.mddoc41,946 bytes
  • LICENSEasset10,760 bytes
  • README.mddoc30,041 bytes
  • README_zh.mddoc29,896 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • SKILL.mdcore233,074 bytes
  • assets/bmc-qr.pngasset80,325 bytes
  • assets/bmc-sponsor.pngasset60,327 bytes
Read SKILL.md

> 📦 项目主页:https://github.com/simonlin1212/global-stock-data — 更新、反馈、支持作者
> 
> 作者:Simon 林 · X [@linsizhen](https://x.com/linsizhen) · 邮箱:simonlin0423@gmail.com

# 美股港股全栈数据工具包 V2.3 — 官方源优先

十七层数据架构,50+ 个端点,18 个数据源,全部零鉴权,实测可用(2026-07-24 全量回归验证;V2.1 新增与修复部分 2026-10-11 实测;V2.2 新增部分 2026-10-12 实测;V2.3 新增部分 2026-11-02 实测)。层数按「原有八层 + V2.0 五层(CBOE 期权链单算一层)+ V2.1 一层 + V2.2 两层(台股、能源)+ V2.3 一层(美国宏观)」计;V2.2 的波动率指数、做空余额、Form 4 / 13F 解析是原有层里的新小节,不另计层。

**V2.0 设计原则:官方源优先。** 新增层的主力数据取自美国政府(SEC EDGAR / Treasury / CFTC)、
自律组织(FINRA)与交易所(CBOE / Nasdaq)的公开端点;V2.1 再加国际清算银行、欧洲央行、
美联储、纽约联储四家官方机构;V2.2 再加台湾证交所、柜买中心与美国能源信息署 EIA;V2.3 再加美国劳工部(劳工统计局 BLS + 每周失业金申领)。**每个数据源都标注了合规级别与条款原文**
(见下方「数据源合规分级」)——"官方"不等于"可自由使用",各源差异极大。

**本工具只分发代码,不分发、不转售任何市场数据**;数据由使用者自行按各源条款获取。
View the complete source on GitHub

Skills included

  • global-stock-data

Repository facts

License
Apache-2.0
Created
May 20, 2026
Last pushed
Nov 2, 2026
Forks
272
Open issues
0
Project activity
Active

Rank over the last 12 weeks

Now #574 · best #454 · down 65 in 30 days

  1. #566 on Nov 1
  2. #568 on Nov 2
  3. #569 on Nov 3
  4. #570 on Nov 4
  5. #572 on Nov 5
  6. #574 since Nov 6
74 earlier periods
  1. #437 on Aug 2
  2. #444 on Aug 7
  3. #447 on Aug 8
  4. #442 on Aug 9
  5. #460 on Aug 10
  6. #456 on Aug 11
  7. #455 on Aug 12
  8. #462 on Aug 13
  9. #457 on Aug 14
  10. #445 on Aug 15
  11. #454 on Aug 16
  12. #464 on Aug 18
  13. #463 on Aug 19
  14. #462 on Aug 20
  15. #464 on Aug 21
  16. #467 from Aug 23 to Aug 24
  17. #472 on Aug 25
  18. #478 on Aug 27
  19. #473 on Aug 28
  20. #464 on Aug 29
  21. #454 on Aug 30
  22. #475 on Aug 31
  23. #480 on Sep 2
  24. #484 on Sep 3
  25. #469 on Sep 4
  26. #470 on Sep 5
  27. #474 on Sep 6
  28. #477 on Sep 7
  29. #490 on Sep 8
  30. #483 on Sep 9
  31. #485 on Sep 10
  32. #480 on Sep 11
  33. #479 on Sep 12
  34. #476 on Sep 13
  35. #493 on Sep 14
  36. #487 on Sep 15
  37. #495 on Sep 16
  38. #490 on Sep 17
  39. #482 on Sep 19
  40. #490 from Sep 20 to Sep 21
  41. #502 on Sep 22
  42. #493 on Sep 23
  43. #482 on Sep 24
  44. #481 on Sep 25
  45. #478 on Sep 26
  46. #495 on Sep 27
  47. #497 on Sep 28
  48. #508 on Sep 29
  49. #501 on Sep 30
  50. #493 on Oct 1
  51. #492 on Oct 2
  52. #478 on Oct 3
  53. #474 on Oct 4
  54. #482 on Oct 5
  55. #495 on Oct 6
  56. #494 on Oct 7
  57. #509 from Oct 8 to Oct 9
  58. #503 from Oct 10 to Oct 11
  59. #513 on Oct 12
  60. #511 on Oct 13
  61. #514 from Oct 14 to Oct 15
  62. #517 on Oct 16
  63. #507 on Oct 17
  64. #511 on Oct 18
  65. #524 on Oct 19
  66. #532 on Oct 21
  67. #523 on Oct 22
  68. #517 on Oct 23
  69. #506 on Oct 24
  70. #556 on Oct 25
  71. #563 on Oct 28
  72. #561 on Oct 29
  73. #563 on Oct 30
  74. #564 on Oct 31

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 52 notes
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • No broad tool permissions
  • No dangerous shell commands
  • 210 network referencesin 5 files: SKILL.md:8 README.md:10 README_zh.md:10 and 2 more
  • 2 obfuscation signalsin 1 file: SKILL.md:3705
  • No instruction overrides
  • No executable scripts
  • No access to secrets
  • No requests to vote in Hot
Show all 212 signals by file

CHANGELOG.md

  • Network accessline 278
    感谢 [@HoRiZonn0](https://github.com/HoRiZonn0)(issue #2)提供完整字段对照。逐条实测复现后确认其报告**全部正确**,并发现比报告更严重的后果:
  • Network accessline 402
    ### 修复(PR #1 @APTX4869-maker + 连带 bug) - **5 个函数漏传 `params` 导致始终拿不到数据(PR #1)**:`stock_quote_eastmoney` / `stock_kline_yahoo` / `fund_flow_daily` / `stock_search` / `market_stock_list` 都构造了 `params` dict,但 `requests.get(url, ...)` 时漏了 `param
  • Network accessline 403
    - **5 个函数漏传 `params` 导致始终拿不到数据(PR #1)**:`stock_quote_eastmoney` / `stock_kline_yahoo` / `fund_flow_daily` / `stock_search` / `market_stock_list` 都构造了 `params` dict,但 `requests.get(url, ...)` 时漏了 `params=params`,请求实际是裸 URL → 服务端返回空(东财 push2 

LICENSE

  • Network accessline 1
    Apache License                            Version 2.0, January 2004                         http://www.apache.org/licenses/
  • Network accessline 3
    http://www.apache.org/licenses/
  • Network accessline 184
    http://www.apache.org/licenses/LICENSE-2.0

README.md

  • Network accessline 10
    <p align="center">   <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache 2.0"></a>
  • Network accessline 11
    <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache 2.0"></a>
  • Network accessline 12
    <a href="https://www.python.org/"><img src="https://img.shields.io/badge/Python-3.9+-3776AB?logo=python&logoColor=white" alt="Python 3.9+"></a>
  • Network accessline 13
    <a href="https://github.com/simonlin1212/global-stock-data/stargazers"><img src="https://img.shields.io/github/stars/simonlin1212/global-stock-data?style=social" alt="GitHub stars"></a>
  • Network accessline 14
    <a href="#architecture"><img src="https://img.shields.io/badge/layers-17-2ea44f.svg" alt="Layers"></a>
  • Network accessline 15
    <a href="#endpoints"><img src="https://img.shields.io/badge/endpoints-50%2B-2ea44f.svg" alt="Endpoints"></a>
  • Network accessline 16
    <a href="#data-sources"><img src="https://img.shields.io/badge/sources-18-2ea44f.svg" alt="Sources"></a>
  • Network accessline 17
    <a href="#data-sources"><img src="https://img.shields.io/badge/auth-zero-success.svg" alt="Zero-Auth"></a>
  • Network accessline 45
    > Compatible with [Claude Code](https://github.com/anthropics/claude-code) · [Codex](https://github.com/openai/codex) · [OpenClaw](https://github.com/openclaw/openclaw). The Skill file is structured Markdown + embedded Python — any AI codin
  • Network accessline 120
    # 2. Download SKILL.md curl -o ~/.claude/skills/global-stock-data/SKILL.md \
  • Network accessline 121
    curl -o ~/.claude/skills/global-stock-data/SKILL.md \
  • Network accessline 122
    https://raw.githubusercontent.com/simonlin1212/global-stock-data/main/SKILL.md
  • Network accessline 317
    **Q: How does this relate to a-stock-data?** Sister project. [a-stock-data](https://github.com/simonlin1212/a-stock-data) covers China A-shares; global-stock-data covers US and HK. Install both — they don't conflict.
  • Network accessline 318
    Sister project. [a-stock-data](https://github.com/simonlin1212/a-stock-data) covers China A-shares; global-stock-data covers US and HK. Install both — they don't conflict.
  • Network accessline 362
    [Apache License 2.0](./LICENSE) — **Author:** Simon Lin · X [@linsizhen](https://x.com/linsizhen) · Email: [simonlin0423@gmail.com](mailto:simonlin0423@gmail.com)

README_zh.md

  • Network accessline 10
    <p align="center">   <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache 2.0"></a>
  • Network accessline 11
    <a href="LICENSE"><img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg" alt="License: Apache 2.0"></a>
  • Network accessline 12
    <a href="https://www.python.org/"><img src="https://img.shields.io/badge/Python-3.9+-3776AB?logo=python&logoColor=white" alt="Python 3.9+"></a>
  • Network accessline 13
    <a href="https://github.com/simonlin1212/global-stock-data/stargazers"><img src="https://img.shields.io/github/stars/simonlin1212/global-stock-data?style=social" alt="GitHub stars"></a>
  • Network accessline 14
    <a href="#架构"><img src="https://img.shields.io/badge/层数-17-2ea44f.svg" alt="层数"></a>
  • Network accessline 15
    <a href="#端点"><img src="https://img.shields.io/badge/端点-50%2B-2ea44f.svg" alt="端点"></a>
  • Network accessline 16
    <a href="#数据源"><img src="https://img.shields.io/badge/数据源-18-2ea44f.svg" alt="数据源"></a>
  • Network accessline 17
    <a href="#数据源"><img src="https://img.shields.io/badge/鉴权-零-success.svg" alt="零鉴权"></a>
  • Network accessline 43
    > 兼容 [Claude Code](https://github.com/anthropics/claude-code) · [Codex](https://github.com/openai/codex) · [OpenClaw](https://github.com/openclaw/openclaw)。Skill 文件本质是结构化 Markdown + 内嵌 Python,任何支持上下文注入的 AI 编程助手都能用。
  • Network accessline 118
    # 2. 下载 SKILL.md curl -o ~/.claude/skills/global-stock-data/SKILL.md \
  • Network accessline 119
    curl -o ~/.claude/skills/global-stock-data/SKILL.md \
  • Network accessline 120
    https://raw.githubusercontent.com/simonlin1212/global-stock-data/main/SKILL.md
  • Network accessline 320
    **和 a-stock-data 什么关系?** 姊妹项目。[a-stock-data](https://github.com/simonlin1212/a-stock-data) 覆盖 A 股,global-stock-data 覆盖美股,两个 Skill 可同时装、互不冲突。
  • Network accessline 354
    [Apache License 2.0](./LICENSE) — 自由使用,注明出处即可。**Author:** Simon Lin · X [@linsizhen](https://x.com/linsizhen) · Email: [simonlin0423@gmail.com](mailto:simonlin0423@gmail.com)

SKILL.md

  • Network accessline 8
    > 📦 项目主页:https://github.com/simonlin1212/global-stock-data — 更新、反馈、支持作者
  • Network accessline 10
    > 作者:Simon 林 · X [@linsizhen](https://x.com/linsizhen) · 邮箱:simonlin0423@gmail.com
  • Network accessline 172
    | **台湾证交所 / 柜买中心 OpenAPI** | **授权**:本工具用到的 13 个数据集都登记在台湾「政府资料开放平台」,授权方式为《政府资料开放授权条款-第1版》:*「授權使用者不限目的、時間及地域、非專屬、不可撤回、免授權金進行利用」*,但须按条款的「显名声明」**注明来源**,否则视为未取得授权。两家网站条款的知识产权一节写明,经授权给政府资料开放平台的资料 *「不在此限」*,同时要求转载 *「清楚註明資料來源,並確保資料完整性,不得任意增刪」*。**程序下
  • Network accessline 174
    | **美国劳工部 ETA**(每周失业金申领) | 劳工部版权页:*"Materials created by the federal government are generally part of the **public domain** and may be used, reproduced and distributed without permission."* 不得以暗示与劳工部有关联或受其认可的方式使用;可注明来源 *"U.S. Department of 
  • Network accessline 324
    s = requests.Session()
  • Network accessline 327
    # Step 1: 获取 cookie     s.get('https://fc.yahoo.com', timeout=10)
  • Network accessline 328
    s.get('https://fc.yahoo.com', timeout=10)
  • Network accessline 330
    # Step 2: 获取 crumb     r = s.get('https://query2.finance.yahoo.com/v1/test/getcrumb', timeout=10)
  • Network accessline 331
    r = s.get('https://query2.finance.yahoo.com/v1/test/getcrumb', timeout=10)
  • Network accessline 339
    """Yahoo quoteSummary 统一查询"""     s = get_yahoo_session()     r = s.get(f'https://query2.finance.yahoo.com/v10/finance/quoteSummary/{symbol}', params={
  • Network accessline 340
    s = get_yahoo_session()     r = s.get(f'https://query2.finance.yahoo.com/v10/finance/quoteSummary/{symbol}', params={         'modules': ','.join(modules),
  • Network accessline 341
    r = s.get(f'https://query2.finance.yahoo.com/v10/finance/quoteSummary/{symbol}', params={
  • Network accessline 353
    UA = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36" DATACENTER_URL = "https://datacenter-web.eastmoney.com/api/data/v1/get"
  • Network accessline 354
    DATACENTER_URL = "https://datacenter-web.eastmoney.com/api/data/v1/get"
  • Network accessline 364
    "source": "WEB", "client": "WEB",     }     r = requests.get(DATACENTER_URL, params=params, headers={"User-Agent": UA}, timeout=15)
  • Network accessline 365
    }     r = requests.get(DATACENTER_URL, params=params, headers={"User-Agent": UA}, timeout=15)     d = r.json()
  • Network accessline 366
    r = requests.get(DATACENTER_URL, params=params, headers={"User-Agent": UA}, timeout=15)
  • Network accessline 478
    try:         if data is not None or json_body is not None:             r = requests.post(url, params=params, data=data, json=json_body, headers=h, timeout=timeout)
  • Network accessline 479
    if data is not None or json_body is not None:             r = requests.post(url, params=params, data=data, json=json_body, headers=h, timeout=timeout)         else:
  • Network accessline 480
    r = requests.post(url, params=params, data=data, json=json_body, headers=h, timeout=timeout)
  • Network accessline 481
    else:             r = requests.get(url, params=params, headers=h, timeout=timeout)         r.raise_for_status()
  • Network accessline 482
    r = requests.get(url, params=params, headers=h, timeout=timeout)
  • Network accessline 551
    ticker: 纯字母,如 "AAPL", "TSLA", "BABA"     """     url = f"https://hq.sinajs.cn/list=gb_{ticker.lower()}"
  • Network accessline 552
    """     url = f"https://hq.sinajs.cn/list=gb_{ticker.lower()}"     r = requests.get(url, headers={
  • Network accessline 553
    url = f"https://hq.sinajs.cn/list=gb_{ticker.lower()}"     r = requests.get(url, headers={         "Referer": "https://finance.sina.com.cn/",
  • Network accessline 554
    r = requests.get(url, headers={
  • Network accessline 555
    "Referer": "https://finance.sina.com.cn/",
  • Network accessline 590
    ticker: 纯字母,如 "AAPL"     """     url = f"https://qt.gtimg.cn/q=us{ticker.upper()}"
  • Network accessline 591
    """     url = f"https://qt.gtimg.cn/q=us{ticker.upper()}"     r = requests.get(url, timeout=10)
  • Network accessline 592
    url = f"https://qt.gtimg.cn/q=us{ticker.upper()}"     r = requests.get(url, timeout=10)     r.encoding = "gbk"
  • Network accessline 593
    r = requests.get(url, timeout=10)
  • Network accessline 634
    code: 五位数字,如 "00700", "09988"     """     url = f"https://qt.gtimg.cn/q=r_hk{code}"
  • Network accessline 635
    """     url = f"https://qt.gtimg.cn/q=r_hk{code}"     r = requests.get(url, timeout=10)
  • Network accessline 636
    url = f"https://qt.gtimg.cn/q=r_hk{code}"     r = requests.get(url, timeout=10)     r.encoding = "gbk"
  • Network accessline 637
    r = requests.get(url, timeout=10)
  • Network accessline 676
    code: 五位数字,如 "00700"     """     url = f"https://hq.sinajs.cn/list=rt_hk{code}"
  • Network accessline 677
    """     url = f"https://hq.sinajs.cn/list=rt_hk{code}"     r = requests.get(url, headers={
  • Network accessline 678
    url = f"https://hq.sinajs.cn/list=rt_hk{code}"     r = requests.get(url, headers={         "Referer": "https://finance.sina.com.cn/",
  • Network accessline 679
    r = requests.get(url, headers={
  • Network accessline 680
    "Referer": "https://finance.sina.com.cn/",
  • Network accessline 737
    curl -s "https://qt.gtimg.cn/q=usAAPL"  | iconv -f GBK -t UTF-8 | tr '~' '\n' | cat -n
  • Network accessline 738
    curl -s "https://qt.gtimg.cn/q=hk00700" | iconv -f GBK -t UTF-8 | tr '~' '\n' | cat -n
  • Network accessline 741
    > 港股 `hk` 与 `r_hk` 两种前缀返回的字段布局完全一致(均 78 个),可互换。 > 感谢 [@HoRiZonn0](https://github.com/HoRiZonn0) 在 issue #2 中提供的完整对照,本表据此逐条复测后修订。
  • Network accessline 742
    > 感谢 [@HoRiZonn0](https://github.com/HoRiZonn0) 在 issue #2 中提供的完整对照,本表据此逐条复测后修订。
  • Network accessline 758
    如不确定前缀,先调 stock_search() 获取 mkt_num     """     url = "https://push2.eastmoney.com/api/qt/stock/get"
  • Network accessline 759
    """     url = "https://push2.eastmoney.com/api/qt/stock/get"     params = {
  • Network accessline 760
    url = "https://push2.eastmoney.com/api/qt/stock/get"
  • Network accessline 763
    "fields": "f43,f44,f45,f46,f47,f48,f55,f57,f58,f59,f60,f170",     }     r = requests.get(url, params=params, timeout=10)
  • Network accessline 764
    }     r = requests.get(url, params=params, timeout=10)     d = r.json().get("data")
  • Network accessline 765
    r = requests.get(url, params=params, timeout=10)
  • Network accessline 812
    返回: [{date, open, high, low, close, volume}, ...]     """     url = "https://stock.finance.sina.com.cn/usstock/api/jsonp.php/var/US_MinKService.getDailyK"
  • Network accessline 813
    """     url = "https://stock.finance.sina.com.cn/usstock/api/jsonp.php/var/US_MinKService.getDailyK"     params = {"symbol": ticker.upper(), "num": num}
  • Network accessline 814
    url = "https://stock.finance.sina.com.cn/usstock/api/jsonp.php/var/US_MinKService.getDailyK"     params = {"symbol": ticker.upper(), "num": num}     r = requests.get(url, params=params, headers={"Referer": "https://finance.sina.com.cn/"}, t
  • Network accessline 815
    params = {"symbol": ticker.upper(), "num": num}     r = requests.get(url, params=params, headers={"Referer": "https://finance.sina.com.cn/"}, timeout=15)     text = r.text
  • Network accessline 816
    r = requests.get(url, params=params, headers={"Referer": "https://finance.sina.com.cn/"}, timeout=15)
  • Network accessline 979
    url = f"https://query2.finance.yahoo.com/v8/finance/chart/{symbol}"     r = requests.get(url, params=params, timeout=20, headers={
  • Network accessline 980
    r = requests.get(url, params=params, timeout=20, headers={
  • Network accessline 1570
    返回: [{date, main_net, big_net, mid_net, small_net, main_pct, ...}, ...]     """     url = "https://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get"
  • Network accessline 1571
    """     url = "https://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get"     params = {
  • Network accessline 1572
    url = "https://push2his.eastmoney.com/api/qt/stock/fflow/daykline/get"
  • Network accessline 1578
    "lmt": limit,     }     r = requests.get(url, params=params, timeout=15)
  • Network accessline 1579
    }     r = requests.get(url, params=params, timeout=15)     d = r.json()
  • Network accessline 1580
    r = requests.get(url, params=params, timeout=15)
  • Network accessline 1619
    CBOE_BASE = "https://cdn.cboe.com/api/global/delayed_quotes"
  • Network accessline 1797
    r = s.get(f"https://query2.finance.yahoo.com/v7/finance/options/{symbol}",
  • Network accessline 1863
    raise ValueError(f"无效的指数代码: {index!r}")     start, end = _check_range(start, end, _YMD)     raw = official_get(f"https://cdn.cboe.com/api/global/us_indices/daily_prices/{idx}_History.csv")
  • Network accessline 1864
    start, end = _check_range(start, end, _YMD)     raw = official_get(f"https://cdn.cboe.com/api/global/us_indices/daily_prices/{idx}_History.csv")     reader = csv.reader(io.StringIO(raw))
  • Network accessline 1865
    raw = official_get(f"https://cdn.cboe.com/api/global/us_indices/daily_prices/{idx}_History.csv")
  • Network accessline 1952
    返回: {"company_name": ..., "filings": [{form, date, accession_number, primary_document}, ...]}     """     url = f"https://data.sec.gov/submissions/CIK{cik}.json"
  • Network accessline 1953
    """     url = f"https://data.sec.gov/submissions/CIK{cik}.json"     r = requests.get(url, headers=SEC_HEADERS, timeout=15)
  • Network accessline 1954
    url = f"https://data.sec.gov/submissions/CIK{cik}.json"     r = requests.get(url, headers=SEC_HEADERS, timeout=15)     r.raise_for_status()
  • Network accessline 1955
    r = requests.get(url, headers=SEC_HEADERS, timeout=15)
  • Network accessline 1975
    "primary_document": primary_docs[i] if i < len(primary_docs) else "",             "description": descriptions[i] if i < len(descriptions) else "",             "url": f"https://www.sec.gov/Archives/edgar/data/{int(cik)}/{accessions[i].replac
  • Network accessline 1976
    "description": descriptions[i] if i < len(descriptions) else "",             "url": f"https://www.sec.gov/Archives/edgar/data/{int(cik)}/{accessions[i].replace('-', '')}/{primary_docs[i]}" if i < len(primary_docs) and primary_docs[i] else "
  • Network accessline 1977
    "url": f"https://www.sec.gov/Archives/edgar/data/{int(cik)}/{accessions[i].replace('-', '')}/{primary_docs[i]}" if i < len(primary_docs) and primary_docs[i] else "",
  • Network accessline 2001
    返回: {"company": ..., "metrics": {"Revenue": [{end, val, form, filed}, ...], ...}}     """     url = f"https://data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json"
  • Network accessline 2002
    """     url = f"https://data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json"     r = requests.get(url, headers=SEC_HEADERS, timeout=15)
  • Network accessline 2003
    url = f"https://data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json"     r = requests.get(url, headers=SEC_HEADERS, timeout=15)     r.raise_for_status()
  • Network accessline 2004
    r = requests.get(url, headers=SEC_HEADERS, timeout=15)
  • Network accessline 2086
    105=NASDAQ, 106=NYSE, 107=美股ETF, 116=港股     """     url = "https://searchapi.eastmoney.com/api/suggest/get"
  • Network accessline 2087
    """     url = "https://searchapi.eastmoney.com/api/suggest/get"     params = {
  • Network accessline 2088
    url = "https://searchapi.eastmoney.com/api/suggest/get"
  • Network accessline 2093
    "count": count,     }     r = requests.get(url, params=params, timeout=10)
  • Network accessline 2094
    }     r = requests.get(url, params=params, timeout=10)     d = r.json()
  • Network accessline 2095
    r = requests.get(url, params=params, timeout=10)
  • Network accessline 2125
    注意: 需要先获取 Yahoo cookie 才能调用,否则返回 400     """     s = requests.Session()
  • Network accessline 2126
    """     s = requests.Session()     s.headers["User-Agent"] = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36"
  • Network accessline 2127
    s = requests.Session()
  • Network accessline 2129
    s.get("https://fc.yahoo.com", timeout=10)  # 获取 cookie
  • Network accessline 2131
    url = "https://query2.finance.yahoo.com/v1/finance/search"
  • Network accessline 2162
    global _cik_cache     if not _cik_cache:         r = requests.get("https://www.sec.gov/files/company_tickers.json",
  • Network accessline 2163
    if not _cik_cache:         r = requests.get("https://www.sec.gov/files/company_tickers.json",                          headers=SEC_HEADERS, timeout=15)
  • Network accessline 2164
    r = requests.get("https://www.sec.gov/files/company_tickers.json",
  • Network accessline 2205
    url = "https://push2.eastmoney.com/api/qt/clist/get"
  • Network accessline 2212
    "po": 1 if sort_desc else 0,     }     r = requests.get(url, params=params, timeout=15)
  • Network accessline 2213
    }     r = requests.get(url, params=params, timeout=15)     d = r.json()
  • Network accessline 2214
    r = requests.get(url, params=params, timeout=15)
  • Network accessline 2280
    try:             raw = official_get(                 f"https://cdn.finra.org/equity/regsho/daily/{market}shvol{d}.txt")
  • Network accessline 2281
    raw = official_get(                 f"https://cdn.finra.org/equity/regsho/daily/{market}shvol{d}.txt")         except DataNotAvailable:
  • Network accessline 2282
    f"https://cdn.finra.org/equity/regsho/daily/{market}shvol{d}.txt")
  • Network accessline 2426
    def _si_fetch(d: str, only: str = None) -> dict:     raw = official_get(f"https://cdn.finra.org/equity/otcmarket/biweekly/shrt{d}.csv")
  • Network accessline 2427
    raw = official_get(f"https://cdn.finra.org/equity/otcmarket/biweekly/shrt{d}.csv")
  • Network accessline 2540
    for d in ([date] if date else _recent_weekdays(7)):         dt = datetime.strptime(d, "%Y%m%d")         url = (f"https://www.sec.gov/Archives/edgar/daily-index/"
  • Network accessline 2541
    dt = datetime.strptime(d, "%Y%m%d")         url = (f"https://www.sec.gov/Archives/edgar/daily-index/"                f"{dt.year}/QTR{(dt.month - 1) // 3 + 1}/form.{d}.idx")
  • Network accessline 2542
    url = (f"https://www.sec.gov/Archives/edgar/daily-index/"
  • Network accessline 2563
    filings.append({"form": form, "form_label": _FORM_LABEL.get(form, ""),                             "company": company, "cik": cik, "date": filed,                             "url": f"https://www.sec.gov/Archives/{path}" if path else None})
  • Network accessline 2564
    "company": company, "cik": cik, "date": filed,                             "url": f"https://www.sec.gov/Archives/{path}" if path else None})         if by_form:
  • Network accessline 2565
    "url": f"https://www.sec.gov/Archives/{path}" if path else None})
  • Network accessline 2590
    if date_to:         p["dateRange"], p["enddt"] = "custom", date_to     j = official_get("https://efts.sec.gov/LATEST/search-index", params=p, as_json=True)
  • Network accessline 2591
    p["dateRange"], p["enddt"] = "custom", date_to     j = official_get("https://efts.sec.gov/LATEST/search-index", params=p, as_json=True)     hits = (j.get("hits") or {}).get("hits") or []
  • Network accessline 2592
    j = official_get("https://efts.sec.gov/LATEST/search-index", params=p, as_json=True)
  • Network accessline 2629
    t = assert_us_ticker(ticker).replace(".", "-")      # SEC 代码表写 BRK-B     if _sec_tickers is None:         _sec_tickers = official_get("https://www.sec.gov/files/company_tickers.json", as_json=True)
  • Network accessline 2630
    if _sec_tickers is None:         _sec_tickers = official_get("https://www.sec.gov/files/company_tickers.json", as_json=True)     for v in _sec_tickers.values():
  • Network accessline 2631
    _sec_tickers = official_get("https://www.sec.gov/files/company_tickers.json", as_json=True)
  • Network accessline 2650
    stop:可选判断函数,已读到的行满足它就不再往更早的分页读(分页从新到旧读)。     """     j = official_get(f"https://data.sec.gov/submissions/CIK{cik10}.json", as_json=True)
  • Network accessline 2651
    """     j = official_get(f"https://data.sec.gov/submissions/CIK{cik10}.json", as_json=True)     f = j.get("filings") or {}
  • Network accessline 2652
    j = official_get(f"https://data.sec.gov/submissions/CIK{cik10}.json", as_json=True)
  • Network accessline 2659
    for pg in sorted(f.get("files") or [], key=lambda x: x.get("filingTo") or "", reverse=True):             if (pg.get("filingTo") or "9999") >= lo and (not until or (pg.get("filingFrom") or "") <= until):                 rows += _sec_rows(off
  • Network accessline 2660
    if (pg.get("filingTo") or "9999") >= lo and (not until or (pg.get("filingFrom") or "") <= until):                 rows += _sec_rows(official_get(f"https://data.sec.gov/submissions/{pg['name']}", as_json=True))                 if stop and st
  • Network accessline 2661
    rows += _sec_rows(official_get(f"https://data.sec.gov/submissions/{pg['name']}", as_json=True))
  • Network accessline 2752
    if not acc or not doc.lower().endswith(".xml"):             continue         url = f"https://www.sec.gov/Archives/edgar/data/{int(cik10)}/{acc.replace('-', '')}/{doc}"
  • Network accessline 2753
    continue         url = f"https://www.sec.gov/Archives/edgar/data/{int(cik10)}/{acc.replace('-', '')}/{doc}"         root = _xml(official_get(url, raw=True))
  • Network accessline 2754
    url = f"https://www.sec.gov/Archives/edgar/data/{int(cik10)}/{acc.replace('-', '')}/{doc}"
  • Network accessline 2854
    # 按报告期取最新(晚交的旧季度不会被当成最新);同一报告期取最晚申报的那份     r = max(cands, key=lambda x: (x["reportDate"] or "", x["filingDate"] or ""))     base = f"https://www.sec.gov/Archives/edgar/data/{int(cik10)}/{r['accessionNumber'].replace('-', '')}"
  • Network accessline 2855
    r = max(cands, key=lambda x: (x["reportDate"] or "", x["filingDate"] or ""))     base = f"https://www.sec.gov/Archives/edgar/data/{int(cik10)}/{r['accessionNumber'].replace('-', '')}"     items = ((official_get(base + "/index.json", as_json
  • Network accessline 2856
    base = f"https://www.sec.gov/Archives/edgar/data/{int(cik10)}/{r['accessionNumber'].replace('-', '')}"
  • Network accessline 2969
    try:             j = official_get(                 f"https://data.sec.gov/api/xbrl/frames/us-gaap/{tag}/{unit}/{period}.json",
  • Network accessline 2970
    j = official_get(                 f"https://data.sec.gov/api/xbrl/frames/us-gaap/{tag}/{unit}/{period}.json",                 timeout=45, as_json=True)
  • Network accessline 2971
    f"https://data.sec.gov/api/xbrl/frames/us-gaap/{tag}/{unit}/{period}.json",
  • Network accessline 3013
    """美国国债收益率曲线(每日,1M~30Y)。政府数据,S 级。返回 [0] 为最新一日"""     year = year or datetime.now().year     url = ("https://home.treasury.gov/resource-center/data-chart-center/interest-rates/"
  • Network accessline 3014
    year = year or datetime.now().year     url = ("https://home.treasury.gov/resource-center/data-chart-center/interest-rates/"            f"daily-treasury-rates.csv/{year}/all?type=daily_treasury_yield_curve"
  • Network accessline 3015
    url = ("https://home.treasury.gov/resource-center/data-chart-center/interest-rates/"
  • Network accessline 3024
    if market_contains:         q["$where"] = f"upper(contract_market_name) like upper('%{market_contains}%')"     return official_get("https://publicreporting.cftc.gov/resource/6dca-aqww.json",
  • Network accessline 3025
    q["$where"] = f"upper(contract_market_name) like upper('%{market_contains}%')"     return official_get("https://publicreporting.cftc.gov/resource/6dca-aqww.json",                         params=q, as_json=True)
  • Network accessline 3026
    return official_get("https://publicreporting.cftc.gov/resource/6dca-aqww.json",
  • Network accessline 3032
    ⚠<U+FE0F> D 级:Nasdaq 条款禁止自动抓取,仅供个人学习研究,见「数据源合规分级」"""     date = date or datetime.now().strftime("%Y-%m-%d")     j = official_get("https://api.nasdaq.com/api/calendar/earnings",
  • Network accessline 3033
    date = date or datetime.now().strftime("%Y-%m-%d")     j = official_get("https://api.nasdaq.com/api/calendar/earnings",                      params={"date": date}, headers={"Accept": "application/json"},
  • Network accessline 3034
    j = official_get("https://api.nasdaq.com/api/calendar/earnings",
  • Network accessline 3178
    if "lastNObservations" in params:      # 部分国家周末/假日记为空值(菲律宾),多取几天再截         params["lastNObservations"] += 10     rows = _sdmx_csv(f"https://stats.bis.org/api/v1/data/WS_CBPOL/{key}/all",
  • Network accessline 3179
    params["lastNObservations"] += 10     rows = _sdmx_csv(f"https://stats.bis.org/api/v1/data/WS_CBPOL/{key}/all",                      dict(params, format="csv"))
  • Network accessline 3180
    rows = _sdmx_csv(f"https://stats.bis.org/api/v1/data/WS_CBPOL/{key}/all",
  • Network accessline 3209
    if not (flow.isalnum() and _SDMX_PART.match(key)):         raise ValueError(f"非法的 ECB 数据集或序列代码:{flow!r} / {key!r}")     rows = _sdmx_csv(f"https://data-api.ecb.europa.eu/service/data/{flow}/{key}",
  • Network accessline 3210
    raise ValueError(f"非法的 ECB 数据集或序列代码:{flow!r} / {key!r}")     rows = _sdmx_csv(f"https://data-api.ecb.europa.eu/service/data/{flow}/{key}",                      dict(_period_params(last, start, end), format="csvdata"))
  • Network accessline 3211
    rows = _sdmx_csv(f"https://data-api.ecb.europa.eu/service/data/{flow}/{key}",
  • Network accessline 3255
    """     names = {"DFR": "deposit_facility", "MRR_FR": "main_refinancing", "MLFR": "marginal_lending"}     url = "https://data-api.ecb.europa.eu/service/data/FM/B.U2.EUR.4F.KR.DFR+MRR_FR+MLFR.LEV"
  • Network accessline 3256
    names = {"DFR": "deposit_facility", "MRR_FR": "main_refinancing", "MLFR": "marginal_lending"}     url = "https://data-api.ecb.europa.eu/service/data/FM/B.U2.EUR.4F.KR.DFR+MRR_FR+MLFR.LEV"     start, end = _check_range(start, end, _PERIOD_D)
  • Network accessline 3257
    url = "https://data-api.ecb.europa.eu/service/data/FM/B.U2.EUR.4F.KR.DFR+MRR_FR+MLFR.LEV"
  • Network accessline 3336
    if not kind:         raise ValueError(f"rate 只能是 {sorted(_NYFED_RATES)},收到 {rate!r}")     base = f"https://markets.newyorkfed.org/api/rates/{kind}/{rate.lower()}"
  • Network accessline 3337
    raise ValueError(f"rate 只能是 {sorted(_NYFED_RATES)},收到 {rate!r}")     base = f"https://markets.newyorkfed.org/api/rates/{kind}/{rate.lower()}"     start, end = _check_range(start, end, _YMD_ONLY)
  • Network accessline 3338
    base = f"https://markets.newyorkfed.org/api/rates/{kind}/{rate.lower()}"
  • Network accessline 3376
    if not 1 <= int(last) <= 5000:         raise ValueError("last 范围 1–5000(超过 5000 时美联储返回空文件)")     text = official_get("https://www.federalreserve.gov/datadownload/Output.aspx", params={
  • Network accessline 3377
    raise ValueError("last 范围 1–5000(超过 5000 时美联储返回空文件)")     text = official_get("https://www.federalreserve.gov/datadownload/Output.aspx", params={         "rel": rel, "series": _FED_PACKAGES[rel], "lastobs": str(int(last)), "from": "", "to":
  • Network accessline 3378
    text = official_get("https://www.federalreserve.gov/datadownload/Output.aspx", params={
  • Network accessline 3449
    if fields or default_fields:         params["fields"] = fields or default_fields     j = official_get("https://api.fiscaldata.treasury.gov/services/api/fiscal_service" + path,
  • Network accessline 3450
    params["fields"] = fields or default_fields     j = official_get("https://api.fiscaldata.treasury.gov/services/api/fiscal_service" + path,                      params=params, as_json=True)
  • Network accessline 3451
    j = official_get("https://api.fiscaldata.treasury.gov/services/api/fiscal_service" + path,
  • Network accessline 3489
    _TW = {     "twse": {"base": "https://openapi.twse.com.tw/v1",
  • Network accessline 3490
    "twse": {"base": "https://openapi.twse.com.tw/v1",
  • Network accessline 3493
    "margin": "/exchangeReport/MI_MARGN", "exdividend": "/exchangeReport/TWT48U_ALL",              "dividend": "/opendata/t187ap45_L"},     "tpex": {"base": "https://www.tpex.org.tw/openapi/v1",
  • Network accessline 3494
    "dividend": "/opendata/t187ap45_L"},     "tpex": {"base": "https://www.tpex.org.tw/openapi/v1",              "quotes": "/tpex_mainboard_daily_close_quotes",
  • Network accessline 3495
    "tpex": {"base": "https://www.tpex.org.tw/openapi/v1",
  • Network accessline 3638
    _EIA_PRICE = {     "WTI": "https://www.eia.gov/dnav/pet/hist/LeafHandler.ashx?n=PET&s=RWTC&f=D",
  • Network accessline 3639
    "WTI": "https://www.eia.gov/dnav/pet/hist/LeafHandler.ashx?n=PET&s=RWTC&f=D",
  • Network accessline 3640
    "BRENT": "https://www.eia.gov/dnav/pet/hist/LeafHandler.ashx?n=PET&s=RBRTE&f=D",
  • Network accessline 3641
    "HENRY_HUB": "https://www.eia.gov/dnav/ng/hist/rngwhhdD.htm",   # 天然气走 LeafHandler 会 404
  • Network accessline 3703
    """     rd = list(csv.reader(io.StringIO(         official_get("https://ir.eia.gov/wpsr/table1.csv").lstrip("<U+FEFF>"))))
  • Network accessline 3704
    rd = list(csv.reader(io.StringIO(         official_get("https://ir.eia.gov/wpsr/table1.csv").lstrip("<U+FEFF>"))))     if not rd or len(rd[0]) < 8 or rd[0][0].strip() != "STUB_1":
  • Network accessline 3705
    official_get("https://ir.eia.gov/wpsr/table1.csv").lstrip("<U+FEFF>"))))
  • Possible obfuscationline 3705
    official_get("https://ir.eia.gov/wpsr/table1.csv").lstrip("<U+FEFF>"))))
  • Network accessline 3717
    if not pet:         raise DataNotAvailable("EIA WPSR table1.csv 没有库存行")     g = json.loads(official_get("https://ir.eia.gov/ngs/wngsr.json").lstrip("<U+FEFF>"))
  • Network accessline 3718
    raise DataNotAvailable("EIA WPSR table1.csv 没有库存行")     g = json.loads(official_get("https://ir.eia.gov/ngs/wngsr.json").lstrip("<U+FEFF>"))     gas = []
  • Network accessline 3719
    g = json.loads(official_get("https://ir.eia.gov/ngs/wngsr.json").lstrip("<U+FEFF>"))
  • Possible obfuscationline 3719
    g = json.loads(official_get("https://ir.eia.gov/ngs/wngsr.json").lstrip("<U+FEFF>"))
  • Network accessline 3802
    _BLS_API = "https://api.bls.gov/publicAPI/v1/timeseries/data/"
  • Network accessline 3803
    _BLS_ICS = "https://www.bls.gov/schedule/news_release/bls.ics"
  • Network accessline 4162
    _DOL_CLAIMS = "https://oui.doleta.gov/unemploy/wkclaims/report.asp"
  • Network accessline 4323
    > 📦 https://github.com/simonlin1212/global-stock-data — Star ⭐ 是最好的支持

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 209 facts
  • Network access in prose of documentationCHANGELOG.md:278Low confidence
  • Network access in prose of documentationCHANGELOG.md:402Low confidence
  • Network access in prose of documentationCHANGELOG.md:403Low confidence
  • Network access in prose of documentationREADME.md:10Low confidence
  • Network access in prose of documentationREADME.md:11Low confidence
  • Network access in prose of documentationREADME.md:12Low confidence
  • Network access in prose of documentationREADME.md:13Low confidence
  • Network access in prose of documentationREADME.md:14Low confidence
  • Network access in prose of documentationREADME.md:15Low confidence
  • Network access in prose of documentationREADME.md:16Low confidence
  • Network access in prose of documentationREADME.md:17Low confidence
  • Network access in prose of documentationREADME.md:45Low confidence
  • Network access in code of documentationREADME.md:120Low confidence
  • Network access in code of documentationREADME.md:121Low confidence
  • Network access in code of documentationREADME.md:122Low confidence
  • Network access in prose of documentationREADME.md:317Low confidence
  • Network access in prose of documentationREADME.md:318Low confidence
  • Network access in prose of documentationREADME.md:362Low confidence
  • Network access in prose of documentationREADME_zh.md:10Low confidence
  • Network access in prose of documentationREADME_zh.md:11Low confidence
  • Network access in prose of documentationREADME_zh.md:12Low confidence
  • Network access in prose of documentationREADME_zh.md:13Low confidence
  • Network access in prose of documentationREADME_zh.md:14Low confidence
  • Network access in prose of documentationREADME_zh.md:15Low confidence
  • Network access in prose of documentationREADME_zh.md:16Low confidence
  • Network access in prose of documentationREADME_zh.md:17Low confidence
  • Network access in prose of documentationREADME_zh.md:43Low confidence
  • Network access in code of documentationREADME_zh.md:118Low confidence
  • Network access in code of documentationREADME_zh.md:119Low confidence
  • Network access in code of documentationREADME_zh.md:120Low confidence
  • Network access in prose of documentationREADME_zh.md:320Low confidence
  • Network access in prose of documentationREADME_zh.md:354Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:8Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:10Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:172Low confidence
  • Network access in prose of the SKILL.mdSKILL.md:174Low confidence
  • Network access in code of the SKILL.mdSKILL.md:324High confidence
  • Network access in code of the SKILL.mdSKILL.md:327High confidence
  • Network access in code of the SKILL.mdSKILL.md:328High confidence
  • Network access in code of the SKILL.mdSKILL.md:330High confidence
  • Network access in code of the SKILL.mdSKILL.md:331High confidence
  • Network access in code of the SKILL.mdSKILL.md:339High confidence
  • Network access in code of the SKILL.mdSKILL.md:340High confidence
  • Network access in code of the SKILL.mdSKILL.md:341High confidence
  • Network access in code of the SKILL.mdSKILL.md:353High confidence
  • Network access in code of the SKILL.mdSKILL.md:354High confidence
  • Network access in code of the SKILL.mdSKILL.md:364High confidence
  • Network access in code of the SKILL.mdSKILL.md:365High confidence
  • Network access in code of the SKILL.mdSKILL.md:366High confidence
  • Network access in code of the SKILL.mdSKILL.md:478High confidence

and 159 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.

Add this badge to your README

It updates every night and links to this page.

simonlin1212/global-stock-data: #574 on hotskills, 1.8k stars

[![simonlin1212/global-stock-data on hotskills](https://hotskills.dev/badge/simonlin1212-global-stock-data.svg)](https://hotskills.dev/skill/simonlin1212-global-stock-data/)