{"openapi":"3.1.0","info":{"title":"看懂 / KanDong","version":"1.0.0-rc.1","summary":"把合同、体检报告、保单里看不懂却重要的条款翻成人话，每条标注可追查的官方出处。","description":"每条结论都带逐字取自用户文档的原文引用，以及可 GET 核验的官方出处（法条编号 / 国家或行业标准 / 监管文号）。\n引用命不中原文的条目在管线中即被丢弃，不会出现在结果里——这一点可用 /api/demo-source 与 /api/report 自行验证。\n\nEvery finding carries a verbatim quote from the submitted document and an officially sourced citation resolvable via GET /api/rules. Findings whose quote cannot be matched are dropped by the pipeline.","contact":{"name":"通过 OKX.AI 平台服务页发起","url":"https://kandong.xyz/legal"},"license":{"name":"服务条款","url":"https://kandong.xyz/legal"}},"servers":[{"url":"https://kandong.xyz"}],"x-service-page":"https://www.okx.ai/zh-hans/agents/7081","externalDocs":{"description":"面向 AI agent 的说明","url":"https://kandong.xyz/llms.txt"},"paths":{"/api/review-contract":{"post":{"summary":"常见合同关键条款白话解读","description":"梳理常见合同中的费用、期限、权利义务、解除条件、违约责任和争议条款，帮助用户在签字前看清需要重点确认的内容；最长支持 60,000 个字符并自动分块核查。\n\n按次付费 0.1 USDT（x402，网络 eip155:196，资产 USD₮0）。不带付款头调用返回 402 与 base64 的 PAYMENT-REQUIRED 挑战；付款后重放同一请求即得结果。识别不出有效内容返回 422 且不计费。","operationId":"read_contract","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":500,"maxLength":60000,"description":"待解读的常见合同全文"},"party":{"type":"string","description":"用户所属合同方（可选，如甲方/乙方）"},"consent":{"type":"boolean","description":"可选；传 true 表示已阅读隐私提示并同意本次内容发送至项目配置的第三方 AI 模型服务商处理；提交前请遮盖非必要身份信息"}},"required":["text"],"additionalProperties":true}}}},"responses":{"200":{"description":"解读结果。receipt 面向人，report 为机器可读的完整结构化结果。","content":{"application/json":{"schema":{"type":"object","description":"付费成功（HTTP 200）后的返回体。receipt 为面向人的中文回执；report 为机器可读的完整结构化结果。","properties":{"ok":{"type":"boolean"},"receipt":{"type":"string","description":"面向人阅读的 Markdown 回执，含结论、逐条风险项与报告页链接；按篇幅预算可能只列前若干条。"},"report":{"type":"object","description":"机器可读的完整结果，条目不做篇幅裁剪。","properties":{"card":{"type":"string","enum":["contract","lab","policy"]},"report_url":{"type":"string","description":"完整报告页；24 小时后自动销毁"},"summary":{"type":"object","description":"各风险等级条目数","properties":{"high":{"type":"number"},"medium":{"type":"number"},"low":{"type":"number"},"total":{"type":"number"}}},"flags":{"type":"array","description":"逐条结论。每条都可通过 verify_url 查回其官方出处并与 evidence 逐字比对。","items":{"type":"object","properties":{"rule_id":{"type":"string","description":"规则编号，可在 /api/rules?id= 查证"},"level":{"type":"string","enum":["high","medium","low"]},"finding":{"type":"string","description":"这一条讲的是什么问题"},"quote":{"type":"string","description":"逐字取自用户提交文档的原文引用"},"consequence":{"type":"string","description":"这条条款可能带来的影响"},"evidence":{"type":"object","description":"官方出处","properties":{"source":{"type":"string","description":"法条编号 / 国家或行业标准 / 监管文号"},"text":{"type":"string","description":"该出处的原文"}}},"next_step":{"type":"string","description":"可执行的下一步"},"verify_url":{"type":"string","description":"GET 此地址核验该 rule_id 的出处"}},"required":["rule_id","level","finding","quote","verify_url"]}},"meta":{"type":"object","description":"覆盖率、文档类型、法域等元信息"}},"required":["card","summary","flags"]}},"required":["ok","receipt"]}}}},"402":{"description":"需要付款。PAYMENT-REQUIRED 响应头为 base64 编码的 x402 挑战（含 accepts[] 与金额、收款地址）。","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64(x402 challenge)"}}},"422":{"description":"未能从输入中识别出足量有效内容。返回补救指引与入参 schema，本次不计费。"},"429":{"description":"超出单个付款方的日调用配额。不计费。"},"503":{"description":"熔断或依赖不可用。不计费，可重试。"}}}},"/api/read-labreport":{"post":{"summary":"体检报告指标白话翻译","description":"把体检指标、数值和参考区间整理成通俗说明，帮助用户看清哪些项目值得关注、哪些需要结合其他信息，并准备与医生沟通时可以进一步询问的问题。\n\n按次付费 0.02 USDT（x402，网络 eip155:196，资产 USD₮0）。不带付款头调用返回 402 与 base64 的 PAYMENT-REQUIRED 挑战；付款后重放同一请求即得结果。识别不出有效内容返回 422 且不计费。","operationId":"read_lab","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":3,"maxLength":30000,"description":"待解读的体检指标名称、数值、单位和报告参考区间"},"sex":{"type":"string","enum":["male","female"],"description":"性别提示（可选）"},"age":{"type":"number","minimum":0,"maximum":120,"description":"年龄（可选，0–120；缺少报告自带区间时会安全降级）"},"consent":{"type":"boolean","description":"可选；传 true 表示已阅读隐私提示并同意本次内容发送至项目配置的第三方 AI 模型服务商处理；提交前请遮盖非必要身份信息"}},"required":["text"],"additionalProperties":true}}}},"responses":{"200":{"description":"解读结果。receipt 面向人，report 为机器可读的完整结构化结果。","content":{"application/json":{"schema":{"type":"object","description":"付费成功（HTTP 200）后的返回体。receipt 为面向人的中文回执；report 为机器可读的完整结构化结果。","properties":{"ok":{"type":"boolean"},"receipt":{"type":"string","description":"面向人阅读的 Markdown 回执，含结论、逐条风险项与报告页链接；按篇幅预算可能只列前若干条。"},"report":{"type":"object","description":"机器可读的完整结果，条目不做篇幅裁剪。","properties":{"card":{"type":"string","enum":["contract","lab","policy"]},"report_url":{"type":"string","description":"完整报告页；24 小时后自动销毁"},"summary":{"type":"object","description":"各风险等级条目数","properties":{"high":{"type":"number"},"medium":{"type":"number"},"low":{"type":"number"},"total":{"type":"number"}}},"flags":{"type":"array","description":"逐条结论。每条都可通过 verify_url 查回其官方出处并与 evidence 逐字比对。","items":{"type":"object","properties":{"rule_id":{"type":"string","description":"规则编号，可在 /api/rules?id= 查证"},"level":{"type":"string","enum":["high","medium","low"]},"finding":{"type":"string","description":"这一条讲的是什么问题"},"quote":{"type":"string","description":"逐字取自用户提交文档的原文引用"},"consequence":{"type":"string","description":"这条条款可能带来的影响"},"evidence":{"type":"object","description":"官方出处","properties":{"source":{"type":"string","description":"法条编号 / 国家或行业标准 / 监管文号"},"text":{"type":"string","description":"该出处的原文"}}},"next_step":{"type":"string","description":"可执行的下一步"},"verify_url":{"type":"string","description":"GET 此地址核验该 rule_id 的出处"}},"required":["rule_id","level","finding","quote","verify_url"]}},"meta":{"type":"object","description":"覆盖率、文档类型、法域等元信息"}},"required":["card","summary","flags"]}},"required":["ok","receipt"]}}}},"402":{"description":"需要付款。PAYMENT-REQUIRED 响应头为 base64 编码的 x402 挑战（含 accepts[] 与金额、收款地址）。","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64(x402 challenge)"}}},"422":{"description":"未能从输入中识别出足量有效内容。返回补救指引与入参 schema，本次不计费。"},"429":{"description":"超出单个付款方的日调用配额。不计费。"},"503":{"description":"熔断或依赖不可用。不计费，可重试。"}}}},"/api/read-policy":{"post":{"summary":"保单关键条款白话梳理","description":"梳理保单中的保障责任、免责范围、等待期、免赔额、续保、退保和理赔条件，帮助用户看清保什么、不保什么，以及哪些内容需要向保险公司确认。\n\n按次付费 0.05 USDT（x402，网络 eip155:196，资产 USD₮0）。不带付款头调用返回 402 与 base64 的 PAYMENT-REQUIRED 挑战；付款后重放同一请求即得结果。识别不出有效内容返回 422 且不计费。","operationId":"read_policy","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":300,"maxLength":30000,"description":"待梳理的保单或保险条款全文"},"consent":{"type":"boolean","description":"可选；传 true 表示已阅读隐私提示并同意本次内容发送至项目配置的第三方 AI 模型服务商处理；提交前请遮盖非必要身份信息"}},"required":["text"],"additionalProperties":true}}}},"responses":{"200":{"description":"解读结果。receipt 面向人，report 为机器可读的完整结构化结果。","content":{"application/json":{"schema":{"type":"object","description":"付费成功（HTTP 200）后的返回体。receipt 为面向人的中文回执；report 为机器可读的完整结构化结果。","properties":{"ok":{"type":"boolean"},"receipt":{"type":"string","description":"面向人阅读的 Markdown 回执，含结论、逐条风险项与报告页链接；按篇幅预算可能只列前若干条。"},"report":{"type":"object","description":"机器可读的完整结果，条目不做篇幅裁剪。","properties":{"card":{"type":"string","enum":["contract","lab","policy"]},"report_url":{"type":"string","description":"完整报告页；24 小时后自动销毁"},"summary":{"type":"object","description":"各风险等级条目数","properties":{"high":{"type":"number"},"medium":{"type":"number"},"low":{"type":"number"},"total":{"type":"number"}}},"flags":{"type":"array","description":"逐条结论。每条都可通过 verify_url 查回其官方出处并与 evidence 逐字比对。","items":{"type":"object","properties":{"rule_id":{"type":"string","description":"规则编号，可在 /api/rules?id= 查证"},"level":{"type":"string","enum":["high","medium","low"]},"finding":{"type":"string","description":"这一条讲的是什么问题"},"quote":{"type":"string","description":"逐字取自用户提交文档的原文引用"},"consequence":{"type":"string","description":"这条条款可能带来的影响"},"evidence":{"type":"object","description":"官方出处","properties":{"source":{"type":"string","description":"法条编号 / 国家或行业标准 / 监管文号"},"text":{"type":"string","description":"该出处的原文"}}},"next_step":{"type":"string","description":"可执行的下一步"},"verify_url":{"type":"string","description":"GET 此地址核验该 rule_id 的出处"}},"required":["rule_id","level","finding","quote","verify_url"]}},"meta":{"type":"object","description":"覆盖率、文档类型、法域等元信息"}},"required":["card","summary","flags"]}},"required":["ok","receipt"]}}}},"402":{"description":"需要付款。PAYMENT-REQUIRED 响应头为 base64 编码的 x402 挑战（含 accepts[] 与金额、收款地址）。","headers":{"PAYMENT-REQUIRED":{"schema":{"type":"string"},"description":"base64(x402 challenge)"}}},"422":{"description":"未能从输入中识别出足量有效内容。返回补救指引与入参 schema，本次不计费。"},"429":{"description":"超出单个付款方的日调用配额。不计费。"},"503":{"description":"熔断或依赖不可用。不计费，可重试。"}}}},"/api/rules":{"get":{"summary":"出处核验：按 rule_id 查回官方出处","description":"付费结果中每条 flag 的 rule_id 都可在此解析为其名称、等级与官方出处，供逐条比对。","operationId":"verifyRule","parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"},"description":"省略则列出全部生产规则","example":"rent-001"}],"responses":{"200":{"description":"规则出处"},"404":{"description":"无此 rule_id"}}}},"/api/report":{"get":{"summary":"报告的机器可读版本","operationId":"getReport","parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"结构化报告"},"404":{"description":"不存在或已过期（24h）"}}}},"/api/demo-source":{"get":{"summary":"demo 报告的原始输入文档（合成样本）","description":"公开出来是为了让「引用逐字取自原文」这一主张可被独立验证，而不是只能被相信。","operationId":"getDemoSource","parameters":[{"name":"id","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"原始文档与其 sha256"}}}},"/health":{"get":{"summary":"运行状态与知识库计数","operationId":"health","responses":{"200":{"description":"ok"}}}},"/metadata":{"get":{"summary":"服务契约","operationId":"metadata","responses":{"200":{"description":"ok"}}}}}}