EDGAR Form 13F data sets (index)
GET /api/edgar-13f-datasetsThe SEC's bulk Form 13F Data Sets: every quarterly (2013Q2-2023Q4) and rolling three-month (2024-) archive the SEC publishes, newest first, with its window, size and download URL, plus the seven tables each archive carries (SUBMISSION, COVERPAGE, OTHERMANAGER, OTHERMANAGER2, SIGNATURE, SUMMARYPAGE, INFOTABLE) and the readme. Send GET /api/edgar-13f-datasets with no required fields (1 optional) and pay $0.003 per call over x402 or MPP (there is no free tier). It returns a JSON object with total, count, latest, dataSets, tables and 3 more.
Read from sec.gov's own listing, cached 6 hours. Pair with edgar-13f-dataset-head to read a bounded head of one table without downloading the archive.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
limit | number | no | Data sets to return, newest first (1-200, default 60). |
Example request
curl -i "https://agent402.tools/api/edgar-13f-datasets?limit=3"
Without payment this returns HTTP 402 Payment Required with the exact price for edgar-13f-datasets; any x402 v2 or MPP client pays it and retries.
Example response
{
"total": 54,
"count": 1,
"latest": "01jun2026-31aug2026",
"dataSets": [
{
"id": "01jun2026-31aug2026",
"from": "2026-06-01",
"to": "2026-08-31",
"quarter": null,
"label": "2026 June July August 13F",
"file": "01jun2026-31aug2026_form13f.zip",
"url": "https://www.sec.gov/files/datastandardsinnovation/data/form-13f-data-sets/01jun2026-31aug2026_form13f.zip",
"sizeMb": 96.05
}
],
"tables": [
"SUBMISSION",
"COVERPAGE",
"OTHERMANAGER",
"OTHERMANAGER2",
"SIGNATURE",
"SUMMARYPAGE",
"INFOTABLE"
],
"readmeUrl": "https://www.sec.gov/files/form_13f_readme.pdf",
"source": "https://www.sec.gov/data-research/sec-markets-data/form-13f-data-sets",
"note": "Each data set is one zip of seven TSV tables flattened from every 13F filed in the window."
}
| Field | Type | Always present | In the example |
|---|---|---|---|
total | number | yes | 54 |
count | number | yes | 1 |
latest | string | yes | 01jun2026-31aug2026 |
dataSets | array of objects | yes | 1 item in the example |
tables | array of string | yes | 7 items in the example |
readmeUrl | string | yes | https://www.sec.gov/files/form_13f_readme.pdf |
source | string | yes | https://www.sec.gov/data-research/sec-markets-data/form-13f-data-sets |
note | string | yes | Each data set is one zip of seven TSV tables flattened from every 13F filed i... |
From an MCP client
catalog.call {
"slug": "edgar-13f-datasets",
"params": {
"limit": 3
}
}
The hosted connector at https://agent402.tools/mcp needs a payment for edgar-13f-datasets; the stdio package pays it from a wallet or from AGENT402_CREDITS_KEY. Local install: npx -y agent402-mcp.
Errors and behavior
- Every field is optional. An input the tool rejects returns an HTTP 4xx whose body carries
error,tool,expected,requiredandexample. - A paid call that ends in any status of 400 or above is not charged over x402, MPP or a prepaid credits key: settlement is cancelled when the tool fails. The exception is a Tempo push credential, a transfer the buyer sent before the call: it settles before the tool runs, so if the tool then fails the payment is recorded as a refund owed to the paying wallet.
- Wallet-only: this tool reaches the network or stored state, so it has no proof-of-work tier. A prepaid card-credits key issued earlier (
Authorization: Bearer a402_...) also pays it. - A
POSTwith a JSON body to /api/edgar-13f-datasets is served as this GET, with the body as the input. - An
Idempotency-Keyheader makes a retried paid call replay the first 200 instead of charging again (an answer larger than 1 MB is not replayed).
Paid call (JavaScript agent)
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
client.setSpendControls?.(false); // keep your own spending ceiling in code
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/edgar-13f-datasets?limit=3");
Related tools
EDGAR Form 13F data set head (one table, bounded)
GET /api/edgar-13f-dataset-headA bounded head of ONE table in a Form 13F data set, read with two byte-range requests against sec.gov (the archive's cen…
EDGAR 13F-HR holdings (institutional positions)
GET /api/edgar-13f-holdingsTop holdings from an institutional investment manager's most recent 13F-HR filing (managers >$100M AUM file quarterly). …
Fund portfolio report (13F, grounded)
POST /v1/fundHand over an institutional manager (a fund name like "Berkshire Hathaway", a ticker, or a SEC CIK) and get one cited rep…
Fund portfolio report - MAX (deep)
POST /v1/fund/maxThe deep tier: the full holdings table, wider quarter-over-quarter change analysis, more grounded web research, and a lo…
Company financials summary
GET /api/company-financialsKey financial metrics (Revenue, Net Income, Operating Income, Total Assets, Liabilities, Equity, EPS, Operating Cash Flo…
EDGAR XBRL company-concept (one tag, full history)
GET /api/edgar-company-conceptFull reported history of a single XBRL concept for one company (e.g. quarterly Revenues for Apple). Each datapoint cites…