CtrlK
BlogDocsLog inGet started
Tessl Logo

sec-edgar

U.S. SEC EDGAR fetch interface — resolve a ticker to its CIK, list recent filings (10-K / 10-Q / 8-K and friends) with primary-document URLs, and pull XBRL companyfacts financial series. Free, no API key; rate-limited by IP so every request is throttled and carries a contact User-Agent. United States only.

64

Quality

77%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./agent/src/skills/sec-edgar/SKILL.md
SKILL.md
Quality
Evals
Security

SEC EDGAR

Overview

The U.S. Securities and Exchange Commission (SEC) publishes free, no-auth JSON endpoints for every reporting company on its EDGAR system: a ticker-to-CIK directory, a recent-filings index, and the full set of XBRL ("companyfacts") financial concepts a company has reported. This skill documents how Vibe-Trading fetches that data through the bundled sec_edgar_client transport and the get_sec_filings agent tool.

This is the fetch skill — it covers how to get filing-index rows, document URLs, and us-gaap metric series out of EDGAR. The separate edgar-sec-filings skill is the methodology layer (how to read a 10-K, score insider activity, interpret 8-K items); for any actual data retrieval it delegates here.

Scope is the United States only. EDGAR has no coverage of A-shares, HK, or other non-U.S. markets — route those through tushare / yfinance / akshare instead.

Link convention: every link below that points into references/ is written with the skill-name prefix (sec-edgar/references/...). The read_file tool resolves paths with skills/ as the root; dropping the prefix breaks the read. Keep the <skill-name>/references/... form when adding new docs.

Quick Start

Preferred path — the get_sec_filings tool (read-only, throttled, returns strict JSON):

{ "ticker": "AAPL", "form": "10-K", "limit": 5 }
{ "ticker": "MSFT", "metric": "Revenues", "limit": 8 }

The tool resolves the ticker to a CIK, fetches the filing index (optionally filtered by form), and — when metric is set — also pulls the XBRL series for that us-gaap concept. See sec-edgar/references/get_sec_filings_tool.md for the full parameter and envelope contract.

Script path — call the sec_edgar_client transport directly when you need raw JSON the tool does not surface (e.g. company address, all units of a concept):

from backtest.loaders.sec_edgar_client import cik_for, get_submissions, get_company_facts

cik = cik_for("AAPL")            # "0000320193", or None if not in the SEC table
submissions = get_submissions(cik)   # recent-filings index + company metadata
facts = get_company_facts(cik)       # all reported XBRL concepts

A runnable end-to-end example lives at sec-edgar/scripts/sec_filings_example.py.

Parameter & Format Notes

  • Ticker: U.S. equity symbol, case-insensitive (AAPL, msft). Resolved to a CIK via the SEC company-tickers table; an unlisted ticker returns an error envelope (tool) or None (cik_for).
  • CIK: the SEC Central Index Key, normalized to a zero-padded 10-digit string (320193"0000320193"). The submissions and companyfacts endpoints require the padded form; document URLs use the un-padded form.
  • Form: SEC form type, case-insensitive (10-K, 10-Q, 8-K, DEF 14A, 4). Omit to return all recent forms.
  • Metric: an XBRL us-gaap concept name (Revenues, NetIncomeLoss, Assets, StockholdersEquity). Case-sensitive — these are exact taxonomy element names.
  • Dates: SEC returns ISO YYYY-MM-DD strings (e.g. 2023-09-30).
  • Return shape: the tool returns a JSON-string envelope; the client returns decoded JSON (dict).

Reference Docs

  • sec_edgar_client transportcik_for, get_submissions, get_company_facts, CIK padding, throttle bucket, contact User-Agent.
  • get_sec_filings tool — parameters, success/error envelope, filings[] and metric field shapes.
  • Endpoints & rate limits — the three public endpoints, secid/CIK rules, fair-access policy, env overrides.
  • Common forms & XBRL concepts — frequently used form types and us-gaap concept names.

Scripts

Notes

  • Free, no API key: EDGAR is public. The only requirement is a descriptive User-Agent carrying a contact address; the client ships a compliant default and honors the VIBE_TRADING_SEC_UA override.
  • Rate-limited by IP: the SEC throttles per source IP and temporarily blocks clients that burst without a contact UA. Every request routes through the shared backtest.loaders._http throttle under the "sec" host bucket (≈0.12s spacing floor, overridable via VIBE_TRADING_SEC_MIN_INTERVAL). Do not bypass the client with raw requests loops.
  • United States only: a non-U.S. symbol will not resolve to a CIK.
  • Transport, not a backtest loader: sec_edgar_client is a thin REST client, not a DataLoaderProtocol. There is no source: "sec_edgar" backtest mode — EDGAR feeds the get_sec_filings tool, not the bar-loading layer.
  • Reporting lag: filings appear after the company submits; XBRL companyfacts trail the filing. Insider (Form 4) and 13F latency caveats are covered in the edgar-sec-filings methodology skill.
  • Research only: this data supports research and does not constitute investment advice.
Repository
HKUDS/Vibe-Trading
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.