SEC S-1 IPO Filings Scraper
Pricing
Pay per event
SEC S-1 IPO Filings Scraper
📄 Monitor SEC EDGAR S-1 and S-1/A IPO registration filings. Extract company, CIK, accession, dates, filing index, and document URLs.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Monitor SEC EDGAR S-1 and S-1/A registration statements and turn recent IPO filing activity into structured data.
What does SEC S-1 IPO Filings Scraper do?
This Apify actor reads SEC EDGAR Atom feeds for current S-1 and S-1/A filings.
It follows each filing index page to extract the accession number, company name, CIK, filing dates, file size, and primary document URL.
It is designed for IPO pipeline monitoring rather than broad EDGAR crawling.
Use it when you need a clean spreadsheet or API feed of companies preparing to go public.
Who is it for?
Investment researchers use it to watch new IPO registration statements.
Equity capital markets teams use it to track pipeline activity.
Investment banks use it to identify issuers and amendments quickly.
IR and PR agencies use it to spot companies entering public-market workflows.
Sales teams use it to find timely trigger events for outreach.
Data teams use it to populate dashboards and alerting systems.
Why use this actor?
✅ Focused S-1 and S-1/A coverage.
✅ No browser automation required.
✅ SEC-compliant descriptive User-Agent support.
✅ Primary document links included.
✅ Optional filing document text extraction.
✅ Simple pay-per-event pricing.
✅ API-ready output for alerts, CRMs, spreadsheets, and warehouses.
What data can you extract?
| Field | Description |
|---|---|
formType | SEC form type such as S-1 or S-1/A |
companyName | Issuer name parsed from EDGAR |
cik | SEC Central Index Key |
accessionNumber | SEC accession number |
filedDate | Filing date |
filedAt | Filing timestamp when available |
updatedAt | Atom feed update timestamp |
fileSize | SEC-reported file size |
filingIndexUrl | SEC filing detail page |
primaryDocumentUrl | Main filing document URL |
primaryDocumentType | Primary document form type |
primaryDocumentDescription | SEC description of the document |
secArchiveUrl | SEC archive directory URL |
title | Original feed title |
summary | SEC feed summary |
scrapeTimestamp | Time the record was scraped |
primaryDocumentText | Optional cleaned filing text |
How much does it cost to scrape SEC S-1 IPO filings?
The actor uses pay-per-event pricing.
There is a small start event for each run: $0.005.
There is a per-filing item event for each saved filing record.
| Plan tier | Price per filing |
|---|---|
| Free | $0.000076402 |
| Starter / Bronze | $0.000066437 |
| Scale / Silver | $0.000051821 |
| Business / Gold | $0.000039862 |
| Platinum | $0.000026575 |
| Diamond | $0.000018602 |
A 100-filing monitoring run costs about $0.0126 on the Free tier including the start event.
Keep the default maxItems at 100 for a balanced first run.
Disable document text extraction unless you need filing body text.
How to use this SEC S-1 scraper
-
Open the actor on Apify.
-
Choose form types, usually
S-1andS-1/A. -
Set
maxItemsto the number of filing records you need. -
Optionally filter by company name or CIK.
-
Keep the default SEC User-Agent or replace it with your own contact string.
-
Run the actor.
-
Export the dataset as JSON, CSV, Excel, or via API.
Input options
formTypes controls which EDGAR form feeds to read.
maxItems controls the maximum number of records saved.
mode selects current filings or date-range filtering.
startDate filters saved records on or after a date.
endDate filters saved records on or before a date.
companyQuery filters company names.
cik restricts results to one SEC issuer identifier.
includePrimaryDocumentText fetches and stores filing text.
secUserAgent identifies your application to SEC EDGAR.
requestDelayMs controls conservative delay between SEC requests.
Example input
{"formTypes": ["S-1", "S-1/A"],"maxItems": 100,"mode": "current","includePrimaryDocumentText": false,"requestDelayMs": 200}
Example output
{"formType": "S-1","companyName": "Example Holdings Inc.","cik": "1234567","accessionNumber": "0001234567-26-000001","filedDate": "2026-07-03","filingIndexUrl": "https://www.sec.gov/Archives/edgar/data/...-index.htm","primaryDocumentUrl": "https://www.sec.gov/Archives/edgar/data/.../forms-1.htm","scrapeTimestamp": "2026-07-03T00:00:00.000Z"}
Tips for best results
Use S-1 and S-1/A together for both initial registrations and amendments.
Use a CIK filter when monitoring a known issuer.
Use company name filtering for lightweight keyword watchlists.
Keep document text disabled for high-volume monitoring.
Enable document text for summarization and diligence workflows.
Use scheduled runs for daily IPO pipeline monitoring.
Integrations
Send new S-1 records to Slack for IPO alerts.
Load the dataset into Google Sheets for analyst review.
Push records into a CRM as financing or public-market intent signals.
Store records in BigQuery, Snowflake, or Postgres for trend analysis.
Combine with LLM summarization to extract risk factors and use of proceeds.
Trigger sales outreach when a target account files or amends an S-1.
API usage with Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/sec-s1-ipo-filings-scraper').call({formTypes: ['S-1', 'S-1/A'],maxItems: 100});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
API usage with Python
from apify_client import ApifyClientclient = ApifyClient('APIFY_TOKEN')run = client.actor('automation-lab/sec-s1-ipo-filings-scraper').call(run_input={'formTypes': ['S-1', 'S-1/A'],'maxItems': 100,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
API usage with cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~sec-s1-ipo-filings-scraper/runs?token=$APIFY_TOKEN" \-H 'Content-Type: application/json' \-d '{"formTypes":["S-1","S-1/A"],"maxItems":100}'
Use with AI agents via MCP
SEC S-1 IPO Filings Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Add the Apify MCP server to your AI client — this gives you access to Apify actors, including this one.
Setup for Claude Code:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=automation-lab/sec-s1-ipo-filings-scraper"
Setup for Claude Desktop, Cursor, or VS Code:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/sec-s1-ipo-filings-scraper"}}}
Your AI assistant will authenticate with your Apify account on first use.
Example prompts:
-
"Run the SEC S-1 IPO Filings Scraper and summarize new issuers."
-
"Find recent S-1/A amendments and group them by company."
-
"Extract S-1 filings and prepare a sales trigger list."
Scheduling and monitoring
Run this actor daily to monitor the IPO pipeline.
Use Apify schedules to run before your team starts work.
Send the dataset to webhooks or integrations for automated alerts.
Compare consecutive runs by accession number to detect newly filed records.
Legality: is it legal to scrape SEC S-1 IPO filings?
SEC EDGAR data is public.
SEC asks automated tools to use a descriptive User-Agent.
This actor uses conservative request pacing.
Do not use scraped data for unlawful spam, deception, or securities-law violations.
Review SEC terms and fair-access guidance for your use case.
FAQ
How fast is the SEC S-1 IPO Filings Scraper?
A 100-filing metadata run usually completes in about one minute with the default SEC-friendly delay.
How much does a typical monitoring run cost?
A 100-filing run is about one cent on the Free tier, including the run start event.
Does this replace the official SEC EDGAR website?
No. It turns public EDGAR S-1 filing pages into structured API-ready data for monitoring and workflow automation.
Why did some primary document URLs return null?
SEC occasionally returns temporary 403 responses for individual filing index pages. The actor still saves feed and master-index metadata for those filings.
Why are results empty?
Remove restrictive companyQuery, cik, or date filters, then run again. Current feeds may contain fewer filings on quiet market days.
Troubleshooting
If a run returns fewer records than expected, increase maxItems, enable quarterly index fallback, or remove filters.
If a company filter returns nothing, try the issuer CIK instead of a partial name.
If SEC returns a temporary error, rerun later with the default request delay.
If you enable document text, expect longer runs and larger datasets.
Related scrapers
Explore related automation-lab actors for SEC Form 4, 13F, Form ADV, investor alerts, and other public-market workflows.
Use them together when you need a broader capital markets data pipeline.
Output quality
Records are typed and include source URLs.
The actor does not infer IPO status beyond S-1 registration activity.
The actor does not download attachments unless document text is requested.
The actor saves feed metadata even if an individual filing index page has a temporary issue.
Limits
EDGAR current feeds expose recent filings, not the entire historical archive.
For very old filings, use a specific CIK workflow or a separate historical EDGAR product.
The actor caps maxItems at 500 to keep runs predictable and respectful.
Changelog
Initial version: focused SEC EDGAR S-1 and S-1/A filing metadata extractor.