Obscura

SPACs

Blank-check (SPAC) companies tracked through their lifecycle from the SEC record: S-1 registration, exchange listing, shareholder vote, completed merger or delisting, with the current status and the filing date behind each milestone.

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

Category Corporate Columns 10 Refresh Every weekday Entity key ticker Point-in-time available_date

What one row means

One SPAC (special-purpose acquisition company) and its lifecycle milestones — a read-only `spacs` MATERIALIZED VIEW derived entirely from SEC public record. The universe is SIC 6770 (blank check) registrants plus "acquisition corp/holdings" names, keyed by their listed ticker (or, for a registrant no longer in the SEC ticker file, the last symbol it filed Form 4s under), and enriched with S-1/listing/vote/de-SPAC dates from `edgar_filings` + `governance_events`. Refreshed nightly by `RefreshGovernanceViews`.

One row per One row per ticker..

Derived in-database from edgar_tickers, edgar_filings, governance_events.

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 spacs: snapshot: available_date = the latest known public milestone (greatest of s1_date / last_vote_date / despac_date / listing_date), every one of them an SEC filing date. Refreshed nightly.

Refresh cadence

Obscura refreshes spacs 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 spacs, with the meaning of every field. The same schema is served unauthenticated at https://api.obscura.trade/v1/catalog/spacs.

ColumnTypeDescription
tickertext · not nullThe SPAC's ticker symbol.
nametextThe SPAC entity name as the SEC records it for the registrant.
is_delistedbooleanWhether the registrant has filed a Form 25 / 25-NSE (exchange delisting) or a Form 15 (registration withdrawal) — the SEC's own notice that the listing ended. Also true once a post-de-SPAC symbol is retired.
cikbigintSEC Central Index Key of the registrant.
listing_datedateExchange-listing date proxy: the earliest Form 8-A12B/8-A12G filing date, filed to register the securities on the exchange at IPO.
s1_datedateEarliest S-1 registration filing date for this CIK (public-disclosure date from edgar_filings.available_date).
last_vote_datedateFiling date of the most recent shareholder-vote governance event.
despac_datedateFiling date of the merger-completion (de-SPAC) event, if the merger closed.
statustextLifecycle status: 'searching', 'vote_held', 'completed_merger', or 'delisted'.
available_datedatePUBLIC-availability date = the latest public milestone date on the row. The point-in-time column to filter/join on.

Access spacs

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

Create a free account Browse all 95 datasets

Frequently asked questions

What is in the spacs dataset?

Blank-check (SPAC) companies tracked through their lifecycle from the SEC record: S-1 registration, exchange listing, shareholder vote, completed merger or delisting, with the current status and the filing date behind each milestone. One SPAC (special-purpose acquisition company) and its lifecycle milestones — a read-only `spacs` MATERIALIZED VIEW derived entirely from SEC public record. The universe is SIC 6770 (blank check) registrants plus "acquisition corp/holdings" names, keyed by their listed ticker (or, for a registrant no longer in the SEC ticker file, the last symbol it filed Form 4s under), and enriched with S-1/listing/vote/de-SPAC dates from `edgar_filings` + `governance_events`. Refreshed nightly by `RefreshGovernanceViews`.

How do I avoid look-ahead bias with spacs?

Filter on spacs.available_date, the day the publisher made the row public. For this dataset that date is derived as follows — snapshot: available_date = the latest known public milestone (greatest of s1_date / last_vote_date / despac_date / listing_date), every one of them an SEC filing date. Refreshed nightly. A query of the form WHERE available_date <= '<as-of date>' never sees a row before it existed.

In what formats can I get spacs?

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

Can I filter spacs by company or symbol?

Yes. spacs carries ticker, the column the API's symbols filter resolves against.

How often is spacs updated?

Obscura refreshes spacs 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

EDGAR FilingsThe master index of SEC EDGAR: every filing, with its form type, filer and date. EDGAR TickersThe crosswalk between SEC CIK numbers, tickers and exchanges. The join key between EDGAR data and market prices. Governance EventsGovernance events distilled from company 8-K filings and tagged by type: executive changes, auditor changes, restatement… Board InterlocksPairs of public companies that share a director, reconstructed from SEC insider filings: one row per (director, company … Company SubsidiariesParent-and-subsidiary lists taken from the Exhibit 21 that public companies attach to their annual report. Domain SubdomainsSubdomains discovered for each public company's domains through Certificate Transparency logs (crt.sh). Employee CountsEmployee headcount as stated in the text of 10-K annual reports. Executive CompensationExecutive pay from the Pay-versus-Performance table in proxy statements: reported and 'actually paid' compensation for t…