S-1 API: IPO registration filings as normalized JSON, threaded by SEC file number

Facts last verified 2026-08-19; sample response fetched from production 2026-09-01.

Before a company can sell securities to the public in the US, it registers them with the SEC — a Form S-1 (or F-1 for foreign private issuers). What follows is a paper trail spread across several filings and form types: amendments (S-1/A) as the company iterates with SEC review, an EFFECT notice when the SEC declares the registration effective, and a final priced prospectus (424B1/424B4) — the filing where the offering's terms become public. EDGAR publishes each of those as a separate document under its own form type; the thing that ties one offering together is the SEC file number, buried in each filing's header. FilingPulse polls the EDGAR feed continuously, normalizes every tracked registration filing to one JSON shape, and serves the result with that file number as a first-class filter — so following an offering from first draft to priced deal is one query.

To be precise about what this is: FilingPulse is data infrastructure. We report which filings were made, as they were filed — no scores, no recommendations, no interpretation of what a registration means for anyone.

What one offering's lifecycle looks like

This is the exact, complete production response of GET /v1/registrations?file_number=333-298113&until=2026-08-20, fetched 2026-09-01 — Aptera Motors' August 2026 offering, whose whole lifecycle ran in under two weeks: S-1 on Aug 7, amendment Aug 18, declared effective and priced Aug 20. The until bound is fixed and in the past, so this query returns the same four objects forever:

{
  "data": [
    {
      "form_type": "EFFECT",
      "stage": "effectiveness",
      "filed_date": "20260820",
      "effectiveness_date": "20260820",
      "act": "1933 Act",
      "file_number": "333-298113",
      "film_number": "261301598",
      "issuer": {
        "name": "Aptera Motors Corp",
        "cik": "0001786471",
        "sic": "MOTOR VEHICLES & PASSENGER CAR BODIES",
        "sic_code": "3711",
        "state_of_incorporation": "DE",
        "fiscal_year_end": "1231"
      },
      "former_names": [],
      "source_url": "https://www.sec.gov/Archives/edgar/data/1786471/999999999526002721/9999999995-26-002721-index-headers.html",
      "normalized_by": "filingpulse-prototype-0.2",
      "accession": "9999999995-26-002721"
    },
    {
      "form_type": "424B4",
      "stage": "prospectus",
      "filed_date": "20260820",
      "effectiveness_date": null,
      "act": "1933 Act",
      "file_number": "333-298113",
      "film_number": "261300949",
      "issuer": {
        "name": "Aptera Motors Corp",
        "cik": "0001786471",
        "sic": "MOTOR VEHICLES & PASSENGER CAR BODIES",
        "sic_code": "3711",
        "state_of_incorporation": "DE",
        "fiscal_year_end": "1231"
      },
      "former_names": [],
      "source_url": "https://www.sec.gov/Archives/edgar/data/1786471/000149315226039508/0001493152-26-039508-index-headers.html",
      "normalized_by": "filingpulse-prototype-0.2",
      "accession": "0001493152-26-039508"
    },
    {
      "form_type": "S-1/A",
      "stage": "amendment",
      "filed_date": "20260818",
      "effectiveness_date": null,
      "act": "1933 Act",
      "file_number": "333-298113",
      "film_number": "261288133",
      "issuer": {
        "name": "Aptera Motors Corp",
        "cik": "0001786471",
        "sic": "MOTOR VEHICLES & PASSENGER CAR BODIES",
        "sic_code": "3711",
        "state_of_incorporation": "DE",
        "fiscal_year_end": "1231"
      },
      "former_names": [],
      "source_url": "https://www.sec.gov/Archives/edgar/data/1786471/000149315226038839/0001493152-26-038839-index-headers.html",
      "normalized_by": "filingpulse-prototype-0.2",
      "accession": "0001493152-26-038839"
    },
    {
      "form_type": "S-1",
      "stage": "registration",
      "filed_date": "20260807",
      "effectiveness_date": null,
      "act": "1933 Act",
      "file_number": "333-298113",
      "film_number": "261253940",
      "issuer": {
        "name": "Aptera Motors Corp",
        "cik": "0001786471",
        "sic": "MOTOR VEHICLES & PASSENGER CAR BODIES",
        "sic_code": "3711",
        "state_of_incorporation": "DE",
        "fiscal_year_end": "1231"
      },
      "former_names": [],
      "source_url": "https://www.sec.gov/Archives/edgar/data/1786471/000149315226036568/0001493152-26-036568-index-headers.html",
      "normalized_by": "filingpulse-prototype-0.2",
      "accession": "0001493152-26-036568"
    }
  ],
  "total": 4,
  "limit": 50,
  "offset": 0
}

The properties that make this shape dependable:

Form types we track

