SPB Git forge

spb/websensor

Public
33commits 1branches 0releases
3.4 MBsize
maindefault branch
10 days agolast push
TypeScript 55.4% Python 43.2% SQL 1.2%
1.9 KB

# Connector: SEC EDGAR filings (edgar)

Purpose: regulatory filings of US-listed issuers (and foreign private issuers filing 6-K/20-F/40-F) from the official submissions API https://data.sec.gov/submissions/CIK##########.json. An 8-K with item 2.02 (results), 5.02 (executive departure), 1.05 (material cybersecurity incident), 1.01 (material agreement), a 10-K/10-Q, an S-1, a 13D or a DEF 14A becomes a filing list event on the company entity, with a direct link to the primary document. Sensor types: REST_API, JSON. Config: forms?: ["8-K","10-K",…] (whitelist), excludeForms? (default: insider forms 3/4/5 and 144 — hundreds per quarter for large caps), maxItems? (60). Normalization: the API is columnar (filings.recent.form[], accessionNumber[]…); the connector rebuilds one item per filing keyed by accession number: form, formLabel (decoded), items (8-K item numbers → labels), filingDate, publishedAt (acceptance time), url (Archives document), indexUrl, xbrl. compareFields: [form, items]. extra: CIK, tickers, exchanges, SIC, fiscal year end, state of incorporation. Rules of the road (sec.gov/developer): descriptive User-Agent with contact e-mail (WS_EDGAR_USER_AGENT, default WebSensor (contact@websensor.io)), ≤ 10 req/s across all sensors. With per-host concurrency 2 and tier B/C intervals the engine stays far below. Host: data.sec.gov is sent explicitly (the API refuses some clients otherwise). Finding a CIK: https://www.sec.gov/files/company_tickers.json (ticker → CIK), or https://efts.sec.gov/LATEST/search-index?keysTyped=<name>; pad to 10 digits. Known quirks: filings.recent holds up to ~1000 filings, older ones live in filings.files[] (not fetched); acceptance time is US/Eastern converted to UTC by the API; 6-K items are empty (foreign issuers). Tests: connectors2.test.ts (columnar → items, form filter, 8-K decoding). Verified: 2026-09-08 (Apple CIK 320193).