Filings

Overview

Corporate filings on both sides of the Pacific — SEC forms, A-share reports, inquiry letters, enforcement.

status
live
document id
doc_id e.g. us:861838:0001104659-23-092550
citation
[8-K 0001104659-23-092550]
updated
2026-10

Common calls

Find filingsPOST /v1/filings/search {"query": "CEO 辞职", "filters": {"market": "us", "event_types": "officer_director_change", "filed_year": {"gte": 2023}}}
Read one filingGET /v1/filings/read/us:861838:0001104659-23-092550
Everything for one companyPOST /v1/filings/search {"query": "*", "filters": {"cik": "861838"}}
Search 10-Q quarterlies (Postgres layer)POST /v1/filings/search {"query": "going concern liquidity", "filters": {"form": "10-Q"}}
A company's latest quarterliesPOST /v1/filings/search {"query": "*", "filters": {"form": "10-Q", "cik": "320193"}, "sort": "date"}
The fine print
  • Fields differ by doc_family: event (8-K) has items / event_types / counterparties / amounts; periodic has main_business / segments / key_numbers; 10-Q quarterlies have mdna_drivers / liquidity / legal_updates / new_or_changed_risks / outlook; inquiry_letter has issues / deadline / has_reply; penalty has violation_types / facts / legal_basis / parties. Filter by doc_family before reading fields.
  • The 104,690 10-Q quarterlies carry no vectors by design and live only in the Postgres layer: filtering on form=10-Q (or doc_family=periodic with market=us) routes the whole query there — lexical search, sort=date and day-precision filed_at ranges, but no semantic search. Every hit is tagged with its layer and the response says which layer answered.
  • Lexical search in the Postgres layer also matches model-written retrieval keywords (kw_en / kw_zh, folded into the full-text index), so a Chinese query such as 持续经营 finds English going-concern language and synonyms absent from the source text. The trade-off: the score includes that contribution and the response does not distinguish a source-text match from a keyword-only match. The keywords themselves are not returned (the store marks them recall-only).
  • Financial statements from 10-K / 20-F / 10-Q are not here — use XBRL; this corpus carries structured highlights only.
  • Source documents are on NAS (raw_path in level=detail); the index holds no full text.
  • The index holds no full text: level=full is not available yet (source documents are on NAS (raw_path); neither layer holds the body text, only structured highlights).

Read

GET/v1/filings/read/{doc_id}
Three depths. detail is the default. Free sample: us:861838:0001104659-23-092550.

Levels

levelcreditsreturns
brief1Card: the fields needed to triage, same as in search hits
detail (default)2Every structured field (rule-derived plus model-generated; model fields are listed in _enrich.fields)
full5Full text (not available yet: source documents are on NAS (raw_path); neither layer holds the body text, only structured highlights)

Parameters

ParameterTypeDescription
doc_id (path) REQUIRED string Document id (doc_id).
level brief · detail · full= detail How deep to read.
format json · md · html= json Response shape.

Example

{ "domain": "filings", "id": "us:861838:0001104659-23-092550", "level": "detail", "view": "head", "data": { … } | "text": "…", "token_count": 1834, "meta": { … } }
The older GET /v1/filings/doc/{id}?view=… still works.

Read many

POST/v1/filings/read
Up to 50 ids, one level. Missing ids come back with error: "not_found" and are not charged.

Parameters

ParameterTypeDescription
ids REQUIRED string[] Document ids.
level brief · detail · full= detail Level for every id.

Example

{ "domain": "filings", "level": "detail", "docs": [ { "id": "…", "data": { … } }, { "id": "…", "error": "not_found" } ], "meta": { … } }

Facets

GET/v1/filings/facets?field={field}
Legal values for a filter field, so an agent never guesses; precomputed fields carry counts, declared enums come without. Free, no key.

Parameters

ParameterTypeDescription
field REQUIRED enum · 10 Filter field with facets.
limit integer= 50 Max values.

Example

{ "domain": "filings", "field": "…", "values": [ { "value": "…", "count": 3120 } ], "meta": { … } }

Askregistered key+ /stream

