F Finsider
SEC Form S-1 API

Form S-1 API (IPO Registrations)

Track companies heading public. The Form S-1 API surfaces IPO registration statements — the prospectus, risk factors, and use of proceeds — as structured JSON.

JSON responsesOpenAPI documentedcURL / Python / JS / GoFree tier available

What is Form S-1?

Form S-1 is the initial registration statement companies file before an IPO. It contains the prospectus: business description, risk factors, financials, and intended use of proceeds.

S-1s (and their amendments, S-1/A) are how you spot upcoming IPOs early and analyze the offering before it prices.

The Finsider Form S-1 API indexes new registrations and their documents so you can build an IPO calendar and monitor amendments in real time.

Fetch Form S-1 filings

List recent Form S-1 filings, filterable by company, ticker, and date.

curl -s "https://api.secapi.dev/v1/filings?formTypes=S-1&limit=20" \
  -H "x-api-key: $SECAPI_KEY"
import requests

resp = requests.get(
    "https://api.secapi.dev/v1/filings?formTypes=S-1&limit=20",
    headers={"x-api-key": "YOUR_API_KEY"},
    timeout=30,
)
resp.raise_for_status()
data = resp.json()
print(data)
const res = await fetch("https://api.secapi.dev/v1/filings?formTypes=S-1&limit=20", {
  method: "GET",
  headers: { "x-api-key": process.env.SECAPI_KEY },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://api.secapi.dev/v1/filings?formTypes=S-1&limit=20", nil)
	req.Header.Set("x-api-key", os.Getenv("SECAPI_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}

Open an S-1 prospectus and exhibits

List the documents attached to a specific S-1 registration.

curl -s "https://api.secapi.dev/v1/filings/1543151/0001193125-19-091444/documents" \
  -H "x-api-key: $SECAPI_KEY"
import requests

resp = requests.get(
    "https://api.secapi.dev/v1/filings/1543151/0001193125-19-091444/documents",
    headers={"x-api-key": "YOUR_API_KEY"},
    timeout=30,
)
resp.raise_for_status()
data = resp.json()
print(data)
const res = await fetch("https://api.secapi.dev/v1/filings/1543151/0001193125-19-091444/documents", {
  method: "GET",
  headers: { "x-api-key": process.env.SECAPI_KEY },
});
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
console.log(data);
package main

import (
	"fmt"
	"io"
	"log"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://api.secapi.dev/v1/filings/1543151/0001193125-19-091444/documents", nil)
	req.Header.Set("x-api-key", os.Getenv("SECAPI_KEY"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()

	body, _ := io.ReadAll(resp.Body)
	fmt.Println(string(body))
}

Who files Form S-1?

FilerRequirement
Pre-IPO companiesRegistering securities for first public sale
AmendmentsForm S-1/A updates terms as the IPO nears
Emerging growth cos.May file confidentially, then publicly
Foreign issuersOften use Form F-1 instead

Deadlines & coverage

AspectDetail
TriggerFiled ahead of a securities offering / IPO
AmendmentsMultiple S-1/A filings refine the prospectus
EffectivenessSEC declares the registration effective to price
AvailabilityIndexed within minutes of acceptance

Key data fields

A sample of the structured fields returned for Form S-1 data.

FieldDescription
companyName / cikRegistrant identity
formTypeS-1 or S-1/A (amendment)
filingDateWhen the registration was filed
documentsProspectus and exhibits with URLs
accessionNumberUnique SEC identifier

Frequently asked questions

What is the Form S-1 API?
An endpoint that returns SEC Form S-1 IPO registration statements and amendments as structured JSON, including documents and exhibits.
How do I build an IPO tracker?
Poll /v1/filings?formTypes=S-1&startDate=YYYY-MM-DD for new registrations, and watch for S-1/A amendments to follow each deal toward pricing.
Can I read the prospectus content?
Use the filing documents endpoint to list the prospectus and exhibits, then fetch the document URLs directly.

Build with the Form S-1 API

Create a free account, grab an API key, and make your first request in under a minute.