FormStageWhat it is
S-1registrationInitial registration statement (US issuers)
S-1/AamendmentAmendment during SEC review
F-1registrationInitial registration statement (foreign private issuers)
F-1/AamendmentAmendment to an F-1
EFFECTeffectivenessSEC notice that a registration was declared effective
424B1prospectusFinal prospectus with offering terms
424B4prospectusFinal priced prospectus — the usual form for a priced deal

Querying it

GET https://api.filingpulse.io/v1/registrations — filters compose; newest filed first:

Pass your key in the X-API-Key header. limit goes to 200 per page with offset paging; copy-paste versions live on the query patterns page, each one executed by our CI.

Registration webhooks

Polling tells you what already happened; for new filings you can register a webhook (1 subscription free) with "events": ["registration"] and get an HTTP POST when a tracked filing lands. Subscriptions accept filters: {"stages": ["prospectus"]} delivers only priced deals, and {"file_numbers": ["333-298113"]} follows one offering through its lifecycle and nothing else. Every delivery is HMAC-signed (X-FilingPulse-Signature, per-subscription secret) with a fixed retry ladder. Working receiver code is on the recipes page, including an IPO-threading example.

Freshness and coverage — checkable, not claimed

We poll EDGAR's public feed on a 60-second cadence during filing hours, and every night a reconciliation pass re-checks the trailing days against EDGAR's own daily index, so anything the live feed dropped is recovered automatically. Rather than quote adjectives, we publish the numbers: current registration counts and the freshest ingest timestamp are at /v1/health, no key needed — check it before assuming anything.

Free tier and pricing

The free tier is 2,500 requests/month at 10/minute, email only, no card — enough to poll every 20 minutes around the clock, or to skip polling entirely with the free webhook. Paid tiers ($19/$49/$99 per month) raise volume and webhook counts; the data and schema are identical on every tier, and no tier carries a personal-use license restriction. Get a key — it takes under a minute.

How it compares

Who is writing this: we build FilingPulse, so we have an obvious interest. To keep this useful anyway, every factual claim about another provider below was read from that provider's own public pages on the date shown, each section links its source, and we say plainly where a competitor is the better choice. If you find something out of date, email keys@filingpulse.io and we will fix it.

ProviderFree tierPush delivery
FilingPulse2,500 requests/month, 10/min, email only — no cardHMAC-signed webhooks on new filings, plus a hosted MCP server for AI agents
sec-api.ioFirst 100 API calls — one-time, not monthlyReal-time WebSocket filing stream on paid plans
SEC EDGAR (official APIs)Free, no key — max 10 requests/second with a declared User-AgentNone — the SEC states it offers no filing notification service; RSS polling is the official option
Financial Modeling Prep250 calls/day, end-of-day dataNo filing webhooks documented
Finnhub60 API calls/minute, personal useWebSocket is for market data; filings are poll-only
edgartools (open source)Free — MIT-licensed Python library you run yourselfNone — a local library, not a hosted service; no webhooks
Massive (formerly Polygon.io)Market-data plans include a free tier; filings endpoints are part of the stocks plansForm 4 data is documented as updated daily on every plan — a daily batch, not real-time

The structural difference for registrations specifically: the SEC's own APIs give you the raw filing documents free forever, but the lifecycle threading lives in SGML headers — the file number, the stage, the effectiveness notice — that you would parse and join yourself, and there is no push delivery. That DIY path is covered honestly on our free SEC EDGAR API page. FilingPulse's product is that threading done for you, plus a webhook the minute a filing lands. Full comparison with pricing floors and sources: best SEC EDGAR API in 2026.

Know going in

Honest limits: this vertical is live-forward since August 2026 — unlike our Form 4 dataset, it has no historical backfill, so it answers "what is being registered now," not "what was registered in 2019." We serve the header classification, not the filing body text — form type, stage, issuer, dates, file number, and the EDGAR source_url where the full document lives; deal size, price ranges, and underwriters are in the documents themselves (for full-text search inside filings, sec-api.io is the answer today). EFFECT notices are ingested unfiltered — EDGAR's notice does not say which form type went effective, so effectiveness rows also cover registrations we don't otherwise track (S-3, S-8, ...); join on file_number to keep only your offering's. Prospectus coverage is 424B1 and 424B4 — the priced-deal types — not the 424B2 structured-note flood. Issuer filtering is by CIK (most registrants don't have a ticker yet). Co-registrant filings keep the first filer block — a documented limitation. We launched in July 2026 and would rather say so than pretend otherwise.

Other ways in

Sources

Competitor facts were read from these pages on the dates shown. Pricing and limits change; the linked page always wins over this one.

More comparisons: Best SEC EDGAR API in 2026 · sec-api.io alternatives · FilingPulse vs sec-api.io · Free SEC EDGAR API options · Insider trading API (Form 4 data) · 8-K API (corporate events by item code)