POST/v1/filings/ask
Agentic Q&A over this domain: the model turns the question into filters plus keywords from the domain's own self-description, reads the hits and answers with [filings: ] citations; /stream is NDJSON with real token deltas. <code>effort</code> low / medium / high = 50 / 100 / 200 credits. Append <code>/stream</code> for NDJSON; the first event is always <code>billing</code>. A failure before the first <code>answer_delta</code> is refunded.</div> <h4>Parameters</h4> <div class="tblwrap"><table class="tbl t3 tparam"> <thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead> <tbody> <tr> <td>query<span class="req"> REQUIRED</span></td> <td class="ty">string</td> <td>1–2000 characters. Be specific; ask for numbers if you want numbers.</td> </tr><tr> <td>effort</td> <td class="ty">low · medium · high<span class="def">= low</span></td> <td>Reading rounds, and the price: 50 / 100 / 200 credits. Your plan caps it.</td> </tr><tr> <td>verbose</td> <td class="ty">bool<span class="def">= false</span></td> <td>Include the tool-call trace (tool_call / tool_result / thinking events when streaming).</td> </tr><tr> <td>top_k</td> <td class="ty">integer<span class="def">= 10</span></td> <td>Speculative prefetch size.</td> </tr><tr> <td>stream_answer</td> <td class="ty">bool<span class="def">= true</span></td> <td>Streaming only: false emits one answer event instead of deltas.</td> </tr><tr> <td>max_rounds</td> <td class="ty">integer</td> <td>0–8, overrides the effort preset.</td> </tr><tr> <td>force_answer_after</td> <td class="ty">number</td> <td>Seconds; hard cutover into the answer phase.</td> </tr><tr> <td>max_answer_tokens</td> <td class="ty">integer<span class="def">= 4096</span></td> <td>Hitting it sets answer_truncated.</td> </tr><tr> <td>language</td> <td class="ty">string</td> <td>Answer language; defaults to the query’s.</td> </tr> </tbody> </table></div> <h4>Example</h4> <pre class="code">{ "answer": "… [8-K 0001104659-23-092550] …", "sources": [ … ], "stats": { "rounds": 1, "elapsed_s": 6.2, "answer_truncated": false }, "coverage"?: { … }, "meta": { "credits": { "charged": 50, … } } }</pre> <div class="callout "><b>Citations are real</b> — every id in <code>answer</code> exists in this domain (format <code>[8-K 0001104659-23-092550]</code>). <b><code>sources</code> is the retrieval set</b>, not the citation list. <b><code>answer_truncated</code> means incomplete.</b></div> </section> </div> </div> <aside class="pg" data-playground> <div class="pg-handle" data-pg-handle></div> <div class="pg-head"><b>Playground</b><span class="hint">Follows the section you are reading</span><button class="icon-btn" data-pg-close type="button" aria-label="Close">✕</button></div> <div class="pg-body" data-pg-body></div> <script type="application/json" data-pg-specs>[{"id":"filings-search","domain":"filings","method":"POST","path":"/v1/filings/search","auth":"optional","status":"live","title":{"en":"Search","zh":"检索"},"summary":{"en":"Hybrid retrieval, one card per hit. 2 credits. Free sample: <code>CEO resignation</code>.<h4 class=\"sub\">Filter fields</h4><div class=\"tblwrap\"><table class=\"tbl t3\"><thead><tr><th>field</th><th>type · ops</th><th>meaning</th></tr></thead><tbody><tr><td class=\"mono\">market</td><td class=\"mono dim\">keyword · eq<span class=\"vals\">us · cn</span></td><td>Market</td></tr><tr><td class=\"mono\">doc_family</td><td class=\"mono dim\">keyword · eq any<span class=\"vals\">event · periodic · inquiry_letter · discipline · penalty · registration · ownership · proxy · announcement</span></td><td>Document family</td></tr><tr><td class=\"mono\">form</td><td class=\"mono dim\">keyword · eq any<span class=\"vals\">8-K · 6-K · 临时公告 · 10-Q · SC 13G/A · CORRESP <span class=\"dim\">… 47 values, /facets lists them all</span></span></td><td>Form / document type. 10-Q lives only in the Postgres layer (no vectors, by design); filtering on it routes the whole query there</td></tr><tr><td class=\"mono\">filed_at</td><td class=\"mono dim\">datetime · range</td><td>Filing date range (day precision; Postgres layer only, so it routes the query there)</td></tr><tr><td class=\"mono\">filed_year</td><td class=\"mono dim\">integer · eq range</td><td>Filing year, range</td></tr><tr><td class=\"mono\">fiscal_year</td><td class=\"mono dim\">integer · eq range</td><td>Fiscal year, range</td></tr><tr><td class=\"mono\">event_types</td><td class=\"mono dim\">keyword · eq any</td><td>8-K event type (closed set, see facets)</td></tr><tr><td class=\"mono\">report_kind</td><td class=\"mono dim\">keyword · eq any<span class=\"vals\">annual · semi · q1 · q3</span></td><td>Periodic report kind</td></tr></tbody></table></div><details class=\"adv\"><summary>15 more, all usable</summary><div class=\"tblwrap\"><table class=\"tbl t3\"><thead><tr><th>field</th><th>type · ops</th><th>meaning</th></tr></thead><tbody><tr><td class=\"mono\">items</td><td class=\"mono dim\">keyword · eq any</td><td>8-K item number, e.g. 5.02</td></tr><tr><td class=\"mono\">sic</td><td class=\"mono dim\">keyword · eq any</td><td>SIC industry code</td></tr><tr><td class=\"mono\">letter_kind</td><td class=\"mono dim\">keyword · eq any<span class=\"vals\">关注函 · 年报问询函 · 重组问询函 · 监管函 · 其他问询函</span></td><td>Inquiry-letter kind</td></tr><tr><td class=\"mono\">exchange</td><td class=\"mono dim\">keyword · eq any<span class=\"vals\">szse · sse</span></td><td>Exchange</td></tr><tr><td class=\"mono\">issue_categories</td><td class=\"mono dim\">keyword · eq any</td><td>Inquiry focus (closed set of 16, see facets)</td></tr><tr><td class=\"mono\">violation_types</td><td class=\"mono dim\">keyword · eq any</td><td>Violation type (CSRC penalties, closed set of 11)</td></tr><tr><td class=\"mono\">company_name</td><td class=\"mono dim\">keyword · eq any</td><td>Company name (exact)</td></tr><tr><td class=\"mono\">cik</td><td class=\"mono dim\">keyword · eq any</td><td>EDGAR CIK</td></tr><tr><td class=\"mono\">sec_code</td><td class=\"mono dim\">keyword · eq any</td><td>A-share code</td></tr><tr><td class=\"mono\">tickers</td><td class=\"mono dim\">keyword · eq any</td><td>US tickers</td></tr><tr><td class=\"mono\">counterparties</td><td class=\"mono dim\">keyword · eq any</td><td>Counterparties (model-extracted)</td></tr><tr><td class=\"mono\">risk_categories</td><td class=\"mono dim\">keyword · eq any</td><td>Risk categories (from 10-K)</td></tr><tr><td class=\"mono\">party_names</td><td class=\"mono dim\">keyword · eq any</td><td>Parties named in penalty / discipline documents</td></tr><tr><td class=\"mono\">has_reply</td><td class=\"mono dim\">bool · eq</td><td>Inquiry letter has a reply</td></tr><tr><td class=\"mono\">has_ban</td><td class=\"mono dim\">bool · eq</td><td>Includes a market ban</td></tr></tbody></table></div></details>","zh":"混合检索,每条命中一张卡片。2 credits。免费样例:<code>CEO resignation</code>。<h4 class=\"sub\">过滤字段</h4><div class=\"tblwrap\"><table class=\"tbl t3\"><thead><tr><th>字段</th><th>类型 · op</th><th>含义</th></tr></thead><tbody><tr><td class=\"mono\">market</td><td class=\"mono dim\">keyword · eq<span class=\"vals\">us · cn</span></td><td>市场</td></tr><tr><td class=\"mono\">doc_family</td><td class=\"mono dim\">keyword · eq any<span class=\"vals\">event · periodic · inquiry_letter · discipline · penalty · registration · ownership · proxy · announcement</span></td><td>文书大类</td></tr><tr><td class=\"mono\">form</td><td class=\"mono dim\">keyword · eq any<span class=\"vals\">8-K · 6-K · 临时公告 · 10-Q · SC 13G/A · CORRESP <span class=\"dim\">…共 47 个,/facets 可列全</span></span></td><td>表单/文书类型。10-Q 只在 PG 层(按设计不建向量),带上它整条查询走 PG(词面检索 + 可排序),取值与计数见 facets(标了 layer)</td></tr><tr><td class=\"mono\">filed_at</td><td class=\"mono dim\">datetime · range</td><td>报送日期区间(精确到日,只有 PG 层支持 → 带上它整条查询走 PG)</td></tr><tr><td class=\"mono\">filed_year</td><td class=\"mono dim\">integer · eq range</td><td>报送年份区间</td></tr><tr><td class=\"mono\">fiscal_year</td><td class=\"mono dim\">integer · eq range</td><td>报告期年份区间(定期报告)</td></tr><tr><td class=\"mono\">event_types</td><td class=\"mono dim\">keyword · eq any</td><td>8-K 事件类型(闭集,见 facets:earnings / m_and_a / officer_director_change …)</td></tr><tr><td class=\"mono\">report_kind</td><td class=\"mono dim\">keyword · eq any<span class=\"vals\">annual · semi · q1 · q3</span></td><td>定期报告类型</td></tr></tbody></table></div><details class=\"adv\"><summary>还有 15 个,照样能用</summary><div class=\"tblwrap\"><table class=\"tbl t3\"><thead><tr><th>字段</th><th>类型 · op</th><th>含义</th></tr></thead><tbody><tr><td class=\"mono\">items</td><td class=\"mono dim\">keyword · eq any</td><td>8-K item 号,如 5.02</td></tr><tr><td class=\"mono\">sic</td><td class=\"mono dim\">keyword · eq any</td><td>SIC 行业码</td></tr><tr><td class=\"mono\">letter_kind</td><td class=\"mono dim\">keyword · eq any<span class=\"vals\">关注函 · 年报问询函 · 重组问询函 · 监管函 · 其他问询函</span></td><td>问询函类型</td></tr><tr><td class=\"mono\">exchange</td><td class=\"mono dim\">keyword · eq any<span class=\"vals\">szse · sse</span></td><td>交易所</td></tr><tr><td class=\"mono\">issue_categories</td><td class=\"mono dim\">keyword · eq any</td><td>问询关注点(闭集 16 类,见 facets)</td></tr><tr><td class=\"mono\">violation_types</td><td class=\"mono dim\">keyword · eq any</td><td>违法类型(证监会处罚,闭集 11 类)</td></tr><tr><td class=\"mono\">company_name</td><td class=\"mono dim\">keyword · eq any</td><td>公司名(精确)</td></tr><tr><td class=\"mono\">cik</td><td class=\"mono dim\">keyword · eq any</td><td>EDGAR CIK</td></tr><tr><td class=\"mono\">sec_code</td><td class=\"mono dim\">keyword · eq any</td><td>A 股代码</td></tr><tr><td class=\"mono\">tickers</td><td class=\"mono dim\">keyword · eq any</td><td>美股代码</td></tr><tr><td class=\"mono\">counterparties</td><td class=\"mono dim\">keyword · eq any</td><td>交易对手方(模型抽取)</td></tr><tr><td class=\"mono\">risk_categories</td><td class=\"mono dim\">keyword · eq any</td><td>风险类别(10-K 抽取)</td></tr><tr><td class=\"mono\">party_names</td><td class=\"mono dim\">keyword · eq any</td><td>处罚/纪律文书当事人</td></tr><tr><td class=\"mono\">has_reply</td><td class=\"mono dim\">bool · eq</td><td>问询函是否有回复</td></tr><tr><td class=\"mono\">has_ban</td><td class=\"mono dim\">bool · eq</td><td>是否含市场禁入</td></tr></tbody></table></div></details>"},"params":[{"name":"query","type":"string","required":true,"in":"body","example":"CEO resignation","desc":{"en":"1–1000 characters. Or an array of up to 5 (batch; hits become results[]).","zh":"1–1000 字符。也可以是最多 5 条的数组(批量,hits 变 results[])。"}},{"name":"top_k","type":"integer","default":"10","in":"body","desc":{"en":"1–100.","zh":"1–100。"}},{"name":"fields","type":"enum","options":["brief","head"],"default":"brief","in":"body","desc":{"en":"head costs one more credit and returns the head view per hit.","zh":"head 多扣 1 credit,每条附 head 视图。"}},{"name":"filters","type":"json","in":"body","example":"","desc":{"en":"Filter DSL object (see Getting started); declared fields are listed above.","zh":"过滤 DSL 对象(见快速开始);可用字段见上表。"}},{"name":"mode","type":"enum","options":["hybrid","dense","bm25"],"default":"hybrid","in":"body","advanced":false,"desc":{"en":"Retrieval mode. Leave it out to use the first.","zh":"检索模式。不传就用第一个。"}},{"name":"sort","type":"enum","options":["relevance","date"],"default":"relevance","in":"body","desc":{"en":"Order of the hits. ","zh":"结果排序。"}},{"name":"offset","type":"integer","default":"0","in":"body","advanced":true,"desc":{"en":"Pagination.","zh":"翻页。"}}],"example":"{ \"domain\": \"filings\", \"query\": \"…\", \"hits\": [ { \"id\": \"us:861838:0001104659-23-092550\", \"score\": 0.83, \"brief\": { … } } ], \"total\": null, \"coverage\": …, \"warnings\": [],\n \"meta\": { \"request_id\": \"req_…\", \"credits\": { \"charged\": 2, \"balance\": 1998, \"pool\": \"allowance\" }, \"latency_ms\": 41, \"cached\": false } }","notes":[{"html":{"en":"<b>Two layers.</b> 1,211,748 documents carry vectors; the store behind them holds 1,317,571. Hits carry <code>layer: index | pg</code> — <code>pg</code> means the match was by words, not meaning — and <code>coverage</code> says which layer answered (<code>answered_by</code>) and why a fallback did not happen (<code>no_fallback_because</code>). Filters that only one layer has cannot be mixed; the 400 names which belongs where.","zh":"<b>两层。</b>1,211,748 篇有向量,背后的全量库有 1,317,571 篇。命中带 <code>layer: index | pg</code>——<code>pg</code> 表示按词面匹配而非语义——<code>coverage</code> 说明这次由哪层作答(<code>answered_by</code>)以及为什么没有回落(<code>no_fallback_because</code>)。只属于某一层的过滤字段不能混用,400 会告诉你哪个字段属于哪层。"}},{"html":{"en":"<b>Undeclared filter fields return 400</b> rather than being ignored silently. Filters combine with AND; <code>_or</code> / <code>_not</code> are available.","zh":"<b>用了未声明的过滤字段返回 400</b>,不会静默忽略。过滤条件是 AND;可用 <code>_or</code> / <code>_not</code>。"}}]},{"id":"filings-read","domain":"filings","method":"GET","path":"/v1/filings/read/{doc_id}","auth":"optional","status":"live","title":{"en":"Read","zh":"读"},"summary":{"en":"Three depths. <code>detail</code> is the default. Free sample: <code>us:861838:0001104659-23-092550</code>.<h4 class=\"sub\">Levels</h4><div class=\"tblwrap\"><table class=\"tbl t3 tnum\"><thead><tr><th>level</th><th>credits</th><th>returns</th></tr></thead><tbody><tr><td class=\"mono\">brief</td><td class=\"mono num\">1</td><td>Card: the fields needed to triage, same as in search hits</td></tr><tr><td class=\"mono\">detail <span class=\"dim\">(default)</span></td><td class=\"mono num\">2</td><td>Every structured field (rule-derived plus model-generated; model fields are listed in _enrich.fields)</td></tr><tr><td class=\"mono\">full</td><td class=\"mono num\">5</td><td>Full text (not available yet: source documents are on NAS (raw_path); neither layer holds the body text, only structured highlights)</td></tr></tbody></table></div>","zh":"三档深浅,不传就是 <code>detail</code>。免费样例:<code>us:861838:0001104659-23-092550</code>。<h4 class=\"sub\">三档</h4><div class=\"tblwrap\"><table class=\"tbl t3 tnum\"><thead><tr><th>深浅</th><th>credits</th><th>返回</th></tr></thead><tbody><tr><td class=\"mono\">brief</td><td class=\"mono num\">1</td><td>卡片:做取舍够用的字段(检索结果里那张)</td></tr><tr><td class=\"mono\">detail <span class=\"dim\">(默认)</span></td><td class=\"mono num\">2</td><td>全部结构化字段(规则字段 + 模型字段,模型字段在 _enrich.fields 里列名)</td></tr><tr><td class=\"mono\">full</td><td class=\"mono num\">5</td><td>全文(建设中:原件在 NAS(raw_path);两层都只有结构化要点,没有正文)</td></tr></tbody></table></div>"},"params":[{"name":"doc_id","type":"string","required":true,"in":"path","example":"us:861838:0001104659-23-092550","desc":{"en":"Document id (doc_id).","zh":"文档 id(doc_id)。"}},{"name":"level","type":"enum","options":["brief","detail","full"],"default":"detail","desc":{"en":"How deep to read.","zh":"读多深。"}},{"name":"format","type":"enum","options":["json","md","html"],"default":"json","desc":{"en":"Response shape.","zh":"响应形态。"}}],"example":"{ \"domain\": \"filings\", \"id\": \"us:861838:0001104659-23-092550\", \"level\": \"detail\", \"view\": \"head\", \"data\": { … } | \"text\": \"…\", \"token_count\": 1834, \"meta\": { … } }","notes":[{"html":{"en":"The older <code>GET /v1/filings/doc/{id}?view=…</code> still works.","zh":"旧写法 <code>GET /v1/filings/doc/{id}?view=…</code> 仍然可用。"}}]},{"id":"filings-read-batch","domain":"filings","method":"POST","path":"/v1/filings/read","auth":"token","status":"live","title":{"en":"Read many","zh":"批量读"},"summary":{"en":"Up to 50 ids, one level. Missing ids come back with <code>error: \"not_found\"</code> and are not charged.","zh":"最多 50 个 id,同一档。查不到的 id 返回 <code>error: \"not_found\"</code>,不扣费。"},"params":[{"name":"ids","type":"array","list":true,"required":true,"in":"body","example":"us:861838:0001104659-23-092550","desc":{"en":"Document ids.","zh":"文档 id 列表。"}},{"name":"level","type":"enum","options":["brief","detail","full"],"default":"detail","in":"body","desc":{"en":"Level for every id.","zh":"所有 id 共用的档。"}}],"example":"{ \"domain\": \"filings\", \"level\": \"detail\", \"docs\": [ { \"id\": \"…\", \"data\": { … } }, { \"id\": \"…\", \"error\": \"not_found\" } ], \"meta\": { … } }"},{"id":"filings-facets","domain":"filings","method":"GET","path":"/v1/filings/facets","auth":"none","status":"live","title":{"en":"Facets","zh":"Facets"},"summary":{"en":"Legal values for a filter field, so an agent never guesses; precomputed fields carry counts, declared enums come without. Free, no key.","zh":"某个过滤字段的合法值,agent 不用猜;预聚合字段带计数,声明的枚举没有。免费、不需要 key。"},"params":[{"name":"field","type":"enum","options":["market","doc_family","form","event_types","report_kind","letter_kind","exchange","issue_categories","violation_types","sic"],"required":true,"example":"market","desc":{"en":"Filter field with facets.","zh":"有 facets 的过滤字段。"}},{"name":"limit","type":"integer","default":"50","advanced":true,"desc":{"en":"Max values.","zh":"最多返回多少个值。"}}],"example":"{ \"domain\": \"filings\", \"field\": \"…\", \"values\": [ { \"value\": \"…\", \"count\": 3120 } ], \"meta\": { … } }"},{"id":"filings-ask","domain":"filings","method":"POST","path":"/v1/filings/ask","auth":"registered","status":"live","stream":true,"agentic":true,"title":{"en":"Ask","zh":"问"},"summary":{"en":"Agentic Q&A over this domain: the model turns the question into filters plus keywords from the domain's own self-description, reads the hits and answers with [filings:<doc_id> <title>] citations; /stream is NDJSON with real token deltas. <code>effort</code> low / medium / high = 50 / 100 / 200 credits. Append <code>/stream</code> for NDJSON; the first event is always <code>billing</code>. A failure before the first <code>answer_delta</code> is refunded.","zh":"本域的 agentic 问答:模型按自描述把问题翻成检索(筛选 + 关键词),读详情后作答,引用写成 [filings:<doc_id> <标题>];/stream 为 NDJSON,answer_delta 是边生成边发的真实片段。<code>effort</code> low / medium / high 对应 50 / 100 / 200 credits。加 <code>/stream</code> 走 NDJSON,第一个事件一定是 <code>billing</code>。首个 <code>answer_delta</code> 之前失败会退款。"},"params":[{"name":"query","type":"string","required":true,"in":"body","example":"CEO resignation","desc":{"en":"1–2000 characters. Be specific; ask for numbers if you want numbers.","zh":"1–2000 字符。问得具体;要数字就直接问数字。"}},{"name":"effort","type":"enum","options":["low","medium","high"],"default":"low","in":"body","desc":{"en":"Reading rounds, and the price: 50 / 100 / 200 credits. Your plan caps it.","zh":"检索轮数,也决定价格:50 / 100 / 200 credits。套餐限制最高档。"}},{"name":"verbose","type":"bool","default":"false","in":"body","desc":{"en":"Include the tool-call trace (tool_call / tool_result / thinking events when streaming).","zh":"返回工具调用轨迹(流式时多 tool_call / tool_result / thinking 事件)。"}},{"name":"top_k","type":"integer","default":"10","in":"body","advanced":true,"desc":{"en":"Speculative prefetch size.","zh":"预取候选数。"}},{"name":"stream_answer","type":"bool","default":"true","in":"body","advanced":true,"desc":{"en":"Streaming only: false emits one answer event instead of deltas.","zh":"仅流式:false 时只发一个 answer 事件。"}},{"name":"max_rounds","type":"integer","in":"body","advanced":true,"desc":{"en":"0–8, overrides the effort preset.","zh":"0–8,覆盖 effort 预设。"}},{"name":"force_answer_after","type":"number","in":"body","advanced":true,"desc":{"en":"Seconds; hard cutover into the answer phase.","zh":"秒;强制切入作答阶段。"}},{"name":"max_answer_tokens","type":"integer","default":"4096","in":"body","advanced":true,"desc":{"en":"Hitting it sets answer_truncated.","zh":"触顶时置 answer_truncated。"}},{"name":"language","type":"string","in":"body","advanced":true,"desc":{"en":"Answer language; defaults to the query’s.","zh":"回答语言,默认跟随 query。"}}],"example":"{ \"answer\": \"… [8-K 0001104659-23-092550] …\", \"sources\": [ … ], \"stats\": { \"rounds\": 1, \"elapsed_s\": 6.2, \"answer_truncated\": false }, \"coverage\"?: { … }, \"meta\": { \"credits\": { \"charged\": 50, … } } }","notes":[{"html":{"en":"<b>Citations are real</b> — every id in <code>answer</code> exists in this domain (format <code>[8-K 0001104659-23-092550]</code>). <b><code>sources</code> is the retrieval set</b>, not the citation list. <b><code>answer_truncated</code> means incomplete.</b>","zh":"<b>引用是真的</b>——<code>answer</code> 里的每个 id 都存在于本垂域(格式 <code>[8-K 0001104659-23-092550]</code>)。<b><code>sources</code> 是召回集</b>,不是引用列表。<b><code>answer_truncated</code> 表示不完整。</b>"}}]}]</script> <script type="application/json" data-pg-strings>{"title":"Playground","hint":"Follows the section you are reading","token":"API token","tokenHint":"fa_live_… key · optional for free samples · stored in this browser only","tokenReq":"API key required (fa_live_…)","send":"Send request","stream":"Stream","response":"Response","events":"Events","answer":"Answer","sources":"Sources","cited":"cited","retrieved":"retrieved","stats":"Stats","coming":"This domain is still building. The request shape is final; sending is disabled until it is live.","open":"Playground","close":"Close","tokens":"tokens","chars":"characters","truncated":"answer truncated","code":"Code","openTab":"Open in a new tab","report":"This one is wrong — report it","quotaHit":"Daily quota used up ({used} / {limit}, resets {reset}). It is a quota, not a rate limit, so retrying will not help: write to {mail} about {grant}.","rateHit":"Over your rpm. Retry in {n} s.","lang":"en","apiBase":"https://api.1stauthor.com","codeBase":"https://api.1stauthor.com","keys":"/dashboard/keys/","fb":"/feedback/","contact":"tommy@chien.io"}</script> </aside> <button class="btn btn-primary pg-fab" data-pg-open type="button">Playground</button> <script type="module" src="/_astro/DocsShell.astro_astro_type_script_index_0_lang.cOZozF12.js"></script> </main> <script type="module" src="/_astro/Base.astro_astro_type_script_index_0_lang.B9qjIrvh.js"></script> </body> </html>