EDGAR Form D
Form D filings for private offerings under Regulation D, including the amount a company is raising.
edgar_form_d — the dataset name to pass to the Obscura API.
What one row means
One Form D (Regulation D) notice of exempt offering of securities filed on SEC EDGAR by an issuer — a private-placement offering with its dollar magnitude (total offering / sold / remaining), equity-vs-debt flags, industry, and date of first sale. Includes original notices (form D) and amendments (form D/A).
One row per One row per EDGAR Form D / D/A filing document, keyed by its SEC Archives accession path (filename). Upserts on filename, so a later amendment filed under a new accession is a distinct row..
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_form_d: filing_join: available_date is recovered by joining filename -> edgar_filings.event_date (the SEC filing/dissemination date), NOT the notice's date_of_first_sale, which can precede the public filing by up to 15 days under Rule 503(a).
Refresh cadence
Obscura refreshes edgar_form_d 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 — 34 columns
The full public column list for edgar_form_d, with the meaning of every field. The same
schema is served unauthenticated at https://api.obscura.trade/v1/catalog/edgar_form_d.
| Column | Type | Description |
|---|---|---|
| filename | text · not null | PK. SEC EDGAR Archives accession path for this Form D document; fetched as sec.gov/Archives/{filename} and the join key into edgar_filings for the true filing date. |
| cik | bigint · not null | Central Index Key of the primary issuer, parsed from <primaryIssuer><cik>. |
| entity_name | text | Issuer legal name from <primaryIssuer><entityName>; nullable. |
| is_amendment | boolean · not null | True if this is a Form D/A amendment (from <newOrAmendment><isAmendment>), false for an original Form D. |
| industry | text | Issuer industry group type from <industryGroup><industryGroupType> (e.g. 'Other Technology'); nullable. |
| available_date | date | Public availability date: the Form D filing/dissemination date (recovered from `edgar_filings` via `filename`). The point-in-time anchor. |
| occurred_on | date | Date of first sale in the offering (the real-world event); may pre- or post-date the filing. |
| is_equity | boolean · not null | True if the offering includes equity securities (<typesOfSecuritiesOffered><isEquityType>). |
| is_debt | boolean · not null | True if the offering includes debt securities (<isDebtType>). |
| total_offering_amount | double precision | Total offering amount in USD from <offeringSalesAmounts><totalOfferingAmount>; NULL when the offering is 'Indefinite' (then indefinite=true). |
| total_amount_sold | double precision | USD amount of securities already sold (<totalAmountSold>); nullable. |
| total_remaining | double precision | USD amount of the offering still remaining to be sold (<totalRemaining>); nullable. |
| indefinite | boolean · not null | True when totalOfferingAmount was reported as 'Indefinite' (so total_offering_amount is NULL). |
| issuer_street1 | text | Issuer street address line 1 from <primaryIssuer><issuerAddress><street1>; nullable. |
| issuer_city | text | Issuer city from <primaryIssuer><issuerAddress><city>; nullable. |
| issuer_state_or_country | text | Issuer state or country code from <primaryIssuer><issuerAddress><stateOrCountry>; the only location signal Form D provides; nullable. |
| issuer_zip | text | Issuer ZIP / postal code from <primaryIssuer><issuerAddress><zipCode>; nullable. |
| jurisdiction_of_inc | text | State/country of incorporation from <primaryIssuer><jurisdictionOfInc>; a canonical entity attribute distinct from HQ address; nullable. |
| entity_type | text | Issuer legal form from <primaryIssuer><entityType> (e.g. 'Limited Partnership', 'Corporation', 'Limited Liability Company'); nullable. |
| year_of_inc | bigint | Year of incorporation from <primaryIssuer><yearOfInc><value>; company-age signal; nullable. |
| revenue_range | text | Issuer revenue / net-asset band from <offeringData><issuerSize><revenueRange> (falls back to <aggregateNetAssetValueRange>); the only size measure in the form; nullable. |
| is_pooled_investment_fund | boolean · not null | True if the offering includes pooled-investment-fund interests (<typesOfSecuritiesOffered><isPooledInvestmentFundType>); separates funds from operating-company raises. |
| is_option_to_acquire | boolean · not null | True if the offering includes options/warrants to acquire securities (<isOptionToAcquireType>). |
| is_security_to_be_acquired | boolean · not null | True if the offering includes securities to be acquired upon exercise of options/warrants (<isSecurityToBeAcquiredType>). |
| is_tenant_in_common | boolean · not null | True if the offering includes tenant-in-common securities (<isTenantInCommonType>). |
| is_mineral_property | boolean · not null | True if the offering includes mineral-property securities (<isMineralPropertyType>). |
| is_other_security | boolean · not null | True if the offering includes other (unclassified) security types (<isOtherType>). |
| has_non_accredited_investors | boolean · not null | True if the offering has any non-accredited investors (<offeringData><investors><hasNonAccreditedInvestors>); a compliance categorical. |
| minimum_investment_accepted | double precision | Minimum accepted investment in USD from <offeringData><minimumInvestmentAccepted>; nullable. |
| investors_already_invested | bigint | Count of investors already in the offering from <offeringData><investors><totalNumberAlreadyInvested>; nullable. |
| sales_commissions_amount | double precision | Sales-commission dollar amount from <offeringData><salesCommissionsFindersFees><salesCommissions><dollarAmount>; nullable. |
| finders_fees_amount | double precision | Finders-fee dollar amount from <offeringData><salesCommissionsFindersFees><findersFees><dollarAmount>; nullable. |
| gross_proceeds_to_insiders | double precision | USD proceeds paid to officers/directors/affiliates from <offeringData><useOfProceeds><grossProceedsUsed><dollarAmount>; an insider-payout measure; nullable. |
| scraped_at | timestamp with time zone · not null | Internal ingestion timestamp (Utc::now at upsert); EXCLUDED from exports, not an event date. |
Access edgar_form_d
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_form_d",
symbols=["NVDA", "AAPL"],
start="2024-01-01",
)
Create a free account Browse all 95 datasets
Frequently asked questions
What is in the edgar_form_d dataset?
Form D filings for private offerings under Regulation D, including the amount a company is raising. One Form D (Regulation D) notice of exempt offering of securities filed on SEC EDGAR by an issuer — a private-placement offering with its dollar magnitude (total offering / sold / remaining), equity-vs-debt flags, industry, and date of first sale. Includes original notices (form D) and amendments (form D/A).
How do I avoid look-ahead bias with edgar_form_d?
Filter on edgar_form_d.available_date, the day the publisher made the row public. For this dataset that date is derived as follows — filing_join: available_date is recovered by joining filename -> edgar_filings.event_date (the SEC filing/dissemination date), NOT the notice's date_of_first_sale, which can precede the public filing by up to 15 days under Rule 503(a). 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_form_d?
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_form_d". The column schema is public at https://api.obscura.trade/v1/catalog/edgar_form_d.
Can I filter edgar_form_d by company or symbol?
Yes. edgar_form_d carries cik, the column the API's symbols filter resolves against.
How often is edgar_form_d updated?
Obscura refreshes edgar_form_d 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.