Free EDGAR API
for SEC Filings and XBRL免费 EDGAR API
获取 SEC 申报与 XBRL 数据
Build directly on free SEC EDGAR data without confusing a filing index, an archived document, and an XBRL fact. This guide maps the official JSON endpoints, archive identifiers, bulk files, access controls, and validation steps needed for a source-traceable ingestion pipeline.
直接使用免费的 SEC EDGAR 数据时,不能把申报索引、归档正文和 XBRL 事实混为一谈。本指南梳理官方 JSON 端点、归档标识、批量文件、访问控制与验证步骤,帮助你建立可追溯的数据采集管道。
TL;DR核心结论
The SEC exposes public submissions and XBRL facts as JSON on data.sec.gov; no API key is required. Complete filings and exhibits remain in the EDGAR archives.
Use a zero-padded CIK for issuer data and accession number for a filing version. Preserve form, accepted time, report period, primary document, and source URL.
Submissions list filings, archive paths hold filed documents, and XBRL endpoints expose tagged facts. Each layer answers a different question and needs a different parser.
Use a descriptive User-Agent, centralized pacing, caching, checkpoints, bounded retries, and source reconciliation. Keyless access is public infrastructure, not an unlimited feed.
SEC 在 data.sec.gov 公开提供 submissions 与 XBRL facts JSON,无需 API key;完整申报正文与附件仍位于 EDGAR 归档中。
发行人数据使用十位补零 CIK,文件版本使用 accession number;同时保留表格、受理时间、报告期、主文档与来源 URL。
submissions 列出申报,归档路径保存提交的正文,XBRL 端点提供标签化事实。三者回答的问题不同,也需要不同解析方式。
使用说明性 User-Agent、统一限流、缓存、检查点、有限重试和来源核验。无需密钥的公共接口并不是无限制数据流。
Free EDGAR API endpoints, fields, and access rules免费 EDGAR API 的端点、字段与访问规则
The official SEC EDGAR interfaces are a collection of source-oriented data products, not one universal “filings API.” The submissions endpoint is an issuer filing index; archive URLs resolve a specific filing and its exhibits; XBRL endpoints organize tagged facts; and bulk ZIP files support large backfills. A robust client chooses the layer that matches the question instead of forcing every task through one response schema.
官方 SEC EDGAR 接口是一组以原始来源为中心的数据产品,并非一个万能的“申报文件 API”。submissions 端点相当于发行人文件索引;归档 URL 指向某一份具体申报及其附件;XBRL 端点组织标签化事实;批量 ZIP 则适合大规模回填。可靠的客户端会根据问题选择数据层,而不是把所有任务都强塞进同一种响应结构。
Use submissions JSON as a filing index
Query by ten-digit, zero-padded CIK. The recent arrays include form, filing and report dates, acceptance time, accession number, primary document, file number, film number, and other metadata. Older history can be referenced through additional submissions files, so stopping at the recent array creates a silent history gap.
Resolve filed documents through archive identifiers
Use CIK, accession number, and primary-document name to construct or retain the exact archive location. The filing index page can enumerate the main document and exhibits. Store the original HTML or XML, content hash, retrieval time, and HTTP metadata before extracting sections so derived text can be reproduced later.
Retrieve XBRL facts with their full context
Company Facts aggregates concepts for one issuer; Company Concept narrows to one taxonomy and tag; Frames aligns facts across reporting entities for a stated period. A numeric value is incomplete without taxonomy, concept, unit, start and end dates, fiscal period, form, filed date, accession number, and dimensional context.
Use bulk data for backfills, APIs for increments
Bulk submissions and company-facts archives can reduce request overhead for an initial corpus. Record the archive version and ingestion checkpoint, then use issuer or filing-level endpoints for subsequent updates. Reconcile overlap by accession number rather than inserting duplicate rows.
Respect SEC automated-access rules
Send a descriptive User-Agent, coordinate request pacing across all workers, cache stable responses, honor throttling signals, and apply bounded retries with jitter. Monitor 403, 429, and 5xx rates; do not respond to errors by increasing concurrency or rotating anonymous identities.
把 submissions JSON 当作申报索引
使用十位补零 CIK 查询。recent 数组可提供表格、申报日与报告期、受理时间、accession number、主要文件、file number、film number 等元数据。更早历史可能位于响应引用的附加 submissions 文件中,只读取 recent 会造成不易察觉的历史缺口。
通过归档标识定位申报原文
使用 CIK、accession number 与主要文件名保留准确归档位置;申报索引页还可列出主文档和附件。提取章节前应保存原始 HTML 或 XML、内容哈希、抓取时间与 HTTP 元数据,确保派生正文可以复现。
获取 XBRL 事实时保留完整上下文
Company Facts 汇总一家发行人的多个概念,Company Concept 聚焦某个分类体系与标签,Frames 则按指定期间对齐多家申报主体。单独的数值并不完整,还需保留 taxonomy、concept、单位、起止日期、财务期间、表格、申报日、accession number 与维度上下文。
批量数据用于回填,API 用于增量
首次构建数据集时,可用批量 submissions 与 company facts 归档减少请求开销。记录归档版本和采集检查点,之后再通过发行人或文件级端点做增量更新,并按 accession number 消除重叠记录。
遵守 SEC 自动化访问规则
发送可识别的 User-Agent,在所有工作进程之间统一控制请求频率,缓存稳定响应,遵守限流信号,并使用带随机抖动的有限重试。持续监控 403、429 与 5xx;遇到错误时不应提高并发或轮换匿名身份。
Compare free SEC EDGAR API access options比较免费的 SEC EDGAR API 接入方式
| Option方式 | What you get可获得内容 | Check first优先核对 | Best use适用场景 |
|---|---|---|---|
| SEC data.sec.gov | Public submissions JSON, Company Facts, Company Concept, and bulk ZIP archives.公开 submissions JSON、Company Facts、Company Concept 与批量 ZIP 文件。 | User-Agent policy, CIK formatting, taxonomy context, and update process.User-Agent 规范、CIK 格式、分类上下文和更新流程。 | Auditable source-first pipelines.重视原始来源与审计的数据管道。 |
| Free vendor plan | Normalized JSON, ticker lookup, pagination, and sometimes historical quarters.标准化 JSON、股票代码查询、分页,部分包含历史季度。 | Request quota, history, licensing, amendment handling, and attribution.请求额度、历史、许可、修订处理和署名要求。 | Prototypes and small research tools.原型和小型研究工具。 |
| Sandbox or evaluation | Limited institutions, quarters, or sample responses for integration testing.有限的机构、季度或样例返回,用于接入测试。 | Whether production use and complete coverage require payment.生产使用和完整覆盖是否需要付费。 | Schema and client validation.字段结构和客户端验证。 |
| SEC bulk archivesSEC 批量归档 | Large snapshots of submissions or company facts for local ingestion.用于本地采集的大规模 submissions 或 company facts 快照。 | Archive date, decompression size, schema drift, checkpointing, and overlap with incremental pulls.归档日期、解压体积、字段变化、检查点及与增量抓取的重叠。 | Initial backfills and reproducible research datasets.首次历史回填与可复现研究数据集。 |
| Self-hosted normalized layer自建标准化层 | Your own issuer mapping, parsed documents, facts, search index, and change feed.自有发行人映射、正文解析、事实数据、搜索索引与变更流。 | Parser maintenance, taxonomy changes, amendments, source storage, and operational cost.解析器维护、分类体系变化、修订文件、来源存储与运维成本。 | Products needing control, custom semantics, and stable audit trails.需要自主控制、自定义语义与稳定审计链的产品。 |
How to integrate a free EDGAR API如何接入免费的 EDGAR API
Normalize one row from the SEC submissions response into a filing record like the example below. The values are placeholders; the important point is that all fields originate from the same array index and retain the issuer CIK.
可以把 SEC submissions 响应中的一行归一化为下面的申报记录。示例值均为占位符;关键在于所有字段必须来自同一个数组索引,并保留发行人 CIK。
{
"cik": "CIK_PLACEHOLDER",
"accession_number": "ACCESSION_PLACEHOLDER",
"form": "10-K",
"filed_date": "YYYY-MM-DD",
"accepted_at": "YYYY-MM-DDThh:mm:ss-04:00",
"report_period": "YYYY-MM-DD",
"primary_document": "PRIMARY_DOCUMENT.htm",
"filing_index_url": "SEC_FILING_INDEX_URL",
"retrieved_at": "YYYY-MM-DDThh:mm:ssZ"
}
Preserve row alignment in filings.recent. Fields such as form, accessionNumber, filingDate, and primaryDocument are parallel arrays. Read them with the same index, create the complete record, and only then apply form or date filters. Filtering each array independently can pair a form with the wrong accession or document while still producing valid-looking JSON.
必须保持 filings.recent 的行对齐关系。form、accessionNumber、filingDate 与 primaryDocument 等字段是并行数组。应使用同一索引读取并先组成完整记录,再按表格或日期筛选。若分别过滤各个数组,可能把表格、accession 和文档错误配对,却仍生成表面合法的 JSON。
Step 1: define one EDGAR data contract
Specify the unit of output before choosing an endpoint: filing metadata, an immutable source document, a list of exhibits, a normalized XBRL fact, or a cross-company frame. Define required identifiers, expected history, freshness, null behavior, and evidence links. “Get SEC data” is too vague to test.
Step 2: build stable issuer and filing keys
Resolve ticker or company name to CIK but store the CIK as the durable issuer identifier. Store accession number as a string and retain form variants such as 10-K/A rather than collapsing them into the original. Separate filing date, accepted timestamp, and report period because each supports a different time-based query.
Step 3: operate a compliant fetch layer
Identify your application and contact in the User-Agent, use connection and read timeouts, centralize concurrency controls, cache immutable documents, and implement bounded retries for transient responses. Record URL, status, headers, bytes, retrieval time, attempt count, and content hash for diagnosis.
Step 4: normalize without erasing evidence
Keep raw payloads beside parsed tables. For XBRL, preserve taxonomy, concept, unit, dates, form, fiscal fields, accession number, and dimensions. For narrative text, retain document URL, item boundary method, parser version, and character offsets or anchors. An extracted answer should always point back to what was filed.
Step 5: validate backfill and incremental behavior
Reconcile a sample of issuer filing counts against EDGAR, include older submission files, test amendments and exhibit-heavy filings, and verify duplicates by accession number. Then simulate a failed run: resume from a checkpoint, replay a date window, and prove that the result is complete and idempotent.
步骤 1:先定义一份 EDGAR 数据契约
选择端点前先明确输出单位:申报元数据、不可变原始文件、附件列表、标准化 XBRL fact,还是跨公司 frame;同时定义必填标识、历史范围、更新要求、空值处理与证据链接。“获取 SEC 数据”过于宽泛,无法有效验收。
步骤 2:建立稳定的发行人与文件主键
可以由股票代码或公司名称解析 CIK,但持久化时应以 CIK 作为稳定发行人标识。accession number 保存为字符串,并保留 10-K/A 等修订表格,不要折叠进原文件。申报日、受理时间与报告期也应分开,因为它们支持不同的时间查询。
步骤 3:运行合规的抓取层
在 User-Agent 中标识应用与联系信息,设置连接和读取超时,统一控制并发,缓存不可变文件,并只对临时错误执行有限重试。记录 URL、状态、响应头、字节数、抓取时间、尝试次数与内容哈希,便于诊断。
步骤 4:标准化时不要抹掉证据
原始响应应与解析表并存。XBRL 数据需保留 taxonomy、concept、单位、日期、表格、财务期间字段、accession number 与维度;叙述正文则应保留文件 URL、章节边界方法、解析器版本和字符位置或锚点。任何提取结果都应能回到实际申报内容。
步骤 5:验证回填与增量流程
抽样与 EDGAR 核对发行人申报数量,纳入较早 submissions 文件,并测试修订申报、附件较多的文件和按 accession number 去重。之后模拟一次任务失败:从检查点恢复、重放一段日期窗口,并证明结果完整且具备幂等性。
How QVeris helps find EDGAR data capabilitiesQVeris 如何帮助查找 EDGAR 数据能力
QVeris helps agents discover and inspect callable financial-data capabilities. For an EDGAR task, define whether the input is a company CIK, ticker, form type, accession number, XBRL concept, or date window; then inspect the required fields, returned identifiers, freshness, source links, and provider constraints before calling it. An agent should not silently substitute Company Facts for a full filing or a ticker for an unresolved CIK.
QVeris 帮助智能体发现并检查可调用的金融数据能力。处理 EDGAR 任务时,应先明确输入是公司 CIK、股票代码、表格类型、accession number、XBRL concept 还是日期窗口,再检查必填字段、返回标识、更新频率、来源链接与服务限制。Agent 不应在未说明的情况下用 Company Facts 替代完整申报,也不应把尚未解析的股票代码直接当作 CIK。
- Open the QVeris tool details to inspect the required inputs.
- Use the related free 13F API guide when the task is specifically institutional holdings rather than general EDGAR access.
- Verify provider coverage, pricing, licensing, and data accuracy against current documentation and the original SEC filing.
- 使用 QVeris 工具详情发现相关 API 能力并检查必填输入。
- 如果任务专门针对机构持仓,而不是通用 EDGAR 接入,请查看免费 13F API 指南。
- 服务商覆盖、价格、许可与数据准确性仍需对照当前文档和 SEC 原始申报验证。
FAQ
Is the official EDGAR API free and keyless?
Yes. The SEC provides public submissions and XBRL data endpoints without an API key. That does not remove the obligation to identify the client, follow current access guidance, cache responsibly, and build the parsing and monitoring layers your application needs.
What is the difference between submissions JSON and a filing?
Submissions JSON is an index of filing metadata. The actual filed HTML, XML, text, and exhibits live in the EDGAR archives. Use accession number and primary-document metadata to connect the index record to the exact source documents.
Which EDGAR endpoint should I use for financial values?
Use Company Facts for many concepts reported by one issuer, Company Concept for one taxonomy tag, or Frames for facts aligned to a period across entities. Preserve units, dates, form, accession number, and dimensions; do not treat similarly named tags as automatically equivalent.
How do I retrieve older filing history?
Read the additional submissions files referenced by the issuer response and use archive paths for the source documents. For large initial loads, evaluate SEC bulk archives, record their version, and reconcile later incremental results by accession number.
How should an EDGAR crawler handle rate controls?
Follow the SEC's current published guidance, identify the application, coordinate pacing across workers, cache immutable documents, honor Retry-After, and use bounded backoff. Monitor error rates and pause when access responses indicate that traffic should be reduced.
What makes an EDGAR pipeline auditable?
Store raw source payloads, official URLs, CIK, accession number, form, accepted time, filing and report dates, retrieval time, content hash, and parser version. Derived facts or sections should retain enough source location information to reproduce the transformation.
官方 EDGAR API 是否免费且无需密钥?
是。SEC 的 submissions 与 XBRL 数据端点无需 API key。不过客户端仍需正确标识身份、遵守当前访问指引、合理缓存,并自行建设应用所需的解析与监控能力。
submissions JSON 和完整申报文件有什么区别?
submissions JSON 是申报元数据索引;真正提交的 HTML、XML、文本与附件位于 EDGAR 归档中。应通过 accession number 和主要文件元数据,把索引记录连接到准确的源文件。
查询财务数值应该使用哪个 EDGAR 端点?
查询一家发行人的多个概念可用 Company Facts,聚焦某个 taxonomy tag 可用 Company Concept,按期间跨主体对齐事实可用 Frames。务必保留单位、日期、表格、accession number 与维度,不能把名称相近的标签自动视为等价。
如何获取更早的申报历史?
读取发行人响应中引用的附加 submissions 文件,并通过归档路径下载原文。大规模首次采集可评估 SEC 批量归档,记录其版本,并按 accession number 与后续增量结果核对去重。
EDGAR 采集器应如何处理访问控制?
遵守 SEC 当前公开指引,标识应用,在所有工作进程之间统一控制频率,缓存不可变文件,遵守 Retry-After,并使用有限退避。持续监控错误率;如果访问响应表明流量过高,应主动暂停或降速。
怎样让 EDGAR 数据管道具备可审计性?
保存原始响应、官方 URL、CIK、accession number、表格、受理时间、申报日与报告期、抓取时间、内容哈希和解析器版本。派生事实或章节还应保留足够的来源位置信息,使转换过程可以复现。
Authoritative EDGAR references and related guidesEDGAR 权威参考与相关指南
Use the SEC sources to verify filing obligations, timing, and original records. Vendor free plans and limits can change, so confirm them in current provider documentation.
请以 SEC 官方来源核对申报要求、披露时间和原始记录。服务商的免费套餐与调用额度可能变化,应以其最新官方文档为准。
