SPAC Redemptions Scraper — SEC EDGAR Lifecycle Tracker avatar

SPAC Redemptions Scraper — SEC EDGAR Lifecycle Tracker

Pricing

from $80.00 / 1,000 spac filing results

Go to Apify Store
SPAC Redemptions Scraper — SEC EDGAR Lifecycle Tracker

SPAC Redemptions Scraper — SEC EDGAR Lifecycle Tracker

Track the full SPAC lifecycle on SEC EDGAR for merger-arbitrage and de-SPAC research: blank-check S-1 IPOs, Rule 425 merger comms, DEFM14A vote proxies with parsed meeting dates, and 8-K redemptions with redeemed shares, $/share and trust withdrawals. Never guesses a number — no login.

Pricing

from $80.00 / 1,000 spac filing results

Rating

0.0

(0)

Developer

Nomad.Dev

Nomad.Dev

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 days ago

Last modified

Share

Track the full SPAC lifecycle straight from SEC EDGAR: new blank-check S-1 IPO filings, Rule 425 merger communications, DEFM14A merger-vote proxies (meeting date parsed out of the proxy) and 8-K redemption disclosures (redeemed share count, per-share redemption price and trust-account withdrawal parsed out of the filing). Official public SEC data — no login, no proxies, no API key.

This is the structured SPAC event feed that arbitrage desks, merger-arb analysts and SPAC-tracking products otherwise assemble by hand from EDGAR — or buy as a $300+/month database subscription. Point it at a date range, a single SPAC (by name, ticker or CIK), or run it on a schedule with delta mode to get only new events.

Input

FieldTypeDefaultDescription
modeselect"redemptions"Which lifecycle stage to track: ipos (S-1 blank-check filings), mergers (Form 425 communications), votes (DEFM14A proxies), redemptions (8-K redemption disclosures) or all (all four in sequence, sharing one maxItems budget).
entitystring(empty)Filter to one SEC filer — company name (e.g. "AlphaVest"), ticker or CIK. Empty = all SPACs. Ignored when watchlist is set.
watchliststring[](empty)Named basket of SPACs to track — one company name, ticker or CIK per entry. Each lifecycle search runs once per entry, sharing the maxItems budget; a filer matched under both its name and ticker is emitted once. Takes precedence over entity. See Watchlists.
watchlistNamestring(empty)Label for the basket — echoed into every record as watchlistName and used to keep each basket's delta history separate.
fromDatedate(empty)Only filings filed on/after this date. Set one bound and the other is filled in for you (earliest = 2001, latest = today).
toDatedate(empty)Only filings filed on/before this date.
parseFilingTextbooleantrueFetch each proxy/8-K document and extract meeting date, redeemed shares, price per share and trust withdrawal (see Parsed fields). Applies to votes and redemptions; ipos and mergers records are index metadata only.
onlyNewSinceLastRunbooleanfalseOnly output filings not seen in previous runs with this flag — see Delta mode.
maxItemsinteger100Hard cap on filings returned per run (1–2000; out-of-range values are clamped). You get the newest filings in the window: EDGAR's own search ranks by keyword relevance, so the Actor scans the whole window and sorts by filing date before applying this cap.
concurrency (Advanced)integer3Parallel document fetches when parseFilingText is on (1–5). All SEC requests are rate-spaced internally to respect EDGAR fair-access limits.

What SPAC data does this scraper extract?

One flat JSON record per filing (one per accession number — exhibit hits are deduplicated). All fields are present on every record; fields that don't apply to an event type, or that could not be extracted with confidence, are null — never guessed.

