Obscura

EDGAR Form 144

Form 144 notices, filed when an insider intends to sell restricted stock. Usually precedes the completed sale on Form 4.

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

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

What one row means

One proposed-sale line (a single securitiesInformation entry) from an SEC Form 144 "Notice of Proposed Sale of Securities" filing — the leading indicator that an affiliate intends to sell restricted/control stock, pairing with the lagging Form 4 confirmation. Legacy pre-2022 plain-text 144s produce a single stub row (seq 0) carrying only issuer identity from the SEC-HEADER.

One row per (filename, seq) — one EDGAR submission filename plus the zero-based index of the securitiesInformation block within that filing's XML..

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_form144: filing_join: available_date = the filing's EDGAR dissemination date, recovered from edgar_filings via filename — the point-in-time anchor (occurred_on is the affiliate's approximate PLANNED sale date, a separate future-facing field, not the availability basis).

Refresh cadence

Obscura refreshes edgar_form144 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 — 22 columns

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

ColumnTypeDescription
filenametext · not nullEDGAR submission path (sec.gov/Archives/{filename}); identifies the source filing and joins to edgar_filings for the true filing date.
seqinteger · not nullZero-based index of the securitiesInformation block within the filing (0 for legacy stub rows); disambiguates multiple security classes in one 144.
cikbigint · not nullSEC Central Index Key of the issuer whose stock is proposed for sale (parsed from issuerCik, or SEC-HEADER subject/filer CIK for legacy filings).
filer_cikbigintSEC Central Index Key of the SELLING affiliate (reporting owner) — the first `<cik>` in the filing's headerData filerCredentials block (== SEC-HEADER REPORTING-OWNER CENTRAL INDEX KEY); the canonical person identifier that joins Form 144 intent to Form 4 realized sales. Null on legacy stub rows.
issuer_nametextName of the issuer company (issuerName, or SEC-HEADER subject/filer name for legacy filings).
sec_file_numbertextIssuer's SEC file number (issuerInfo.secFileNumber, e.g. 001-42255) — a cross-dataset issuer/registration identifier.
issuer_statetextIssuer address state-or-country code (issuerInfo.issuerAddress.stateOrCountry), verbatim EDGAR encoding (USPS 2-letter for US states, ISO country otherwise).
issuer_citytextIssuer address city (issuerInfo.issuerAddress.city).
issuer_ziptextIssuer address ZIP / postal code (issuerInfo.issuerAddress.zipCode), verbatim.
seller_accounttextName of the person/trust for whose account the securities are to be sold (nameOfPersonForWhoseAccountTheSecuritiesAreToBeSold) — the selling affiliate.
relationshiptextSeller's relationship(s) to the issuer (e.g. Officer, Director, Affiliate), comma-joined from relationshipToIssuer entries.
class_titletextTitle of the securities class proposed for sale (securitiesClassTitle), e.g. 'Common Stock'.
units_solddouble precisionNumber of units the affiliate proposes to sell (noOfUnitsSold).
aggregate_market_valuedouble precisionAggregate market value of the securities to be sold (aggregateMarketValue), in USD.
units_outstandingdouble precisionTotal number of units of this class outstanding (noOfUnitsOutstanding), as stated on the notice.
available_datedateThe filing's SEC dissemination date — when the public could first see it. Recovered from edgar_filings via filename. The point-in-time anchor.
occurred_ondateApproximate PLANNED sale date the affiliate intends to sell on — a future event relative to the filing, not the public-availability date.
notice_datedateDate the affiliate signed the Form 144 notice (noticeSignature.noticeDate) — a distinct event date, typically ~1 day before EDGAR dissemination. No dictionary canonical (occurred_on is taken by the planned sale date).
nothing_sold_past_3mbooleanThe affiliate's own "nothing to report" flag for trailing-3-month sales (nothingToReportFlagOnSecuritiesSoldInPast3Months): true = no sales in the past 3 months. The per-sale detail lives in a deferred child table.
exchangetextName of the securities exchange on which the proposed sale will occur (securitiesExchangeName).
brokertextName of the broker or market-maker handling the proposed sale (brokerOrMarketmakerDetails.name).
scraped_attimestamp with time zone · not nullInternal ingestion timestamp set to Utc::now() at upsert; provenance/audit only, updated on re-upsert, and excluded from exports.

Access edgar_form144

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_form144",
    symbols=["NVDA", "AAPL"],
    start="2024-01-01",
)

Create a free account Browse all 95 datasets

Frequently asked questions

What is in the edgar_form144 dataset?

Form 144 notices, filed when an insider intends to sell restricted stock. Usually precedes the completed sale on Form 4. One proposed-sale line (a single securitiesInformation entry) from an SEC Form 144 "Notice of Proposed Sale of Securities" filing — the leading indicator that an affiliate intends to sell restricted/control stock, pairing with the lagging Form 4 confirmation. Legacy pre-2022 plain-text 144s produce a single stub row (seq 0) carrying only issuer identity from the SEC-HEADER.

How do I avoid look-ahead bias with edgar_form144?

Filter on edgar_form144.available_date, the day the publisher made the row public. For this dataset that date is derived as follows — filing_join: available_date = the filing's EDGAR dissemination date, recovered from edgar_filings via filename — the point-in-time anchor (occurred_on is the affiliate's approximate PLANNED sale date, a separate future-facing field, not the availability basis). 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_form144?

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_form144". The column schema is public at https://api.obscura.trade/v1/catalog/edgar_form144.

Can I filter edgar_form144 by company or symbol?

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

How often is edgar_form144 updated?

Obscura refreshes edgar_form144 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.