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.
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.
| Column | Type | Description |
|---|---|---|
| ticker | text · not null | The SPAC's ticker symbol. |
| name | text | The SPAC entity name as the SEC records it for the registrant. |
| is_delisted | boolean | Whether 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. |
| cik | bigint | SEC Central Index Key of the registrant. |
| listing_date | date | Exchange-listing date proxy: the earliest Form 8-A12B/8-A12G filing date, filed to register the securities on the exchange at IPO. |
| s1_date | date | Earliest S-1 registration filing date for this CIK (public-disclosure date from edgar_filings.available_date). |
| last_vote_date | date | Filing date of the most recent shareholder-vote governance event. |
| despac_date | date | Filing date of the merger-completion (de-SPAC) event, if the merger closed. |
| status | text | Lifecycle status: 'searching', 'vote_held', 'completed_merger', or 'delisted'. |
| available_date | date | PUBLIC-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.