两种接入方式 —— REST API 或 MCP server。curl 一行能验证,Claude / Cursor 一分钟接通。劳动争议样本库每条带 source_url 回链中国裁判文书网;1.6 亿全量库当前不返回原文链接, 以案号 + 法院 + 裁判日期溯源(详见下方 FAQ)。
拿到 key 后 30 秒能跑通。Beta 阶段返回 sample 字段名与 GA 一致,代码不用改。
提示:/api/v1/cases/search 的 q 按空白切词后要求逐词命中,词越多结果越少;若全部同时命中为 0 条,会自动降级为「任一关键词命中」并按命中词数排序(响应 _meta.note 会说明,similarity = 命中词数 / 总词数)。要更精确请用 1-2 个短词 + province / term_reason 等结构化条件。
curl https://tob.wenshucha.com/api/v1/healthcurl -X POST https://tob.wenshucha.com/api/v1/cases/search \
-H "X-API-Key: wsc_trial_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"q": "经济性裁员",
"province": "北京市",
"term_reason": "layoff"
}'curl -H "X-API-Key: wsc_trial_xxxxxxxxxxxxxxxx" \
"https://tob.wenshucha.com/api/v1/fulltext?q=不可抗力&province=北京市&pageSize=20"curl -X POST https://tob.wenshucha.com/api/v1/fulltext \
-H "X-API-Key: wsc_trial_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"q": "不可抗力",
"province": "北京市",
"pageSize": 20
}'fulltext 翻页口径:pageSize 上限 50(超出按 50 处理并在 _meta.param_note 说明),page × pageSize ≤ 10000(pageSize=20 时最多到第 500 页); 越过窗口返回 window_exceeded: true + max_page,不是该条件下没有文书,请加 province / cause / court / 年份缩小范围后重新翻。 两个参数须为 ≥1 的整数,写错会返回 400 bad_param 而非空结果。 判断是否还有下一页请用 raw_count(去重前条数),不要用 count。
fulltext 检索口径(读数前必看):四条口径响应里都有对应说明字段,程序对接请直接读它们,不要按字面假设。
total 恒为 10000 并置 total_is_capped: true(见 _meta.total_note),应读作「10000+」;要精确计数请加 province / cause / court / 年份缩小范围。q=祖国宏 会命中「尚祖国、陈宏哲」这类拆字组合, 多数结果并不含该姓名(见 _meta.match_note)。需精确到人请加 party=<姓名>——但它只在本页结果内做精确子串过滤,total 仍是上游未过滤口径,本页余 0 条不代表全库无此人。q 时按相关度打分排序,不带 q 的纯条件过滤则按裁判日期倒序。 本次实际口径见顶层 sort 字段(relevance / judgement_date_desc)与 _meta.sort_note,别写死假设。cases 已按案号 + 标题归一(见 _meta.dedup),故 count(去重后)常小于 raw_count(去重前)。q=利息 一页 37 条里 27 条空正文(73%),而 劳动争议 / 离婚 / 工伤 / 交通事故 各 50 条则一条不缺。别按一个全局比例做预算,请按每次响应实测。每条附 body_text_len(正文去首尾空白后的字符数)与 has_full_text,顶层 full_text_missing 为本页空正文条数(另见 _meta.full_text_note)——需要「必须带全文」的样本请据此过滤。 注意正文短不等于缺失(调解书 / 裁定书本就短),故仅空正文才判 has_full_text=false,长度阈值由你自定。curl -H "X-API-Key: wsc_trial_xxxxxxxxxxxxxxxx" \
"https://tob.wenshucha.com/api/v1/fulltext?q=祖国宏&party=祖国宏&pageSize=50"
# 响应含 party_filtered_out(本页滤掉几条)与 _meta.party_notecases/search 翻页口径:同样支持 page + pageSize(上限 50,默认 20),响应回带 count / page / pageSize / max_page;越过 max_page 返回 page_exceeded: true,非法值返回 400 bad_param。注意本端点单次最多取按裁判日期倒序的 最近 2000 条作为统计与翻页样本:命中过多时 stats.n_cases 恒为 2000 并置 n_cases_is_capped: true,该值应读作「2000+」而不是真实命中数, 想要更有代表性的统计请用 province / reason / term_reason / 年份缩小范围。
curl -H "X-API-Key: wsc_trial_xxxxxxxxxxxxxxxx" \
"https://tob.wenshucha.com/api/v1/stats?dimension=term_reason"MCP server 走 stdio,把检索能力变成 AI 助手的工具。 安装一次,模型自动看到 search_cases /get_case /case_stats 三个 tool。
git clone https://github.com/wenshucha/wenshucha-mcp ~/wenshucha-mcp
cd ~/wenshucha-mcp && npm install{
"mcpServers": {
"wenshucha": {
"command": "node",
"args": ["/Users/<you>/wenshucha-mcp/bin/wenshucha-mcp.mjs"],
"env": { "WENSHUCHA_API_KEY": "wsc_trial_xxxxxxxxxxxxxxxx" }
}
}
}{
"mcpServers": {
"wenshucha": {
"command": "node",
"args": ["/Users/<you>/wenshucha-mcp/bin/wenshucha-mcp.mjs"],
"env": { "WENSHUCHA_API_KEY": "wsc_trial_xxxxxxxxxxxxxxxx" }
}
}
}claude mcp add wenshucha \
--env WENSHUCHA_API_KEY=wsc_trial_xxxxxxxxxxxxxxxx \
-- node /Users/<you>/wenshucha-mcp/bin/wenshucha-mcp.mjsREST,JSON in / out。所有写操作均无,只读。
| Method | Path | Auth | 说明 |
|---|---|---|---|
| GET | /api/v1/health | (无) | 服务健康检查。 |
| POST | /api/v1/cases/search | X-API-Key | 混合检索:案情文本 + 结构化字段 → Top 20 类案 + 金额分位 + 胜诉率 + 关键裁判因素。 |
| GET / POST | /api/v1/fulltext | X-API-Key | 全库判决全文检索(1.6 亿+ 裁判文书):关键词全文检索,命中判决书正文并高亮,可叠加 province / cause / court / yearFrom / yearTo,返回含 body_text 判决全文。GET 走 query string,POST 走同名字段的 JSON body。 |
| GET | /api/v1/cases/{doc_id} | X-API-Key | 依 doc_id 取单条判决详情。两种 doc_id 都认:cases/search 返回的样本库 id(32 位十六进制),以及 fulltext 返回的全量库 id(形如 2025:13fdca…,带分片前缀)。全量库条目当前 source_url 为 null,用 case_no + court + judgement_date 回裁判文书网自行核对。 |
| GET | /api/v1/stats?dimension=province | X-API-Key | 按维度切片聚合(省份 / 解雇原因 / 工龄分桶)。 |
每个数字都来自真实判决统计,不是模型推测。每条结果挂中国裁判文书网原文链接。
工龄、月薪、解雇原因、判付金额、胜负 —— 规则引擎抽取,直接可查询,不用自己再清洗。