Chunked SEC filing content for search & RAG pipelines. Returns chunks, sections, and tables with incremental sync support.
https://api.metricduck.comcurl -H "X-API-Key: your_api_key" \
"https://api.metricduck.com/api/v1/filings/text?ticker=AAPL&row_type=chunk&limit=10"Include your API key in the request header:
X-API-Key: your_api_keyNeed an API key? Contact us for enterprise access.
/api/v1/filings/textRetrieve structured text content from SEC 10-K and 10-Q filings.
| Name | Type | Default | Description |
|---|---|---|---|
| ticker | string | - | Company ticker symbol (e.g., AAPL, MSFT) |
| cik | string | - | 10-digit SEC CIK (e.g., 0000320193) |
| accession_number | string | - | SEC accession number (e.g., 0000320193-24-000081) |
| section_id | enum | - | Section filter (see Available Sections below) |
| form_type | enum | - | 10-K | 10-Q | 10-K/A | 10-Q/A |
| from_date | date | 2 years ago | Start date (YYYY-MM-DD) |
| to_date | date | - | End date (YYYY-MM-DD) |
| fiscal_year | integer | - | Fiscal year (2000-2100) |
| fiscal_period | enum | - | Q1 | Q2 | Q3 | FY |
| row_type | enum | chunk | chunk | section | table |
| since | datetime | - | ISO 8601 timestamp for incremental sync |
| limit | integer | 100 | Results per page (1-1000) |
| offset | integer | 0 | Pagination offset |
512-1024 token text chunks with context prefix. Optimized for vector search and RAG retrieval.
{
"chunk_id": "0000320193_0000320193-24-000081_footnote_revenue_0",
"ticker": "AAPL",
"section_id": "footnote_revenue",
"content_text": "[AAPL | 10-K FY 2024 | Revenue | Chunk 1/5]\n\nThe Company recognizes...",
"content_raw": "The Company recognizes revenue when control...",
"token_count": 450,
"chunk_index": 0,
"total_chunks": 5
}Valid values for the section_id parameter:
| section_id | Display Name | Category |
|---|---|---|
| mda_overview | MD&A Overview | mda_subsection |
| mda_results_operations | Results of Operations | mda_subsection |
| mda_liquidity | Liquidity and Capital Resources | mda_subsection |
| mda_critical_accounting | Critical Accounting Policies | mda_subsection |
| mda_outlook | Outlook and Guidance | mda_subsection |
| mda_other | MD&A Other | mda_subsection |
| risk_factors | Risk Factors | regulatory |
| business_description | Business Description | regulatory |
| market_risk | Market Risk Disclosures | regulatory |
| legal_proceedings | Legal Proceedings | regulatory |
| controls_procedures | Controls and Procedures | regulatory |
| cybersecurity | Cybersecurity | regulatory |
| unresolved_staff_comments | Unresolved Staff Comments | regulatory |
| properties | Properties | regulatory |
| mine_safety | Mine Safety Disclosures | regulatory |
| market_equity | Market for Common Equity | regulatory |
| accountant_changes | Changes in Accountants | regulatory |
| other_information_10k | Other Information (10-K) | regulatory |
| other_information_10q | Other Information (10-Q) | regulatory |
| footnote_revenue | Revenue Recognition | footnote |
| footnote_segment | Segment Information | footnote |
| footnote_debt | Debt and Credit Facilities | footnote |
| footnote_accounting_policies | Accounting Policies | footnote |
| footnote_commitments | Commitments and Contingencies | footnote |
| footnote_stock_comp | Stock-Based Compensation | footnote |
| footnote_subsequent_events | Subsequent Events | footnote |
| footnote_related_party | Related Party Transactions | footnote |
| footnote_fair_value | Fair Value Measurements | footnote |
| footnote_pension | Pension Benefits | footnote |
| footnote_income_tax | Income Taxes | footnote |
| footnote_leases | Leases | footnote |
| footnote_goodwill | Goodwill and Intangible Assets | footnote |
| footnote_business_combinations | Business Combinations | footnote |
| footnote_restructuring | Restructuring | footnote |
| footnote_derivatives | Derivative Instruments | footnote |
| footnote_ppe | Property, Plant and Equipment | footnote |
| footnote_inventory | Inventories | footnote |
| footnotes_introduction | Notes Introduction | footnote |
| footnote_eps | Earnings Per Share | footnote |
| footnote_cash_investments | Cash and Investments | footnote |
Load all historical data by paginating through results:
# Page through all chunks
curl "https://api.metricduck.com/api/v1/filings/text?row_type=chunk&from_date=2020-01-01&limit=1000&offset=0"
curl "https://api.metricduck.com/api/v1/filings/text?row_type=chunk&from_date=2020-01-01&limit=1000&offset=1000"
# Continue until total_results exhausted
# Repeat for sections and tables
curl "https://api.metricduck.com/api/v1/filings/text?row_type=section&from_date=2020-01-01&limit=1000"Use the since parameter to fetch only new/updated records:
# Weekly sync - get records extracted since last sync
curl "https://api.metricduck.com/api/v1/filings/text?row_type=chunk&since=2024-12-01T00:00:00Z"
# Store the latest extracted_at timestamp for next sync| Tier | Requests | Monthly | Est. Cost |
|---|---|---|---|
| Starter | 100/min | 10,000 | ~$0.001/request |
| Growth | 500/min | 100,000 | ~$0.0005/request |
| Enterprise | 2,000/min | Unlimited | Custom |
Cost varies by query scope. Filtering by ticker reduces BigQuery scan costs.
| Code | Name | Description |
|---|---|---|
| 400 | Bad Request | Invalid parameter format or value |
| 401 | Unauthorized | Missing or invalid API key |
| 404 | Not Found | No data found for the specified filters |
| 429 | Too Many Requests | Rate limit exceeded |
| 500 | Internal Error | Server error - contact support if persistent |
import requests
response = requests.get(
"https://api.metricduck.com/api/v1/filings/text",
headers={"X-API-Key": "your_api_key"},
params={
"ticker": "AAPL",
"row_type": "chunk",
"section_id": "footnote_revenue",
"limit": 100
}
)
data = response.json()
for chunk in data["results"]:
print(chunk["content_text"])const response = await fetch(
"https://api.metricduck.com/api/v1/filings/text?" + new URLSearchParams({
ticker: "AAPL",
row_type: "chunk",
section_id: "footnote_revenue",
limit: "100"
}),
{
headers: { "X-API-Key": "your_api_key" }
}
);
const data = await response.json();
data.results.forEach(chunk => console.log(chunk.content_text));Explore the API interactively with sample data:
Open Interactive DemoQuestions? Contact enterprise support for integration help.