Parsed institutional holdings from a 13F-HR filing. By investment-manager CIK (e.g. 1067983 = Berkshire Hathaway). Returns each holding's nameOfIssuer, cusip, market value (whole USD per the modern Form 13F convention), shares/principal amount + type, putCall flag for options, and voting authority (sole/shared/none). Sorted by value descending. Pass formType for amendments (13F-HR/A) or non-filings (13F-NT). Backed by SEC.gov; underlying 13F filings are public records.
/api/finance/thirteen-fPAYMENT-SIGNATURE.The 13F API returns parsed institutional holdings from an SEC Form 13F-HR filing, by investment-manager CIK — the quarterly portfolio disclosures of large institutional managers, structured for analysis.
Pass a manager CIK (e.g. 1067983 for Berkshire Hathaway) and get each holding's issuer name, CUSIP, market value (whole USD per the modern Form 13F convention), shares or principal amount and type, put/call flag for options, and voting authority — sorted by value descending. Pass formType for amendments (13F-HR/A) or notices. Underlying 13F filings are public records from SEC.gov. No API key — pay per call with x402.
| Name | Type | Description |
|---|---|---|
managerCikrequired | string | Investment manager's CIK (numeric). Berkshire Hathaway=1067983, Renaissance=1037389, Bridgewater=1350694, Vanguard=102909, BlackRock=1364742. min 1 chars · max 10 chars · match ^\d+$ |
formType | string | 13F filing variant. Default 13F-HR (original report). Use 13F-HR/A for amendments, 13F-NT for notice of non-filings. min 3 chars · max 20 chars · match ^13F-[A-Z/]{2,10}$ |
limit | integer | Max holdings to return, sorted by value descending. (1-200). Default 25. min 1 · max 200 |
# 1. Probe with no auth → 402 envelope with PaymentRequirements curl -sS 'https://2s.io/api/finance/thirteen-f?managerCik=12345&formType=13F-HR&limit=25' # 2. Sign + retry with PAYMENT-SIGNATURE: curl -sS 'https://2s.io/api/finance/thirteen-f?managerCik=12345&formType=13F-HR&limit=25' \ -H 'PAYMENT-SIGNATURE: <base64-json-payload>' # Or use the canonical runner (handles probe → sign → retry): # EVM_PRIVATE_KEY=0x... node --env-file=.env.local \ # --experimental-strip-types scripts/x402-pay.ts \ # 'https://2s.io/api/finance/thirteen-f?managerCik=12345&formType=13F-HR&limit=25'
import { TwoS } from '@2sio/sdk'
const client = new TwoS({
privateKey: process.env.EVM_PRIVATE_KEY as `0x${string}`,
})
const result = await client.finance.thirteenF({
"managerCik": "12345",
"formType": "13F-HR",
"limit": 25
})
console.log('endpoint:', result.endpoint)
console.log('cost:', result.costUsd, 'USDC')
console.log('tx:', result.settlement?.txHash)
console.log('data:', result.data)import os
from twosio import TwoS
client = TwoS(private_key=os.environ["EVM_PRIVATE_KEY"])
result = client.finance.thirteen_f(managerCik="12345", formType="13F-HR", limit=25)
print("endpoint:", result.endpoint)
print("cost:", result.cost_usd, "USDC")
print("tx:", (result.settlement or {}).get("tx_hash"))
print("data:", result.data)// 1. Add @2sio/mcp to your MCP host config (Claude Desktop example below).
// EVM_PRIVATE_KEY funds x402 payments per call.
// claude_desktop_config.json
{
"mcpServers": {
"2sio": {
"command": "npx",
"args": ["-y", "@2sio/mcp"],
"env": { "EVM_PRIVATE_KEY": "0x..." }
}
}
}
// 2. Once the server is running, agents call this tool via standard MCP:
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "finance.thirteen-f",
"arguments": {
"managerCik": "12345",
"formType": "13F-HR",
"limit": 25
}
}
}| Field | Type | Description |
|---|---|---|
ok | boolean | one of: true |
items | array | |
total | integer | Total matching rows upstream; null when unknown. |
source | object | |
meta | object |
{
"ok": true,
"items": [
{
"nameOfIssuer": "example",
"titleOfClass": "example",
"cusip": "example",
"valueUsd": 1,
"sharesOrPrinAmt": 1,
"sharesOrPrinAmtType": "SH",
"investmentDiscretion": "example",
"putCall": "PUT",
"votingAuthority": {
"sole": 1,
"shared": 1,
"none": 1
}
}
],
"total": 1,
"source": {
"provider": "example",
"url": "example",
"license": "example"
},
"meta": {
"query": {
"managerCik": "example",
"formType": "example",
"limit": 1
},
"cik": "example",
"managerName": "example",
"filing": {
"accessionNumber": "example",
"form": "example",
"filingDate": "example",
"periodOfReport": "example",
"infoTableUrl": "https://example.com",
"documentUrl": "https://example.com"
},
"totalValueUsd": 1
}
}