FieldMeaning
idSEC accession number, e.g. 0001493152-25-014682 — stable and unique per filing
sourceAlways "sec-edgar"
watchlistNameThe watchlistName input echoed onto the record, or null when none was set
eventTypeipo_filing | merger_communication | merger_vote_proxy | redemption_disclosure (or diagnostic on the single unbilled row emitted if a run errors)
companyFiler name as registered with the SEC
cikSEC CIK, zero-padded 10 digits
tickerPrimary listed ticker, or null when the filer has none on record
tickersAll listed tickers (common/rights/units/warrants), possibly empty
formTypeRoot form: S-1, 425, DEFM14A or 8-K
matchedFileTypeThe specific file the search matched (8-K, EX-99.1, ...)
filedAtFiling date YYYY-MM-DD
accessionNumberSame as id
filingUrlDirect URL of the matched document on sec.gov
indexUrlFiling folder on sec.gov (all documents + exhibits)
redeemedSharesParsed share count redeemed (redemptions only)
redeemedSharesCandidatesWhen one 8-K states several rival share counts (e.g. it covers two meetings), redeemedShares stays null and every candidate is listed here as a number — so you can reconcile them without re-parsing the document (redemptions only)
redemptionPricePerShareParsed per-share redemption price in USD (redemptions only)
trustAmountRemovedParsed total USD removed from the trust account (redemptions only)
hasVoteResultstrue when the 8-K contains Item 5.07 vote results (redemptions only)
meetingDateParsed shareholder-meeting date YYYY-MM-DD (votes only)
excerpt≤300-char snippet of the filing text the numbers were read from — verify at a glance
parse_confidence"high" / "medium" / "low" — see below; null when text parsing was skipped
warningsHuman-readable notes on anything ambiguous or unparsed (empty array when clean)
isNewtrue on every pushed record — only present when Only new since last run is on

Parsed fields & parse confidence

SEC filings state redemption facts in prose. The parser extracts them with strict rules and reports how sure it is:

  • high — all primary facts for the event type found unambiguously (redemptions: share count and per-share price; votes: one consistent meeting date; ipos/mergers: always high, the record is index metadata).
  • medium — some facts found; the rest are null with a warnings entry.
  • low — nothing recognized; all parsed fields null, warnings says why (unusual phrasing, data in an unfetched exhibit, document fetch failed).

