EDGAR + FRED + BEA + World Bank

Government Data is Free.
Integrating It Isn't.

Four government APIs. Four formats. Four sets of quirks. One API key fixes all of it. EDGAR filings, FRED time series, BEA national accounts, and World Bank indicators — same JSON, same auth, same interface.

Your App
financeapis.dev
SEC Filings Economic Data 13F Holdings Company Facts Rate Limiting JSON Responses Caching API Keys
EDGAR
FRED
BEA
World Bank

Public data, normalized from

SEC EDGAR FRED BEA World Bank
4 data sources
60+ endpoints
<100ms latency
OpenAPI 3.0 spec

Why financeapis.dev

Stop juggling APIs.
One key, one format, every source.

One consistent, well-documented interface across EDGAR, FRED, BEA, and World Bank. Same JSON, same auth, every time.

SEC EDGAR Filings

Access 10-K, 10-Q, 8-K filings with structured data extraction. Full-text search across millions of documents.

FRED Economic Data

GDP, inflation, employment, interest rates, and thousands of macroeconomic time series from the Federal Reserve.

Form 13F Analysis

Institutional holdings data with historical tracking. See what Berkshire, Bridgewater, and others are buying.

Consistent JSON API

Unified response formats across all data sources. No more learning five different query syntaxes.

Built-in Rate Limiting

Plan-based limits with clear headers and automatic retry logic. Never get blocked by upstream providers.

Developer-First

Copy-paste code examples and an OpenAPI 3.0 spec you can paste into any code generator. Zero to first request in under a minute.

Quick Start

Three lines of code.
That's all it takes.

import requests

response = requests.get(
    "https://api.financeapis.dev/v1/edgar/forms/13f/submissions/0001067983",
    headers={"Authorization": "Bearer YOUR_API_KEY"}
)

data = response.json()
filings = data["filings"]["recent"]
for i, form in enumerate(filings["form"]):
    print(f"{filings['reportDate'][i]}: {form}")
const response = await fetch(
  "https://api.financeapis.dev/v1/edgar/forms/13f/submissions/0001067983",
  { headers: { Authorization: "Bearer YOUR_API_KEY" } }
);

const { filings } = await response.json();
filings.recent.form.forEach((form, i) =>
  console.log(`${filings.recent.reportDate[i]}: ${form}`)
);
package main

import ("encoding/json"; "net/http")

func main() {
    req, _ := http.NewRequest("GET",
        "https://api.financeapis.dev/v1/edgar/forms/13f/submissions/0001067983", nil)
    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()

    var data SubmissionsResponse
    json.NewDecoder(resp.Body).Decode(&data)
}
Response
{
  "cik": "0001067983",
  "name": "BERKSHIRE HATHAWAY INC",
  "filings": {
    "recent": {
      "form": ["13F-HR", "13F-HR", "13F-HR"],
      "reportDate": ["2024-12-31", "2024-09-30", "2024-06-30"],
      "filingDate": ["2025-02-14", "2024-11-14", "2024-08-14"],
      "accessionNumber": ["0000950123-25-001841", "..."]
    }
  }
}

Pricing

Start free. Scale when ready.

The free tier runs through the financeapis.dev MCP tools — no credit card. Pick Pro for direct REST access. Upgrade anytime.

Free

$0 /month
  • 1,000 requests/month via MCP tools
  • EDGAR & FRED data
  • JSON responses
  • Community support
Get Started Free

Scale

$199 /month
  • 50,000 requests/month
  • All data sources
  • Custom rate limits
  • Dedicated support
  • SLA guarantee

Ship the analysis, not the parser.

Get your free API key and start making requests in under a minute.