Files

329 lines
9.6 KiB
Markdown

---
title: "SEC EDGAR API Reference"
task: ""
lineage_type: import
upstream_source: https://github.com/K-Dense-AI/scientific-agent-skills/blob/9c9bd2e9/skills/database-lookup/references/sec-edgar.md
upstream_sha: 9c9bd2e9
imported_at: 2026-06-26
prompt_class: prompt
upstream_changes: accepted
author: upstream
validated: false
---
# SEC EDGAR API Reference
## Overview
SEC's Electronic Data Gathering, Analysis, and Retrieval system. Provides free access to corporate filings, company data, and XBRL financial data. No API key required, but a User-Agent header identifying you is mandatory.
## Base URLs
- **EFTS (Full-Text Search):** `https://efts.sec.gov/LATEST`
- **Company/Filings Data:** `https://data.sec.gov`
- **EDGAR Website/Archives:** `https://www.sec.gov`
- **XBRL API:** `https://data.sec.gov/api/xbrl`
## Authentication
- **API Key:** Not required.
- **User-Agent Header:** REQUIRED on every request. Must contain company/person name and email.
```
User-Agent: MyCompany [email protected]
```
Requests without a proper User-Agent are blocked (403).
## Rate Limits
- **10 requests per second** per source IP.
- Exceeding this results in temporary IP-based throttling (HTTP 429).
- SEC asks users to make requests outside market hours (9:00 PM - 6:00 AM ET) when possible for bulk downloads.
---
## Key Endpoints
### 1. Full-Text Search (EFTS)
#### `GET https://efts.sec.gov/LATEST/search-index`
Search across the full text of all EDGAR filings.
**Parameters:**
| Parameter | Type | Required | Description |
|-------------|--------|----------|-------------|
| `q` | string | Yes | Search query text. Supports boolean operators (`AND`, `OR`, `NOT`), exact phrases in quotes. |
| `dateRange` | string | No | `custom` to enable date filtering. |
| `startdt` | string | No | Start date `YYYY-MM-DD`. |
| `enddt` | string | No | End date `YYYY-MM-DD`. |
| `forms` | string | No | Comma-separated form types, e.g. `10-K,10-Q,8-K`. |
| `from` | int | No | Pagination offset (default 0). |
| `size` | int | No | Results per page (default 10, max varies). |
**Example:**
```
https://efts.sec.gov/LATEST/search-index?q=%22artificial+intelligence%22&forms=10-K&startdt=2024-01-01&enddt=2024-12-31
```
**Response:**
```json
{
"hits": {
"hits": [
{
"_id": "0001234567-24-000123:filing.htm",
"_source": {
"file_date": "2024-03-15",
"display_date_filed": "2024-03-15",
"entity_name": "EXAMPLE CORP",
"file_num": "001-12345",
"form_type": "10-K",
"file_description": "Annual report",
"period_of_report": "2023-12-31"
}
}
],
"total": { "value": 150 }
}
}
```
### 2. EDGAR Full-Text Search (Preferred newer endpoint)
#### `GET https://efts.sec.gov/LATEST/search-index` (also accessible as below)
#### `GET https://efts.sec.gov/LATEST/search-index?q=...`
Note: The EDGAR full-text search has also been exposed under a simpler URL:
#### `GET https://efts.sec.gov/LATEST/search-index`
The above is the canonical endpoint. Some documentation also references the EDGAR search UI which hits the same backend.
---
### 3. Company Tickers & CIK Lookup
#### `GET https://www.sec.gov/cgi-bin/browse-edgar`
Legacy EDGAR company search.
**Parameters:**
| Parameter | Type | Required | Description |
|-----------|--------|----------|-------------|
| `company` | string | No | Company name search. |
| `CIK` | string | No | CIK number or ticker symbol. |
| `type` | string | No | Filing type filter (e.g., `10-K`). |
| `dateb` | string | No | Filed before date `YYYY-MM-DD`. |
| `owner` | string | No | `include`, `exclude`, or `only`. |
| `count` | int | No | Number of results (max 100). |
| `action` | string | Yes | `getcompany` for company search. |
| `output` | string | No | `atom` for XML/Atom feed. |
**Example:**
```
https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=AAPL&type=10-K&dateb=&owner=include&count=10&output=atom
```
#### `GET https://www.sec.gov/files/company_tickers.json`
Returns a JSON mapping of all company tickers to CIK numbers.
**Response:**
```json
{
"0": {"cik_str": 320193, "ticker": "AAPL", "title": "Apple Inc."},
"1": {"cik_str": 789019, "ticker": "MSFT", "title": "MICROSOFT CORP"},
...
}
```
#### `GET https://www.sec.gov/files/company_tickers_exchange.json`
Includes exchange information for each ticker.
---
### 4. Company Filings & Submissions
#### `GET https://data.sec.gov/submissions/CIK{cik_padded}.json`
Returns company metadata and recent filings for a given CIK (zero-padded to 10 digits).
**Example:**
```
https://data.sec.gov/submissions/CIK0000320193.json
```
**Response:**
```json
{
"cik": "320193",
"entityType": "operating",
"sic": "3571",
"sicDescription": "Electronic Computers",
"name": "Apple Inc.",
"tickers": ["AAPL"],
"exchanges": ["Nasdaq"],
"filings": {
"recent": {
"accessionNumber": ["0000320193-24-000123", ...],
"filingDate": ["2024-11-01", ...],
"reportDate": ["2024-09-28", ...],
"form": ["10-K", ...],
"primaryDocument": ["aapl-20240928.htm", ...],
"primaryDocDescription": ["10-K", ...]
},
"files": [
{"name": "CIK0000320193-submissions-001.json", "filingCount": 1000}
]
}
}
```
The `filings.recent` object contains the most recent ~1000 filings. Older filings are in separate paginated files referenced by `filings.files`.
---
### 5. Company Concept (XBRL Data)
#### `GET https://data.sec.gov/api/xbrl/companyconcept/CIK{cik}/{taxonomy}/{tag}.json`
Returns all values reported by a company for a specific XBRL tag across all filings.
**Path Parameters:**
| Parameter | Description |
|------------|-------------|
| `cik` | Zero-padded CIK (10 digits). |
| `taxonomy` | XBRL taxonomy: `us-gaap`, `ifrs-full`, `dei`, `srt`. |
| `tag` | XBRL concept tag, e.g., `Revenue`, `Assets`, `AccountsPayableCurrent`. |
**Example:**
```
https://data.sec.gov/api/xbrl/companyconcept/CIK0000320193/us-gaap/Revenue.json
```
**Response:**
```json
{
"cik": 320193,
"taxonomy": "us-gaap",
"tag": "Revenue",
"label": "Revenue",
"description": "Amount of revenue recognized...",
"entityName": "Apple Inc.",
"units": {
"USD": [
{
"start": "2023-10-01",
"end": "2024-09-28",
"val": 391035000000,
"accn": "0000320193-24-000123",
"fy": 2024,
"fp": "FY",
"form": "10-K",
"filed": "2024-11-01"
}
]
}
}
```
---
### 6. Company Facts (All XBRL for one company)
#### `GET https://data.sec.gov/api/xbrl/companyfacts/CIK{cik}.json`
Returns ALL XBRL concepts reported by a company across all filings.
**Example:**
```
https://data.sec.gov/api/xbrl/companyfacts/CIK0000320193.json
```
**Response:** Same structure as companyconcept but with all tags nested under `facts.us-gaap`, `facts.dei`, etc.
```json
{
"cik": 320193,
"entityName": "Apple Inc.",
"facts": {
"dei": {
"EntityCommonStockSharesOutstanding": { "units": { "shares": [...] } }
},
"us-gaap": {
"Revenue": { "units": { "USD": [...] } },
"Assets": { "units": { "USD": [...] } }
}
}
}
```
---
### 7. Frames (Cross-Company XBRL for a period)
#### `GET https://data.sec.gov/api/xbrl/frames/{taxonomy}/{tag}/{unit}/{period}.json`
Returns a specific XBRL concept value for ALL companies for a given reporting period.
**Path Parameters:**
| Parameter | Description |
|------------|-------------|
| `taxonomy` | `us-gaap`, `ifrs-full`, `dei`, `srt`. |
| `tag` | XBRL tag, e.g., `Assets`. |
| `unit` | `USD`, `shares`, `pure`, etc. |
| `period` | Instant: `CY2023Q4I`; Duration: `CY2023`, `CY2023Q1`. |
**Period format:**
- `CY2023` = calendar year 2023 (full year duration)
- `CY2023Q1` = Q1 2023 duration
- `CY2023Q4I` = instant at end of Q4 2023 (balance sheet items)
**Example:**
```
https://data.sec.gov/api/xbrl/frames/us-gaap/Assets/USD/CY2023Q4I.json
```
**Response:**
```json
{
"taxonomy": "us-gaap",
"tag": "Assets",
"ccp": "CY2023Q4I",
"uom": "USD",
"label": "Assets",
"description": "Sum of the carrying amounts...",
"pts": 8500,
"data": [
{"accn": "0000320193-24-000123", "cik": 320193, "entityName": "Apple Inc.", "loc": "US-CA", "end": "2023-12-30", "val": 352583000000}
]
}
```
---
### 8. Filing Archives (Direct Document Access)
#### `GET https://www.sec.gov/Archives/edgar/data/{cik}/{accession_number_no_dashes}/{filename}`
Direct access to any filing document.
**Example:**
```
https://www.sec.gov/Archives/edgar/data/320193/000032019324000123/aapl-20240928.htm
```
The accession number format in the URL is stripped of dashes: `0000320193-24-000123` becomes `000032019324000123`.
---
## Common XBRL Tags Reference
| Tag | Description |
|-----|-------------|
| `Revenue` / `Revenues` | Total revenue |
| `NetIncomeLoss` | Net income |
| `Assets` | Total assets |
| `Liabilities` | Total liabilities |
| `StockholdersEquity` | Total equity |
| `EarningsPerShareBasic` | Basic EPS |
| `EarningsPerShareDiluted` | Diluted EPS |
| `OperatingIncomeLoss` | Operating income |
| `CashAndCashEquivalentsAtCarryingValue` | Cash and equivalents |
| `LongTermDebt` | Long-term debt |
| `CommonStockSharesOutstanding` | Shares outstanding |
## Notes
- CIK numbers must be zero-padded to 10 digits in `data.sec.gov` URLs.
- The EFTS full-text search indexes the text content of filings, not XBRL data.
- For bulk downloads, SEC provides index files at `https://www.sec.gov/Archives/edgar/full-index/`.
- All responses are JSON unless otherwise noted. Filing documents can be HTML, XML, or plain text.