一键导入
sec-edgar
Research and download SEC EDGAR filings (10-K, 10-Q, 8-K, etc.) for US public companies.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Research and download SEC EDGAR filings (10-K, 10-Q, 8-K, etc.) for US public companies.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | sec-edgar |
| description | Research and download SEC EDGAR filings (10-K, 10-Q, 8-K, etc.) for US public companies. |
| ui_visibility | summary |
Why PDF instead of XBRL? SEC filings contain inline XBRL (HTML with embedded XML tags) which creates noise for LLMs. Additionally, ~34% of filings have XBRL tagging errors, companies use non-standard tags, and narrative content (MD&A, Risk Factors) isn't captured in XBRL. PDF + file_perception reads what humans see.
Rate limit: 10 requests/second. All requests require header: User-Agent: ShortcutAgent/1.0 (support@shortcut.ai)
sec_to_pdf.py script (Playwright + Chrome)file_perception on the PDFAll requests require header: User-Agent: ShortcutAgent/1.0 (support@shortcut.ai)
| Endpoint | URL |
|---|---|
| Company tickers | https://www.sec.gov/files/company_tickers.json |
| Filings metadata | https://data.sec.gov/submissions/CIK{cik_10digit}.json |
| Download filing | https://www.sec.gov/Archives/edgar/data/{cik}/{accession_no_dashes}/{primaryDocument} |
Rate limit: 10 requests/second
Fetch company tickers JSON and search for the ticker:
GET https://www.sec.gov/files/company_tickers.json
Returns: {"0": {"cik_str": 320193, "ticker": "AAPL", "title": "Apple Inc."}, ...}
Zero-pad CIK to 10 digits for the next step (e.g., 320193 → 0000320193).
GET https://data.sec.gov/submissions/CIK{cik_10digit}.json
Response contains filings.recent with parallel arrays: form, filingDate, reportDate, accessionNumber, primaryDocument. Index i across all arrays gives one filing's info.
NEVER assume the first result is the latest. The API doesn't guarantee sort order.
Check today's date from the system prompt (e.g., "Today's date: 2026-01-06")
Collect ALL filings of the requested type from the parallel arrays
Sort by filingDate descending to find the truly latest
Sanity check against expected filing schedule:
| Filing | Expected Timing |
|---|---|
| 10-K | 60-90 days after fiscal year end |
| 10-Q | 40-45 days after quarter end |
| 8-K | Within 4 business days of event |
| DEF 14A | ~120 days before annual meeting |
Report exact dates to user:
"Found Tesla's latest 10-K filed on 2026-01-29 for fiscal year ending 2025-12-31. Is this the one you need?"
reportDate is more than a year old → re-verify or warn userBuild URL from metadata:
https://www.sec.gov/Archives/edgar/data/{cik}/{accession_no_dashes}/{primaryDocument}
accessionNumber for URL pathExample:
3201930000320193-25-000123 → 000032019325000123aapl-20250928.htmhttps://www.sec.gov/Archives/edgar/data/320193/000032019325000123/aapl-20250928.htmUse the sec_to_pdf.py script to convert directly from URL (renders images properly):
python /skills/default/sec-edgar/sec_to_pdf.py "<filing_url>" "/workspace/sec/{TICKER}/{form}_{report_date}.pdf"
File path convention: Always save SEC filings to /workspace/sec/{TICKER}/{form}_{report_date}.pdf
/workspace/sec/AAPL/10-K_2024-09-28.pdf/workspace/sec/TSLA/10-Q_2024-06-30.pdfWhy Chrome? Two reasons: (1) SEC.gov blocks headless Chromium with 403 errors - real Chrome bypasses this. (2) Downloading HTML locally breaks relative image paths; Chrome navigating directly to the URL keeps images loading from SEC's servers.
Fallback: If the script fails, you can use httpx to download locally and weasyprint amongst other tools and packages to convert the html to PDF.
If you download HTML first and use filename=, relative image paths may break and images may not get rendered. You will have to check and fix this.
Use file_perception on the PDF to extract information.
Use when user requests data from financial data providers (Bloomberg, FactSet, Capital IQ, Refinitiv, Morningstar, PitchBook, Preqin, AlphaSense). Each provider has specific Excel formula syntax.
Access Office.js Excel JavaScript API for Excel Add-in development. Use when you need to interact with Excel workbooks, worksheets, ranges, tables, charts, pivot tables, and other Excel objects in the Office Add-in environment.
Access advanced SpreadJS functionality not covered by the standard API. Use when you need low-level spreadsheet operations like sparklines, slicers, cell buttons, advanced conditional formatting, outline groups, or any SpreadJS-specific features.
When to use this skill. Be specific about triggers (e.g., "Use when building financial models with DCF analysis").