Repository navigation
v5.62.0
The last 5.x release. 6.0.0 follows on 2026-11-09. Until then, and for about three months afterwards, the 5.62.x branch gets only security and data-correctness hotfixes. The 6.0 schedule and what it changes are pinned on #936.
Upgrading. These change values you may already depend on:
Document.to_markdown()output changes for grouped tables. The Markdown for 76 of 79 measured filings changes, so rebuild any RAG index built from it (#1474).- BDC portfolios from
PortfolioInvestments.from_xbrl()can gain rows. ARCC's 2026-06-30 10-Q gains 3 loans and now sums to its reported $29,349.3M (#1505). XBRL.entity_infoon a combined filing names the filer, not a co-registrant.nameandtickercan change, as on Duke Energy's 10-K (#1420).SynonymGroups.identify_concepts()no longer matches an extension concept such asonto:NetIncomeby its local name (#1418).XBRL.element_catalogreportsperiod_type=Nonefor a concept the filing gives no facts for, instead of'duration'(#1425).Statement.render()shows share counts on one scale and says so in the caption (#1470). Raw facts and DataFrames are unchanged.
Added
Effect.effective_timereturns the time of day a registration became effective.Effect.from_xml()dropped the notice'sfinalEffectivenessDispTime: Lyntris Inc.'s S-1 notice (9999999995-26-002694) gave only2026-08-18, and now also gives15:30:00. The property isNonewhen the notice has no time, as on Fitness Fanatics' POS AM notice.effective_datenow documents that SEC publishes the notice at about 00:15 ET on the next business day. (GH #1499)get_place_country_code()returns the ISO 3166-1 alpha-2 country for an EDGAR place code.place_codes.csvgains anISOcolumn for all 309 known codes. Accelerant Holdings (CIK 1997350) files its business address asE9, which now reads asKY(Cayman Islands). The unknown codeXXreturnsNone. (GH #1495)
Changed
acceptance_datetimefromget_filings()is now documented as unreliable for precise times. SEC's submissions JSON labels it UTC, but Apple's 10-Q0000320193-26-000020read 14:01:02 on 2026-10-08 for a 10:01:02 UTC acceptance. The docstring and filing guide point tofiling.header.acceptance_datetime, which matches SEC's index page. (GH #1501)
Fixed
- BDC portfolios no longer drop a loan as the "total" of a sibling worth the same. A row that states its own cost is kept even when one row extending its identifier matches its fair value. ARCC's 10-Q
0001628280-26-050307dropped a $50.5M Proofpoint second-lien loan and two $100k loans, leaving the portfolio $50.7M below its reported total; it now reconciles exactly. (GH #1505) edgar_readdropped the 13F-HRsummarysection when requested by name. "summary" was treated as the metadata-only inspection mode across all forms, filtering it out from 13F requests. It is now extracted whenever requested on forms that define a summary section. (GH #1415)tests._offline_harnessblocked Windows asyncio startup and the audit mislabeled a no-data test as SEC-dependent. On Windows 11/Python 3.14.4, the probe passed normally but errored before its body with the harness. Internal socketpair connections now work while external TCP, DNS and ordinary loopback connections stay blocked. (GH #1490)scripts/check_offline_audit.pytruncated failed parameter IDs containing spaces. A selector ending in[Net sales]became[Net; audit runs now retain native pytest IDs, keep distinct parameters separate, and quote complete rerun selectors. Ambiguous legacy reports fail before changing the baseline. (GH #1476)Document.to_markdown()loses duration/date headers on grouped tables. In Apple's 10-Q (0000320193-25-000057), $90,753 million of comparative net sales appeared under "Mar. 29, 2025"; it now appears under "3 Months Ended Mar. 30, 2024". Eaton's blank header rows retain Shares/Dollars placement. Column placement in some equity-tableto_dataframe()andtext()outputs also changes. Markdown bytes change in 76 of 79 measured filings, so rebuild RAG indexes built from it. (GH #1474)Statement.render()misstated share units in monetary captions. Intuit's 2026 10-K (0000896878-26-000037) displays 276 for 276,000,000 shares; its note now says "In millions, except per share data" instead of excluding shares. Recognized share cells use one consistent scale, keeping the finest existing whole share display. Raw facts, DataFrames, getters and existing per-share formatting are unchanged. (GH #1470)- MCP
earnings_analysis,industry_overview, andfiling_comparisonprompts requested rejected inputs. Peer comparisons now requestmarginsinstead ofnet_margin; across-period financial trends requesttotal_assetsinstead ofassets. These templates guide clients and do not execute tools. (GH #1488) edgar_notes(detail="full")returned bareNaNfor missing table metadata, which strict JSON parsers rejected. For Apple's 10-Q (0000320193-26-000020), Note 6 Debt, the output usedNaNinstead ofnullinbalanceandweight. Missing cells now becomenullacross every exported record field, preserving the other recorded values. (GH #1489)XBRL.element_catalogcalled every us-gaap, dei and srt concept a duration. Entries for concepts declared outside the filing carriedperiod_type='duration',data_type=''andbalance=Nonewhatever the concept, so on Oracle's 10-Q (0001193125-26-389274) 108 instant concepts with facts,us-gaap_Assetsamong them, read "duration". The period type now comes from the concept's facts; what the filing does not say isNone. (GH #1425)- Documented XBRL calls such as
FactQuery.by_statement()andStatement.get_concept_value()do not exist. The docs now useby_statement_type(), chainedby_dimension(),to_dataframe()lookups,xbrl.facts.query()andSynonymGroups.export_to_json(), andmenucatholdsStatements, notS. They also sayto_dataframe()defaults to the detailed view: 45 rows on NVIDIA's FY2026 10-K (0001045810-26-000021), where printing shows the 29-row standard view. (GH #1424) XBRL.entity_infonamed a co-registrant as the filer of a combined filing. The last of the cover's registrant names won, so Duke Energy's FY2025 10-K (0001326160-26-000014) reportedPIEDMONT NATURAL GAS COMPANY, INC.beside Duke Energy's own CIK, 1326160; it now reportsDUKE ENERGY CORPORATION. The filer's facts win over those tagged with adei:LegalEntityAxismember, sotickeris also the filer's own symbol whenever it lists one. (GH #1420)SynonymGroups.identify_concepts()gave one XBRL element different answers in itsprefix:Nameandprefix_Namespellings. Statement frames use the underscore spelling, so on TSMC's FY2025 20-F (0001628280-26-025362) it returned[]for all 22 income-statement rows with a builtin synonym, such asifrs-full_CostOfSales. Both spellings now drop only a standard prefix (us-gaap,ifrs-full,dei,srt); an extension such asonto:NetIncomeno longer matches by local name. (GH #1418)Filing.html()returns an inline XBRL document as filed, without fetching the filing's index page. A primary document that opens with an XML declaration was treated as XML and re-downloaded through the index page, which costs a request and returns SEC's served copy: on JPM's 8-K that copy ends in a 109-character injected bot-detection<script>.html()now reads the document from the submission, so it also no longer depends on the index page being reachable. (GH #1421)