pip install secql

Clean SEC data.
Excellent DX.

REST API + Python SDK that transforms raw SEC EDGAR filings into structured financial data. 8,000+ companies. 15+ years of history.

Terminal
curl -H "X-API-Key: sk_live_..." \
  https://api.secql.dev/companies/AAPL/financials

{
  "ticker": "AAPL",
  "period": "2024-Q3",
  "revenue": 94930000000,
  "net_income": 21448000000,
  "total_assets": 364980000000,
  "eps_basic": 1.40,
  "currency": "USD"
}
8,000+
Public companies
15+ years
Historical data
4
Endpoints. That's it.

Built for fintech engineers

Stop parsing XBRL. Start building.

{ }

No XBRL complexity

We parse the SEC's XML taxonomy so you don't have to. Get clean JSON with the metrics you actually need.

15y+

15+ years of history

Up to 80 periods of financial data per company. Revenue, net income, assets, liabilities, EPS, and more.

8k+

8,000+ companies

Every public company that files with the SEC. Look up by ticker symbol, get data instantly.

py

Python SDK

Official SDK with sync and async clients, Pandas DataFrame export, and typed exception handling.

$

From $0/month

Generous free tier for prototyping. Pro at $19/mo for production. No surprises.

!?

Structured errors

Every error response includes a message, hint, and documentation link. No guessing what went wrong.

Try it live

Enter any ticker. Get real SEC data back instantly.

API Endpoints

Four endpoints. That's it. Everything you need, nothing you don't.

GET
/companies/{ticker}

Company profile — name, CIK, sector, exchange

GET
/companies/{ticker}/financials

Latest quarterly or annual financials

GET
/companies/{ticker}/financials/history?periods=40

Up to 40 periods of historical financial data

GET
/companies/{ticker}/filings?limit=10

Recent SEC filings with direct document URLs

Response — /companies/AAPL/financials
{
  "cik": "0000320193",
  "ticker": "AAPL",
  "period": "2024-Q3",
  "period_type": "quarterly",
  "revenue": 94930000000,
  "net_income": 21448000000,
  "total_assets": 364980000000,
  "total_liabilities": 308030000000,
  "cash_and_equivalents": 29965000000,
  "shares_outstanding": 15287521000,
  "eps_basic": 1.40,
  "currency": "USD"
}

Python SDK

Sync, async, and Pandas — all in one package.

Get started
from secql import SecQL

client = SecQL()  # reads SECQL_API_KEY from env

company = client.company("AAPL")
print(company.name)  # Apple Inc.

financials = client.financials("AAPL")
print(financials.revenue)  # 94930000000
Pandas integration
# Get 40 quarters as a DataFrame
df = client.financials(
    "AAPL",
    periods=40,
    as_dataframe=True,
)

df["margin"] = df["net_income"] / df["revenue"]
df.plot(x="period", y="margin")
Async client
from secql import AsyncSecQL
import asyncio

async def fetch():
    async with AsyncSecQL() as client:
        aapl, msft = await asyncio.gather(
            client.financials("AAPL"),
            client.financials("MSFT"),
        )
    return aapl, msft
Error handling
from secql.exceptions import (
    CompanyNotFound,
    RateLimited,
)

try:
    data = client.financials("INVALID")
except CompanyNotFound:
    print("Ticker not found")
except RateLimited as e:
    print(f"Retry after {e.retry_after}s")

How we compare

Clean data, better DX, lower price.

SecQLSEC APIFMPRaw EDGAR
PriceFree / $19$49/mo$22/moFree
Python SDKCommunity
Pandas support
Structured JSON
Rate limit60/min20/sec300/min10/sec
Historical depth15+ years30+ years5 yearsAll
Setup time60 secondsMinutesMinutesHours

Pricing

Start free. Scale when you're ready.

Free
$0

No credit card required

  • 100 requests/day
  • 5 req/min
  • All endpoints
  • Python SDK
Get Free Key
ProPopular
$19/mo

For production apps

  • 50,000 requests/mo
  • 60 req/min
  • All endpoints
  • Python SDK + Pandas
  • $0.002/req overage
Start Pro
Enterprise
Custom

For teams at scale

  • Unlimited requests
  • Custom rate limits
  • SLA + priority support
  • Dedicated account
Contact Us

Get started in 60 seconds

Three steps. No credit card required.

1

Get your API key

curl -X POST https://api.secql.dev/keys \
  -H "Content-Type: application/json" \
  -d '{"name": "my-app", "email": "you@example.com"}'
2

Install the SDK

pip install secql
3

Fetch your first data

from secql import SecQL

client = SecQL(api_key="sk_live_...")
print(client.financials("AAPL"))