F Finsider
SEC Form 8-K API

Form 8-K API

Catch material events within minutes. The Form 8-K API streams current reports — earnings, executive changes, M&A, and more — as structured JSON with item codes and exhibits.

JSON responsesOpenAPI documentedcURL / Python / JS / GoFree tier available

What is Form 8-K?

Form 8-K is the "current report" companies file to announce material events between periodic reports: earnings releases, leadership changes, acquisitions, bankruptcies, and other developments investors must know about.

Each 8-K is organized into numbered items (for example, Item 2.02 Results of Operations, Item 5.02 Departure of Directors or Officers) that tell you exactly what happened.

The Finsider Form 8-K API exposes those item codes, event dates, and attached exhibits so you can build real-time alerts and event-driven strategies.

Fetch Form 8-K filings

List recent Form 8-K filings, filterable by company, ticker, and date.

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

resp = requests.get(
    "https://api.secapi.dev/v1/filings?formTypes=8-K&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=8-K&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=8-K&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))
}

Download an 8-K’s exhibits

List every document and exhibit attached to a specific 8-K.

curl -s "https://api.secapi.dev/v1/filings/320193/0000320193-24-000080/documents" \
  -H "x-api-key: $SECAPI_KEY"
import requests

resp = requests.get(
    "https://api.secapi.dev/v1/filings/320193/0000320193-24-000080/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/320193/0000320193-24-000080/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/320193/0000320193-24-000080/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 8-K?

FilerRequirement
U.S. public companiesOn the occurrence of a triggering event
TimingGenerally within 4 business days of the event
Item-drivenEach disclosure maps to a numbered 8-K item
ExhibitsPress releases and agreements attach as exhibits

Deadlines & coverage

AspectDetail
TriggerFiled on demand when a material event occurs
DeadlineUsually 4 business days after the event
Item codesSections 1–9 (e.g. 2.02, 5.02, 1.01)
AvailabilityIndexed within minutes of acceptance

Key data fields

A sample of the structured fields returned for Form 8-K data.

FieldDescription
itemsArray of 8-K item codes disclosed (e.g. 5.02)
eventDateDate the material event occurred
exhibitsAttached documents with direct URLs
companyCik / tickerFiler identifiers
accessionNumberUnique SEC identifier
filingUrlLink to the source filing on EDGAR

Frequently asked questions

What is the Form 8-K API?
An endpoint that returns SEC Form 8-K current reports — material corporate events — as structured JSON, including item codes, event dates, and exhibits.
How do I monitor 8-K filings in real time?
Poll /v1/filings?formTypes=8-K&startDate=YYYY-MM-DD on a schedule, or filter by ticker to watch a single company.
Can I detect CEO or CFO changes?
Yes — filter 8-Ks for Item 5.02 (Departure/Appointment of Directors or Officers) to detect executive changes programmatically.
How do I get the press release attached to an 8-K?
Use the filing documents endpoint to list exhibits, then fetch the exhibit URL (often Exhibit 99.1 for earnings press releases).

Build with the Form 8-K API

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