大股东 API 参考
来自 Schedule 13D 和 13G、持有公司超过 5% 股份的股东
概览
大股东是持有美国公司超过 5% 股份的个人和机构。他们在 Schedule 13D(适用于可能谋求控制权的股东,标记为 activist)和 Schedule 13G(适用于被动股东,标记为 passive)上申报,也在这两者的修订文件上申报。每个请求都需要 Bearer 密钥,REST 和 MCP 共用一份额度余额。
四个接口分别涵盖某一公司的大股东,某位股东在各公司的大额持股,以及两个用来查找要读取的股东或公司的名称搜索。公司用其 Filings API id 表示,例如 usa:0000320193。股东用其 CIK 表示。
默认情况下,接口返回当前持股:每位股东在每个股份类别中的最新申报文件。最新申报文件报告退出的持股,或同一申报人团体的后续申报文件已不再列出的持股,不会列出。发送 history=true 可读取每份申报文件,从新到旧排列。
历史从 2024 年 10 月的申报文件开始。某位股东的持股页的行数可能少于 limit,却仍带有 next_,所以请继续读取,直到 next_ 为 null。只覆盖美国。
基础 URL: https:/。 下面每个路由都是一个独立的 MCP 工具,参数相同。
高管、董事和持股 10% 以上者见 内部人交易页面。
公司 id 与 披露文件 API 公司搜索返回的 id 相同。
每个账户可获得的内容
| 查看 | 所有账户 |
|---|---|
| 大股东,四个接口 | 已包含 |
查看 价格 了解每次调用的费用。请求按其所属 API 的价格计费,除非某个路由另有说明。
- 按公司价格计费。每次成功的响应计一次调用,无论返回多少行,空页同样计费。错误不计费。没有结果的搜索同样计费。
- 数字为十进制字符串。没有值的字段省略,列表始终存在,像
officer这样的标记只在为 true 时发送。 - 联合申报中每位报告人一行,各行共用一个
filing_。每个人在自己的封面上都写明同一个团体数字,所以切勿把同一份申报文件中各人的id shares相加。请按filing_对行分组,并从id group_读取团体的数字。total - 申报文件未给出或无法清晰读取的数字会省略。不做任何估算。
- 一个股东页最多读取 30 份公司文件,所以在数百家公司中有联合申报的股东,会返回较短的页,并以游标结尾。
- 我们无法读取的少数申报文件不在答复之内。CUSIP 不属于任何答复。
端点
每个路由都是 GET 请求,并需要在以下请求头中携带你的密钥: Authorization: Bearer 标头。示例仅展示响应的结构,并非实时数据。
列出公司的大股东
GET /v1/companies/{company_id}/beneficial-owners
持有公司超过 5% 股份的股东,来自 Schedule 13D 和 13G 及其修订文件。默认返回每位股东在每个类别中的当前持股;history 列出每份申报文件。
日期先缩小申报文件的范围,再选出每笔持股的最新一份,所以 filed_ 给出的是公司在那一天的大股东情况。
MCP:工具 filings_。
参数
| 参数 | 位置 | 必填 | 类型 | 含义 |
|---|---|---|---|---|
company_ | 路径参数 | 是 | 字符串 | 公司 id,例如 usa:0000320193。也接受 usa:AAPL 这样的股票代码别名。 |
schedule | 查询参数 | 否 | one of 13D, 13G | 仅限 13D(可能谋求控制权的股东)或 13G(被动股东)。 |
type | 查询参数 | 否 | one of activist, passive | activist 等同于 13D,passive 等同于 13G。同时发送 schedule 时,两者必须一致。 |
history | 查询参数 | 否 | 布尔值 | false(默认)返回当前持股。true 列出每份申报文件,从新到旧排列。 |
is_ | 查询参数 | 否 | 布尔值 | 仅在 history=true 时有效。true 保留每笔持股的最新申报文件,false 保留较早的申报文件。 |
filed | 查询参数 | 否 | 日期 | 仅限在这一天提交的申报文件。 |
filed_ | 查询参数 | 否 | 日期 | 与 filed_ 相同。 |
filed_ | 查询参数 | 否 | 日期 | 与 filed_ 相同。 |
filed_ | 查询参数 | 否 | 日期 | 仅限在这一天之后提交的申报文件。 |
filed_ | 查询参数 | 否 | 日期 | 仅限在这一天或之后提交的申报文件。 |
filed_ | 查询参数 | 否 | 日期 | 仅限在这一天之前提交的申报文件。 |
filed_ | 查询参数 | 否 | 日期 | 仅限在这一天或之前提交的申报文件。 |
cursor | 查询参数 | 否 | 字符串 | 上一页返回的 next_,其他参数保持不变。 |
limit | 查询参数 | 否 | 整数 | 每页行数。默认 50,最多 1000。 |
响应字段
| 字段 | 类型 | 传入 | 含义 |
|---|---|---|---|
id | 字符串 | 总是 | 在所有人接口上是公司 id,在持股接口上是股东 id。 |
company | 字符串 | 可选 | 公司名称。 |
owners | 对象数组 | 总是 | 公司的大股东,从新到旧排列。 |
owners[].filing_ | 字符串 | 总是 | 该行所来自的申报文件的 id。 |
owners[].form | one of 13D, 13D/A, 13G, 13G/A | 总是 | Schedule 的类型,以及它是否修订了较早的申报:13D、13D/、13G 或 13G/。 |
owners[].filed | 日期 | 总是 | 提交申报文件的日期。 |
owners[].accepted | 日期时间 | 可选 | SEC 接受该申报文件的时刻。 |
owners[].event_ | 日期 | 可选 | 触发该申报的事件日期。 |
owners[].amendment_ | 整数 | 可选 | 修订的编号,申报文件注明时给出。 |
owners[].filer_ | 字符串 | 可选 | 申报文件第一位申报人的 id,即提交该文件的机构。 |
owners[].filer | 字符串 | 可选 | 第一位申报人的名称。可能与报告人不同。 |
owners[].holder_ | 字符串 | 可选 | 报告人的 id。个人没有。 |
owners[].holder | 字符串 | 总是 | 报告人的名称。 |
owners[].holder_ | 字符串 | 可选 | 该人的封面代码:IN 个人、CO 公司、PN 合伙企业、IA 投资顾问、HC 控股公司、BK 银行,另有其他。 |
owners[].citizenship | 字符串 | 可选 | 该人的国籍或组织所在地。 |
owners[].class_ | 字符串 | 可选 | 股份类别的名称。 |
owners[].shares | 字符串 | 可选 | 该人报告持有的股份。联合申报时不要把各人的数字相加,请使用 group_。 |
owners[].percent_ | 字符串 | 可选 | 该人报告持有的占该类别的百分比。 |
owners[].sole_ | 字符串 | 可选 | 该人单独拥有表决权的股份。 |
owners[].shared_ | 字符串 | 可选 | 该人与他人共享表决权的股份。 |
owners[].sole_ | 字符串 | 可选 | 该人单独拥有处分权的股份。 |
owners[].shared_ | 字符串 | 可选 | 该人与他人共享处分权的股份。 |
owners[].group_ | one of a, b, ab | 可选 | 该人在封面第 2 行勾选的项:a 是团体成员,b 不是团体成员或不确认,ab 两项都勾选。 |
owners[].rule | 字符串 | 可选 | 13G 所依据的规则:13d-1(b)、13d-1(c) 或 13d-1(d)。 |
owners[].funds | 字符串 | 可选 | 13D 的资金来源代码,例如 WC、AF、PF 或 OO。 |
owners[].type | one of activist, passive | 可选 | Schedule 13D 为 activist,Schedule 13G 为 passive。 |
owners[].legal_ | 恒为 true | 可选 | 封面上的法律程序方框被勾选时为 true。 |
owners[].excludes_ | 恒为 true | 可选 | 封面上的排除某些股份的方框被勾选时为 true。 |
owners[].previously_ | 恒为 true | 可选 | 申报文件带有“此前已提交”标记时为 true。 |
owners[].issuer_ | 字符串 | 可选 | 公司的地址,按申报原文。 |
owners[].purpose | 字符串 | 可选 | 13D 的第 4 项,即交易目的。超过 4,000 个字符的部分截去。 |
owners[].items | 对象 | 可选 | 13D 的第 1、2、3、5 和 6 项,或 13G 的第 8 项的文本,各自超过 4,000 个字符的部分截去。仅包含申报文件给出的项。 |
owners[].joint | 整数 | 可选 | 申报文件列出的人数。 |
owners[].repeat | 恒为 true | 可选 | 该人给出的数字,与申报文件中前面某人已给出的数字相同时为 true。 |
owners[].group_ | 字符串 | 可选 | 联合申报时,其中各人所报告的最大合计数。请在此读取团体的数字。 |
owners[].is_ | 布尔值 | 总是 | 在请求所保留的申报文件中,该笔持股的最新一份申报文件上为 true。 |
owners[].exit | 恒为 true | 可选 | 申报文件报告持股人持股在 5% 或以下、或没有股份时为 true。 |
owners[].superseded | 恒为 true | 可选 | 同一申报人团体的后续申报文件不再列出的某笔持股,其最新一份申报文件上为 true。 |
next_ | 字符串 | 总是 | 将此值作为 cursor 传入以读取下一页。始终发送;最后一页为 null。 |
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
"https://api.narwhalapi.com/v1/companies/usa:0000320193/beneficial-owners?limit=1"{
"id": "usa:0000320193",
"company": "Apple Inc.",
"owners": [
{
"filing_id": "usa:0000320193:0002100119-26-000139",
"form": "13G",
"filed": "2026-04-29",
"accepted": "2026-04-29T16:40:10Z",
"event_date": "2026-03-31",
"filer_id": "usa:0002100119",
"filer": "VANGUARD CAPITAL MANAGEMENT LLC",
"holder_id": "usa:0002100119",
"holder": "Vanguard Capital Management",
"holder_type": "IA",
"citizenship": "PA",
"class_title": "Common Stock",
"shares": "1099168953",
"percent_of_class": "7.48",
"sole_voting_power": "145321305",
"shared_voting_power": "0",
"sole_dispositive_power": "1099168953",
"shared_dispositive_power": "0",
"rule": "13d-1(b)",
"issuer_address": "1 Apple Park Way, Cupertino, CA, 95014",
"is_latest": true
}
],
"next_cursor": null
}列出某位股东的大额持股
GET /v1/investors/{cik}/beneficial-ownership
某位股东在各公司的持有情况,来自其 Schedule 13D 和 13G。默认返回每家公司每个类别的当前持股;history 列出每份申报文件。一页的行数可能少于 limit,却仍带有 next_:请继续读取,直到它为 null。
cik 是股东的 CIK。每行的 company_ 和 company 指出持股所在的公司。ticker 只保留某一家公司的持股,与任何公司都不匹配的股票代码返回 404 company_。
一页的行数可能少于 limit。请持续沿用 next_,直到它为 null。
MCP:工具 filings_。
参数
| 参数 | 位置 | 必填 | 类型 | 含义 |
|---|---|---|---|---|
cik | 路径参数 | 是 | 字符串 | 股东的 CIK,一到十位数字。 |
schedule | 查询参数 | 否 | one of 13D, 13G | 仅限 13D(可能谋求控制权的股东)或 13G(被动股东)。 |
type | 查询参数 | 否 | one of activist, passive | activist 等同于 13D,passive 等同于 13G。同时发送 schedule 时,两者必须一致。 |
history | 查询参数 | 否 | 布尔值 | false(默认)返回当前持股。true 列出每份申报文件,从新到旧排列。 |
is_ | 查询参数 | 否 | 布尔值 | 仅在 history=true 时有效。true 保留每笔持股的最新申报文件,false 保留较早的申报文件。 |
filed | 查询参数 | 否 | 日期 | 仅限在这一天提交的申报文件。 |
filed_ | 查询参数 | 否 | 日期 | 与 filed_ 相同。 |
filed_ | 查询参数 | 否 | 日期 | 与 filed_ 相同。 |
filed_ | 查询参数 | 否 | 日期 | 仅限在这一天之后提交的申报文件。 |
filed_ | 查询参数 | 否 | 日期 | 仅限在这一天或之后提交的申报文件。 |
filed_ | 查询参数 | 否 | 日期 | 仅限在这一天之前提交的申报文件。 |
filed_ | 查询参数 | 否 | 日期 | 仅限在这一天或之前提交的申报文件。 |
cursor | 查询参数 | 否 | 字符串 | 上一页返回的 next_,其他参数保持不变。 |
limit | 查询参数 | 否 | 整数 | 每页行数。默认 50,最多 1000。 |
ticker | 查询参数 | 否 | 字符串 | 仅限在此股票代码对应公司中的持股。 |
响应字段
| 字段 | 类型 | 传入 | 含义 |
|---|---|---|---|
id | 字符串 | 总是 | 在所有人接口上是公司 id,在持股接口上是股东 id。 |
holder | 字符串 | 可选 | 股东的名称。 |
stakes | 对象数组 | 总是 | 该股东的持股,从新到旧排列。 |
stakes[].filing_ | 字符串 | 总是 | 该行所来自的申报文件的 id。 |
stakes[].form | one of 13D, 13D/A, 13G, 13G/A | 总是 | Schedule 的类型,以及它是否修订了较早的申报:13D、13D/、13G 或 13G/。 |
stakes[].filed | 日期 | 总是 | 提交申报文件的日期。 |
stakes[].accepted | 日期时间 | 可选 | SEC 接受该申报文件的时刻。 |
stakes[].event_ | 日期 | 可选 | 触发该申报的事件日期。 |
stakes[].amendment_ | 整数 | 可选 | 修订的编号,申报文件注明时给出。 |
stakes[].filer_ | 字符串 | 可选 | 申报文件第一位申报人的 id,即提交该文件的机构。 |
stakes[].filer | 字符串 | 可选 | 第一位申报人的名称。可能与报告人不同。 |
stakes[].holder_ | 字符串 | 可选 | 报告人的 id。个人没有。 |
stakes[].holder | 字符串 | 总是 | 报告人的名称。 |
stakes[].holder_ | 字符串 | 可选 | 该人的封面代码:IN 个人、CO 公司、PN 合伙企业、IA 投资顾问、HC 控股公司、BK 银行,另有其他。 |
stakes[].citizenship | 字符串 | 可选 | 该人的国籍或组织所在地。 |
stakes[].class_ | 字符串 | 可选 | 股份类别的名称。 |
stakes[].shares | 字符串 | 可选 | 该人报告持有的股份。联合申报时不要把各人的数字相加,请使用 group_。 |
stakes[].percent_ | 字符串 | 可选 | 该人报告持有的占该类别的百分比。 |
stakes[].sole_ | 字符串 | 可选 | 该人单独拥有表决权的股份。 |
stakes[].shared_ | 字符串 | 可选 | 该人与他人共享表决权的股份。 |
stakes[].sole_ | 字符串 | 可选 | 该人单独拥有处分权的股份。 |
stakes[].shared_ | 字符串 | 可选 | 该人与他人共享处分权的股份。 |
stakes[].group_ | one of a, b, ab | 可选 | 该人在封面第 2 行勾选的项:a 是团体成员,b 不是团体成员或不确认,ab 两项都勾选。 |
stakes[].rule | 字符串 | 可选 | 13G 所依据的规则:13d-1(b)、13d-1(c) 或 13d-1(d)。 |
stakes[].funds | 字符串 | 可选 | 13D 的资金来源代码,例如 WC、AF、PF 或 OO。 |
stakes[].type | one of activist, passive | 可选 | Schedule 13D 为 activist,Schedule 13G 为 passive。 |
stakes[].legal_ | 恒为 true | 可选 | 封面上的法律程序方框被勾选时为 true。 |
stakes[].excludes_ | 恒为 true | 可选 | 封面上的排除某些股份的方框被勾选时为 true。 |
stakes[].previously_ | 恒为 true | 可选 | 申报文件带有“此前已提交”标记时为 true。 |
stakes[].issuer_ | 字符串 | 可选 | 公司的地址,按申报原文。 |
stakes[].purpose | 字符串 | 可选 | 13D 的第 4 项,即交易目的。超过 4,000 个字符的部分截去。 |
stakes[].items | 对象 | 可选 | 13D 的第 1、2、3、5 和 6 项,或 13G 的第 8 项的文本,各自超过 4,000 个字符的部分截去。仅包含申报文件给出的项。 |
stakes[].joint | 整数 | 可选 | 申报文件列出的人数。 |
stakes[].repeat | 恒为 true | 可选 | 该人给出的数字,与申报文件中前面某人已给出的数字相同时为 true。 |
stakes[].group_ | 字符串 | 可选 | 联合申报时,其中各人所报告的最大合计数。请在此读取团体的数字。 |
stakes[].is_ | 布尔值 | 总是 | 在请求所保留的申报文件中,该笔持股的最新一份申报文件上为 true。 |
stakes[].exit | 恒为 true | 可选 | 申报文件报告持股人持股在 5% 或以下、或没有股份时为 true。 |
stakes[].superseded | 恒为 true | 可选 | 同一申报人团体的后续申报文件不再列出的某笔持股,其最新一份申报文件上为 true。 |
stakes[].company_ | 字符串 | 总是 | 持股所在公司的 id。 |
stakes[].company | 字符串 | 可选 | 持股所在公司的名称。 |
next_ | 字符串 | 总是 | 将此值作为 cursor 传入以读取下一页。始终发送;最后一页为 null。 |
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
"https://api.narwhalapi.com/v1/investors/0000102909/beneficial-ownership?filed_lte=2025-10-31&limit=1"{
"id": "usa:0000102909",
"holder": "The Vanguard Group",
"stakes": [
{
"filing_id": "usa:0001770450:0000102909-25-000347",
"form": "13G/A",
"filed": "2025-10-31",
"accepted": "2025-10-31T11:42:47Z",
"event_date": "2025-09-30",
"amendment_number": 8,
"filer_id": "usa:0000102909",
"filer": "VANGUARD GROUP INC",
"holder_id": "usa:0000102909",
"holder": "The Vanguard Group",
"holder_type": "IA",
"citizenship": "PA",
"class_title": "Common Stock",
"shares": "10397351",
"percent_of_class": "8.26",
"sole_voting_power": "0",
"shared_voting_power": "733054",
"sole_dispositive_power": "9549123",
"shared_dispositive_power": "848228",
"rule": "13d-1(b)",
"issuer_address": "201 Merritt 7, Norwalk, CT, 06851",
"is_latest": true,
"company_id": "usa:0001770450",
"company": "Xerox Holdings Corp"
}
],
"next_cursor": "eyJrIjoiNzk3NDg5Njg3OTc0…"
}按名称搜索大股东申报人
GET /v1/beneficial-ownership/filers
按名称开头查找申报 Schedule 13D 或 13G 的股东。返回 id,在持股接口上用作 cik。
返回 id,在持股接口上作为 cik 传入。名称中除 Inc 之类的词外,至少要有两个字母或数字,否则返回 400 invalid_。
MCP:工具 filings_。
参数
| 参数 | 位置 | 必填 | 类型 | 含义 |
|---|---|---|---|---|
name | 查询参数 | 是 | 字符串 | 名称的开头字母。至少两个字母或数字。 |
country | 查询参数 | 否 | 字符串 | 要搜索的登记机构所在国家的三字母代码。省略表示 USA。接口不覆盖的国家返回 404 not_covered。 |
limit | 查询参数 | 否 | 整数 | 返回的结果数。默认 20,最多 100。 |
响应字段
| 字段 | 类型 | 传入 | 含义 |
|---|---|---|---|
filers | 对象数组 | 总是 | 名称以该文本开头的申报人。 |
filers[].id | 字符串 | 总是 | 申报人的 id,在持股接口上作为 cik 传入。 |
filers[].name | 字符串 | 总是 | 申报人在申报文件中用过的名称。 |
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
"https://api.narwhalapi.com/v1/beneficial-ownership/filers?name=vanguard&limit=3"{
"filers": [
{
"id": "usa:0002100119",
"name": "VANGUARD CAPITAL MANAGEMENT LLC"
},
{
"id": "usa:0001623658",
"name": "Vanguard Charitable Endowment Program"
},
{
"id": "usa:0002059874",
"name": "Vanguard Development Holdings Limited"
}
]
}按名称搜索有大股东的公司
GET /v1/beneficial-ownership/companies
按名称开头查找有 Schedule 13D 或 13G 申报文件指向它的公司。返回 id,在所有人接口上用作 company_。
返回 id,在所有人接口上作为 company_ 传入。
MCP:工具 filings_。
参数
| 参数 | 位置 | 必填 | 类型 | 含义 |
|---|---|---|---|---|
name | 查询参数 | 是 | 字符串 | 名称的开头字母。至少两个字母或数字。 |
country | 查询参数 | 否 | 字符串 | 要搜索的登记机构所在国家的三字母代码。省略表示 USA。接口不覆盖的国家返回 404 not_covered。 |
limit | 查询参数 | 否 | 整数 | 返回的结果数。默认 20,最多 100。 |
响应字段
| 字段 | 类型 | 传入 | 含义 |
|---|---|---|---|
companies | 对象数组 | 总是 | 名称以该文本开头的公司。 |
companies[].id | 字符串 | 总是 | 公司的 id,在所有人接口上作为 company_ 传入。 |
companies[].name | 字符串 | 总是 | 公司名称。 |
curl -H "Authorization: Bearer $NARWHAL_API_KEY" \
"https://api.narwhalapi.com/v1/beneficial-ownership/companies?name=apple&limit=2"{
"companies": [
{
"id": "usa:0000320193",
"name": "Apple Inc."
},
{
"id": "usa:0001418121",
"name": "Apple Hospitality REIT, Inc."
}
]
}错误
错误使用通用的 problem 结构,并带有 request_。查看 API 错误码与额度 了解该结构和额度相关的响应头。失败的请求不计费。
| 代码 | 状态 | 含义 |
|---|---|---|
invalid_ | 400 | 参数缺失、未知、重复或超出范围。 |
invalid_ | 400 | 该游标不是本请求返回的,或来自另一个请求。 |
invalid_ | 400 | 去掉 Inc 之类的词后,名称不足两个字母或数字。 |
company_ | 404 | 没有公司与该 id 匹配。 |
investor_ | 404 | 没有 Schedule 13D 或 13G 申报人与该 CIK 匹配。 |
not_ | 404 | 尚未涵盖该市场、国家或公司。 |
insufficient_ | 402 | 您的额度余额低于该请求的费用。 |
company_ | 503 | 该接口背后的申报文件目前无法读取。请稍后重试。 |
此页面对你有帮助吗?