When a filing mentions multiple conflicting values (e.g. per-meeting redemption counts plus a combined total that can't be told apart), the field is left null and the candidates are listed in warnings — the actor never picks a number for you. The excerpt field shows the exact sentence so you can verify in one glance.

How to track SPAC redemptions with this Actor

  1. Pick a lifecycle stageredemptions for trust redemptions, votes for upcoming merger votes, ipos for new blank-check registrations, mergers for de-SPAC announcements, or all.
  2. Optionally narrow to a single entity (one SPAC) or a watchlist (a named basket of SPACs — see Watchlists), and a date range.
  3. Leave Parse filing text on to get the structured numbers, not just filing metadata.
  4. Turn on Only new since last run and put the actor on a daily schedule to get a clean feed of new SPAC events only — new redemption results land on EDGAR the same day they're filed.
  5. Run and export JSON, CSV or Excel — or call it over the API:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("nomad-agent/spac-redemptions-scraper").call(run_input={
"mode": "redemptions",
"fromDate": "2026-01-01",
"maxItems": 100,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["filedAt"], item["company"], item["redeemedShares"],
item["redemptionPricePerShare"], item["filingUrl"])
curl -X POST \
"https://api.apify.com/v2/acts/nomad-agent~spac-redemptions-scraper/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"mode": "redemptions", "fromDate": "2026-01-01", "maxItems": 50}'

Output example

Real record (live run, June 2026):

{
"id": "0001213900-26-053305",
"source": "sec-edgar",
"eventType": "redemption_disclosure",
"company": "ClimateRock",
"cik": "0001903392",
"ticker": "CLRCF",
"tickers": ["CLRCF", "CLRRF"],
"formType": "8-K",
"matchedFileType": "8-K",
"filedAt": "2026-05-07",
"accessionNumber": "0001213900-26-053305",
"filingUrl": "https://www.sec.gov/Archives/edgar/data/1903392/000121390026053305/ea0289583-8k_climate.htm",
"indexUrl": "https://www.sec.gov/Archives/edgar/data/1903392/000121390026053305/",
"redeemedShares": 4543,
"redeemedSharesCandidates": [],
"redemptionPricePerShare": 13.19,
"trustAmountRemoved": 59900000.0,
"hasVoteResults": true,
"meetingDate": null,
"excerpt": "...Shareholders holding 4,543 Public Shares exercised their right to redeem such Public Shares for a pro rata portion of the funds in the Trust Account. As a result, approximately $59.9 million (or approximately $13.19 per share) will be removed from the T...",
"parse_confidence": "high",
"warnings": []
}

isNew (delta mode) is added on top of this shape when that input is on.

Watchlists

Set a Watchlist (watchlist) to track a fixed basket of SPACs instead of a single filer or the whole market. Add one company name, ticker or CIK per entry:

  • Each lifecycle search runs once per entry, sharing the single maxItems budget.
  • A filer that matches under more than one entry (e.g. its name and its ticker) is de-duplicated — one record per filing.
  • The watchlist takes precedence over entity.
  • Give it a Watchlist name (watchlistName) to label the output (echoed onto every record) and, in delta mode, to keep each basket's "already-seen" history separate — so two scheduled watchlists on this same Actor never mask each other's new filings.
{
"mode": "all",
"watchlist": ["ClimateRock", "AlphaVest", "0001903392"],
"watchlistName": "Active de-SPACs",
"onlyNewSinceLastRun": true
}

Delta mode

Turn on Only new since last run (onlyNewSinceLastRun) to have the Actor remember which filings it has already returned (keyed by event type + accession number) across runs, and skip filings it has already seen.

  • Skipped (already-seen) filings are not pushed and not billed — repeat runs only charge for genuinely new events.
  • Every filing that is pushed with this flag on is tagged "isNew": true.
  • State is kept in a dedicated key-value store (separate from the run's default store) so it persists across scheduled runs, and is namespaced by watchlistName so separate baskets keep independent histories.

How the four searches work

Each stage is one EDGAR full-text search using the standard terms of art in SPAC filings, verified against live filings:

StageForm filterMatches filings containing
iposS-1"blank check company"
mergers425"business combination"
votesDEFM14A"special meeting" + "business combination"
redemptions8-K"exercised their right to redeem"

EDGAR full-text search covers filings from 2001 onwards and indexes exhibits too — redemption numbers announced in an EX-99.1 press release attached to an 8-K are found and parsed just the same.

Integrations

Export results as JSON, CSV or Excel, or wire this Actor into Make, Zapier or n8n; call it programmatically with run-sync-get-dataset-items; or use it from AI agents via the Apify MCP server.

Pricing

Pay per event: $0.01 per Actor start and $0.08 per filing returned. 50 filings ≈ $4.01. No subscription — pay only for what you fetch, and in delta mode you only pay for filings you haven't already seen.

A SPAC database subscription starts around $275/month whether or not anything was filed that week. There are roughly a dozen redemption 8-Ks in a typical month — monitoring them here costs about a dollar.

Use cases

  • SPAC arbitrage: daily feed of redemption results, trust withdrawals and per-share redemption prices
  • Merger-arb calendars: upcoming de-SPAC votes with parsed meeting dates
  • Deal-flow monitoring: new blank-check S-1 registrations and 425 merger announcements as they hit EDGAR
  • Law firms / advisors: track redemption levels and extension votes across the active SPAC universe
  • Quant/data teams: replace a $300+/month SPAC database subscription for event-date data you can re-derive from primary sources

FAQ

Is it legal to scrape this data? Yes. SEC filings are public-domain U.S. government records, and this Actor uses the SEC's own public search API and archive URLs, honoring the SEC's fair-access guidance (identified User-Agent, throttled request rate well under the published 10 req/s limit).

Do I need an API key or login? No. All endpoints used are unauthenticated public SEC services.

How fresh is the data? Every run queries EDGAR live. Full-text search indexes new filings within minutes to a few hours of acceptance — same-day for redemption 8-Ks.

Why is a numeric field null when the filing clearly states the number? The parser only reports values it can extract unambiguously. If a filing states several conflicting counts (common when one 8-K covers two meetings), the field is null and warnings lists the candidates — check excerpt and filingUrl. That's deliberate: no silent guessing.

Does it cover redemptions announced only in press-release exhibits? Yes — EDGAR full-text search indexes exhibits (EX-99.x), and the parser runs on whichever document matched.

Something broken or missing? Open an issue on the Actor's Issues tab — it is monitored and fixes ship fast.