公司申报
概览
太平洋两岸的公司申报——SEC 各表单、A 股定期报告、问询函、处罚决定。
- 状态
- live
- 文档 id
doc_id如us:861838:0001104659-23-092550- 引用格式
[8-K 0001104659-23-092550]- 更新于
- 2026-10
常用调用
找申报
POST /v1/filings/search {"query": "CEO 辞职", "filters": {"market": "us", "event_types": "officer_director_change", "filed_year": {"gte": 2023}}}读一份
GET /v1/filings/read/us:861838:0001104659-23-092550看某公司的全部
POST /v1/filings/search {"query": "*", "filters": {"cik": "861838"}}查季报(走 PG 层:词面 + 可排序)
POST /v1/filings/search {"query": "going concern liquidity", "filters": {"form": "10-Q"}}某公司最近几份季报
POST /v1/filings/search {"query": "*", "filters": {"form": "10-Q", "cik": "320193"}, "sort": "date"}细则
- 不同 doc_family 的字段不一样:event(8-K)有 items/event_types/counterparties/amounts;periodic(定期报告)有 main_business/segments/key_numbers;10-Q 季报有 mdna_drivers/liquidity/legal_updates/new_or_changed_risks/outlook;inquiry_letter 有 issues/deadline/has_reply;penalty 有 violation_types/facts/legal_basis/parties。按 doc_family 过滤再读字段。
- 10-Q 季报(104,690 篇)按设计不建向量,只在 PG 层:带 form=10-Q(或 doc_family=periodic 加 market=us)整条查询走 PG——词面检索、支持 sort=date、支持 filed_at 精确到日的区间,但没有语义检索。每条命中带 layer,响应的 coverage 里写明是哪一层答的。
- PG 层的词面检索还会匹配模型生成的中英文检索词(kw_en / kw_zh,已并入全文索引),所以 q="持续经营" 能命中英文季报里 going concern 的表述,原文里没出现的同义说法也能召回。代价是 score 含检索词的贡献,响应不区分「命中原文」还是「只命中检索词」;检索词本身不返回(库里标了仅用于召回,不作展示)。
- 10-K/20-F/10-Q 的财务报表数字不在本库——以 XBRL 为准,这里只有整篇结构化要点。
- 原件在 NAS(level=detail 里的 raw_path),检索库不含正文。
- 检索库里没有正文:level=full 暂不可用(原件在 NAS(raw_path);两层都只有结构化要点,没有正文)。
检索
POST
/v1/filings/search混合检索,每条命中一张卡片。2 credits。免费样例:
CEO resignation。过滤字段
| 字段 | 类型 · op | 含义 |
|---|---|---|
| market | keyword · equs · cn | 市场 |
| doc_family | keyword · eq anyevent · periodic · inquiry_letter · discipline · penalty · registration · ownership · proxy · announcement | 文书大类 |
| form | keyword · eq any8-K · 6-K · 临时公告 · 10-Q · SC 13G/A · CORRESP …共 47 个,/facets 可列全 | 表单/文书类型。10-Q 只在 PG 层(按设计不建向量),带上它整条查询走 PG(词面检索 + 可排序),取值与计数见 facets(标了 layer) |
| filed_at | datetime · range | 报送日期区间(精确到日,只有 PG 层支持 → 带上它整条查询走 PG) |
| filed_year | integer · eq range | 报送年份区间 |
| fiscal_year | integer · eq range | 报告期年份区间(定期报告) |
| event_types | keyword · eq any | 8-K 事件类型(闭集,见 facets:earnings / m_and_a / officer_director_change …) |
| report_kind | keyword · eq anyannual · semi · q1 · q3 | 定期报告类型 |
还有 15 个,照样能用
| 字段 | 类型 · op | 含义 |
|---|---|---|
| items | keyword · eq any | 8-K item 号,如 5.02 |
| sic | keyword · eq any | SIC 行业码 |
| letter_kind | keyword · eq any关注函 · 年报问询函 · 重组问询函 · 监管函 · 其他问询函 | 问询函类型 |
| exchange | keyword · eq anyszse · sse | 交易所 |
| issue_categories | keyword · eq any | 问询关注点(闭集 16 类,见 facets) |
| violation_types | keyword · eq any | 违法类型(证监会处罚,闭集 11 类) |
| company_name | keyword · eq any | 公司名(精确) |
| cik | keyword · eq any | EDGAR CIK |
| sec_code | keyword · eq any | A 股代码 |
| tickers | keyword · eq any | 美股代码 |
| counterparties | keyword · eq any | 交易对手方(模型抽取) |
| risk_categories | keyword · eq any | 风险类别(10-K 抽取) |
| party_names | keyword · eq any | 处罚/纪律文书当事人 |
| has_reply | bool · eq | 问询函是否有回复 |
| has_ban | bool · eq | 是否含市场禁入 |
参数
| 参数 | 类型 | 说明 |
|---|---|---|
| query 必填 | string | 1–1000 字符。也可以是最多 5 条的数组(批量,hits 变 results[])。 |
| top_k | integer= 10 | 1–100。 |
| fields | brief · head= brief | head 多扣 1 credit,每条附 head 视图。 |
| filters | json | 过滤 DSL 对象(见快速开始);可用字段见上表。 |
| mode | hybrid · dense · bm25= hybrid | 检索模式。不传就用第一个。 |
| sort | relevance · date= relevance | 结果排序。 |
| offset | integer= 0 | 翻页。 |
示例
{ "domain": "filings", "query": "…", "hits": [ { "id": "us:861838:0001104659-23-092550", "score": 0.83, "brief": { … } } ], "total": null, "coverage": …, "warnings": [],
"meta": { "request_id": "req_…", "credits": { "charged": 2, "balance": 1998, "pool": "allowance" }, "latency_ms": 41, "cached": false } } 两层。1,211,748 篇有向量,背后的全量库有 1,317,571 篇。命中带
layer: index | pg——pg 表示按词面匹配而非语义——coverage 说明这次由哪层作答(answered_by)以及为什么没有回落(no_fallback_because)。只属于某一层的过滤字段不能混用,400 会告诉你哪个字段属于哪层。用了未声明的过滤字段返回 400,不会静默忽略。过滤条件是 AND;可用
_or / _not。读
GET
/v1/filings/read/{doc_id}三档深浅,不传就是
detail。免费样例:us:861838:0001104659-23-092550。三档
| 深浅 | credits | 返回 |
|---|---|---|
| brief | 1 | 卡片:做取舍够用的字段(检索结果里那张) |
| detail (默认) | 2 | 全部结构化字段(规则字段 + 模型字段,模型字段在 _enrich.fields 里列名) |
| full | 5 | 全文(建设中:原件在 NAS(raw_path);两层都只有结构化要点,没有正文) |
参数
| 参数 | 类型 | 说明 |
|---|---|---|
| doc_id (path) 必填 | string | 文档 id(doc_id)。 |
| level | brief · detail · full= detail | 读多深。 |
| format | json · md · html= json | 响应形态。 |
示例
{ "domain": "filings", "id": "us:861838:0001104659-23-092550", "level": "detail", "view": "head", "data": { … } | "text": "…", "token_count": 1834, "meta": { … } } 旧写法
GET /v1/filings/doc/{id}?view=… 仍然可用。批量读
POST
/v1/filings/read最多 50 个 id,同一档。查不到的 id 返回
error: "not_found",不扣费。参数
| 参数 | 类型 | 说明 |
|---|---|---|
| ids 必填 | string[] | 文档 id 列表。 |
| level | brief · detail · full= detail | 所有 id 共用的档。 |
示例
{ "domain": "filings", "level": "detail", "docs": [ { "id": "…", "data": { … } }, { "id": "…", "error": "not_found" } ], "meta": { … } } Facets
GET
/v1/filings/facets?field={field}某个过滤字段的合法值,agent 不用猜;预聚合字段带计数,声明的枚举没有。免费、不需要 key。
参数
| 参数 | 类型 | 说明 |
|---|---|---|
| field 必填 | enum · 10 | 有 facets 的过滤字段。 |
| limit | integer= 50 | 最多返回多少个值。 |
示例
{ "domain": "filings", "field": "…", "values": [ { "value": "…", "count": 3120 } ], "meta": { … } } 问registered key+ /stream
POST
/v1/filings/ask本域的 agentic 问答:模型按自描述把问题翻成检索(筛选 + 关键词),读详情后作答,引用写成 [filings: <标题>];/stream 为 NDJSON,answer_delta 是边生成边发的真实片段。
effort low / medium / high 对应 50 / 100 / 200 credits。加 /stream 走 NDJSON,第一个事件一定是 billing。首个 answer_delta 之前失败会退款。参数
| 参数 | 类型 | 说明 |
|---|---|---|
| query 必填 | string | 1–2000 字符。问得具体;要数字就直接问数字。 |
| effort | low · medium · high= low | 检索轮数,也决定价格:50 / 100 / 200 credits。套餐限制最高档。 |
| verbose | bool= false | 返回工具调用轨迹(流式时多 tool_call / tool_result / thinking 事件)。 |
| top_k | integer= 10 | 预取候选数。 |
| stream_answer | bool= true | 仅流式:false 时只发一个 answer 事件。 |
| max_rounds | integer | 0–8,覆盖 effort 预设。 |
| force_answer_after | number | 秒;强制切入作答阶段。 |
| max_answer_tokens | integer= 4096 | 触顶时置 answer_truncated。 |
| language | string | 回答语言,默认跟随 query。 |
示例
{ "answer": "… [8-K 0001104659-23-092550] …", "sources": [ … ], "stats": { "rounds": 1, "elapsed_s": 6.2, "answer_truncated": false }, "coverage"?: { … }, "meta": { "credits": { "charged": 50, … } } } 引用是真的——
answer 里的每个 id 都存在于本垂域(格式 [8-K 0001104659-23-092550])。sources 是召回集,不是引用列表。answer_truncated 表示不完整。