Obscura

EDGAR Shares Outstanding

Shares outstanding over time, reported in companies' XBRL filings.

edgar_shares_outstanding — the dataset name to pass to the Obscura API.

Category Regulatory Columns 10 Refresh Every weekday Entity key cik Point-in-time available_date

What one row means

One common-shares-outstanding data point for a single SEC registrant as of a single XBRL period-instant: the value of `dei:EntityCommonStockSharesOutstanding` reported for company `cik` at instant `period_end`, sourced either from the SEC quarterly XBRL frames API (bulk, all companies for one quarter-instant) or from the per-company companyconcept API (recent top-up). Feeds the `edgar_dilution` view (QoQ/YoY dilution %).

One row per (cik, period_end).

Point-in-time availability

Every Obscura dataset carries available_date: the calendar day the publisher made the row available, day-of, with no session rounding. It is the one column a backtest filters on, and it means the same thing on every dataset in the catalog.

For edgar_shares_outstanding: filing_join via accn: available_date is the SEC filing date this observation became publicly available — set directly from the XBRL `filed` fact on concept-sourced rows, and recovered on frames-sourced rows (which carry no `filed`) by a set-based UPDATE joining accn -> edgar_filings on every collector run, exactly as edgar_fundamentals and edgar_dilution_metrics do. period_end is the separate XBRL period-instant the share count is measured as of, never the public date.

Refresh cadence

Obscura refreshes edgar_shares_outstanding every weekday — the most frequent scheduled job that re-collects or re-exports it. This is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when a row became public is recorded per row in available_date.

Schema — 10 columns

The full public column list for edgar_shares_outstanding, with the meaning of every field. The same schema is served unauthenticated at https://api.obscura.trade/v1/catalog/edgar_shares_outstanding.

ColumnTypeDescription
cikbigint · not nullSEC Central Index Key of the registrant; part of the primary key.
period_enddate · not nullXBRL period-instant (the 'end' fact) the share count is measured as-of, e.g. the cover-page / quarter-instant date; part of the primary key. A period/as-of date, distinct from the public availability date.
entity_nametextRegistrant name as reported in the XBRL fact (entityName).
sharesbigint · not nullCommon shares outstanding count (dei:EntityCommonStockSharesOutstanding); fractional API values are rounded to i64. The core measure.
accntextSEC accession number of the filing the value came from; the join key to edgar_filings for recovering the public filing date.
formtextSEC form type that carried the fact (e.g. 10-Q, 10-K); populated only on concept-sourced rows (the frames path leaves it unset).
available_datedateSEC filing date — the public-availability date this observation became known. Populated directly on concept-sourced rows; recovered via accn -> edgar_filings for frames-sourced rows.
frametextXBRL frame identifier (e.g. "CY2026Q1I") when sourced from the frames API.
loctextRegistrant location code from the frames API (`data[].loc`), e.g. `US-IL`, `US-CA`, or a foreign ISO code like `CA-ON` — the ISO-3166 state-or-country of the entity's principal office / incorporation. Frames-only; the concept endpoint omits it. Not derivable from any other stored field. Nullable.
sourcetext · not nullProvenance tag: "frames" (quarterly bulk) or "concept" (recent per-company top-up). Determines whether form/available_date are populated directly.

Access edgar_shares_outstanding

Two delivery paths, one identifier. Both require an Obscura account and an active subscription; the catalog entry and the schema above are public.

import obscura

client = obscura.Client("obs_live_…")

df = client.query(
    dataset="edgar_shares_outstanding",
    symbols=["NVDA", "AAPL"],
    start="2024-01-01",
)

Create a free account Browse all 95 datasets

Frequently asked questions

What is in the edgar_shares_outstanding dataset?

Shares outstanding over time, reported in companies' XBRL filings. One common-shares-outstanding data point for a single SEC registrant as of a single XBRL period-instant: the value of `dei:EntityCommonStockSharesOutstanding` reported for company `cik` at instant `period_end`, sourced either from the SEC quarterly XBRL frames API (bulk, all companies for one quarter-instant) or from the per-company companyconcept API (recent top-up). Feeds the `edgar_dilution` view (QoQ/YoY dilution %).

How do I avoid look-ahead bias with edgar_shares_outstanding?

Filter on edgar_shares_outstanding.available_date, the day the publisher made the row public. For this dataset that date is derived as follows — filing_join via accn: available_date is the SEC filing date this observation became publicly available — set directly from the XBRL `filed` fact on concept-sourced rows, and recovered on frames-sourced rows (which carry no `filed`) by a set-based UPDATE joining accn -> edgar_filings on every collector run, exactly as edgar_fundamentals and edgar_dilution_metrics do. period_end is the separate XBRL period-instant the share count is measured as of, never the public date. A query of the form WHERE available_date <= '<as-of date>' never sees a row before it existed.

In what formats can I get edgar_shares_outstanding?

As a Parquet bulk export (POST https://api.obscura.trade/v1/download) or as JSON from the typed query API (POST https://api.obscura.trade/v1/query), both with dataset="edgar_shares_outstanding". The column schema is public at https://api.obscura.trade/v1/catalog/edgar_shares_outstanding.

Can I filter edgar_shares_outstanding by company or symbol?

Yes. edgar_shares_outstanding carries cik, the column the API's symbols filter resolves against.

How often is edgar_shares_outstanding updated?

Obscura refreshes edgar_shares_outstanding on a every weekday schedule — that is the most frequent scheduled job that re-collects or re-exports the table. It is Obscura's own pipeline cadence, not the upstream publisher's release schedule; when the publisher makes a row available is described by the availability rule above, and is recorded per row in available_date.

Related datasets

CFTC Commitments of TradersThe CFTC's weekly Commitments of Traders report: how commercial, non-commercial and small traders are positioned in each… ECHO Enforcement CasesEnvironmental enforcement actions and penalties from the EPA's ECHO database. ECHO FacilitiesEPA-regulated facilities and their compliance history, from ECHO. EDGAR 13F FilingsMetadata for every 13F report, the quarterly filing where large institutional managers list their U.S. equity holdings. EDGAR 13F HoldingsThe line-item positions inside each 13F: which manager held which security, and how much, each quarter. EDGAR 8-K ItemsThe item numbers reported on each 8-K (5.02 officer changes, 2.01 acquisitions, 1.01 material agreements, and so on), so… EDGAR Dilution MetricsShare-issuance headroom and overhang metrics built from companies' XBRL filings: authorized versus outstanding shares, a… EDGAR Filing TextSignals mined from the text of filings, such as mentions of distress, litigation, going-concern doubt and restructuring.