Form 13F 是 SEC Filing 家族下的独立子产品。采用 seed-only pure cache 模式:latest-quarter Top 1000 机构 × 最近 4 季度预填,cache miss 直接返回空,不回源上游。
https://api.llmquantdata.com/filings/13f/managers
按 current_scope_rank 升序正向枚举最新一季的 smart money universe(rank 1 = 最大的 13F reportable value)。当你还不知道具体 manager_cik 或 ticker 时使用本接口——例如先取 “AUM proxy 前 N 大基金” 池,再扇出调用 /filings/13f/by-manager 拿持仓。
返回的机构数量,按 current_scope_rank 升序。服务端 clamp 到 [1, 1000]。
季末日期 YYYY-MM-DD(如 2025-12-31)。省略则返回当前已 seed 的 ranked 季度。只有最新一期 ranking 被存储;传入其他合法 period 时返回空 managers + 附加 scope_notice 说明。
返回值
TopManager 数组,按 current_scope_rank 升序。
已知别名 / DBA 名称(来自 search_aliases,可能为空数组)。
在已 seed Top 1000 内的排名(1 = 本季度 13F reportable value 最大)。
latest_reportable_value_usd
最新季度 13F reportable value(USD)。AUM proxy——不是真实的全公司 AUM(不含固收、期权、海外、空头)。
latest_reportable_value_period
上一字段对应的季度(YYYY-MM-DD)。若该机构尚无可用 filing,可能为 null。
错误处理
| 场景 | 状态码 | 返回 |
|---|
period 不是 YYYY-MM-DD 格式 | 400 | { "error": "period must be in YYYY-MM-DD format." } |
period 合法但不是最新 ranked 季度 | 200 | 空 managers + meta.scope_notice(仅存最新一季 ranking) |
| Credit 不足 | 402 | { "error": "Insufficient credits." } |
- Seed-only pure cache:ranking 由 Form 13F seed 管线物化到
canonical.sec_13f_managers,cache miss 不回源
- 仅存最新一期 ranking,不保留历史 rank
数据范围(Coverage Scope)
每次响应的 meta.scope 都会显式声明:
{
"meta": {
"creditsUsed": 1,
"scope": {
"managers_seeded": 1000,
"latest_period": "2025-12-31",
"earliest_period": "2025-03-31",
"selection_basis": "latest quarter 13F reportable value desc",
"is_top_1000_only": true
},
"scope_notice": "13F data covers the latest-quarter top 1,000 institutional managers ranked by 13F reportable value (an AUM proxy, not true firmwide AUM) across the last 4 quarters. This ranking excludes fixed income, options, non-U.S. holdings, and shorts."
}
}
当传入的 period 不是最新 ranked 季度时,scope_notice 会追加一句明确说明”只有最新一期 ranking 被存储”。
代码示例
from __future__ import annotations
import requests
API_URL = "https://api.llmquantdata.com/filings/13f/managers"
HEADERS = {"X-API-KEY": "your_api_key_here"}
def fetch_top_managers(limit: int = 30) -> list[dict]:
response = requests.get(
API_URL,
params={"limit": limit},
headers=HEADERS,
timeout=30,
)
response.raise_for_status()
return response.json()["data"]["managers"]
def main() -> None:
managers = fetch_top_managers(limit=30)
print(f"Top {len(managers)} managers (latest quarter):")
for manager in managers:
rank = manager["current_scope_rank"]
name = manager["manager_name"]
value_b = manager["latest_reportable_value_usd"] / 1e9
print(f" #{rank:>3} {name:<40} ${value_b:,.1f}B")
if __name__ == "__main__":
main()
响应示例
{
"data": {
"managers": [
{
"manager_cik": "0001364742",
"manager_name": "BLACKROCK INC.",
"aliases": ["BLACKROCK", "BLACKROCK FUND ADVISORS"],
"current_scope_rank": 1,
"latest_reportable_value_usd": 4521893245678,
"latest_reportable_value_period": "2025-12-31"
},
{
"manager_cik": "0000102909",
"manager_name": "VANGUARD GROUP INC",
"aliases": ["VANGUARD"],
"current_scope_rank": 2,
"latest_reportable_value_usd": 4123456789012,
"latest_reportable_value_period": "2025-12-31"
}
]
},
"meta": {
"creditsUsed": 1,
"remainingCredits": 9999,
"scope": {
"managers_seeded": 1000,
"latest_period": "2025-12-31",
"earliest_period": "2025-03-31",
"selection_basis": "latest quarter 13F reportable value desc",
"is_top_1000_only": true
},
"scope_notice": "13F data covers the latest-quarter top 1,000 institutional managers ranked by 13F reportable value (an AUM proxy, not true firmwide AUM) across the last 4 quarters. This ranking excludes fixed income, options, non-U.S. holdings, and shorts."
}
}
典型用法 —— 客户端聚合 consensus 榜
1. GET /filings/13f/managers?limit=30
→ 取本季度 Top 30 manager 池
2. 对池内每个 manager_cik 调 GET /filings/13f/by-manager?manager_cik=...
→ 拿持仓
3. 客户端 aggregation 完成 consensus / overlap 榜
当前限制
- 仅最新季度 ranking —— 不存储历史
current_scope_rank
- 仅 Top 1000 机构(按最近季度 13F reportable value 排序,AUM proxy 而非真实 AUM)
- 不是 semantic search —— 不支持自然语言 keyword 过滤 manager
- 不返回 holdings,需要扇出到
/filings/13f/by-manager