judgment-document-search
China Judgment Document Search
Search Chinese judgment documents by keywords, with an optional identity-number condition, and retrieve snippets and detail IDs.
Usage Cost
20 coins/call
Quick Start
Use a unified response envelope and call directly from your backend.
https://openapi.toolkk.com/v1/judgment-document-searchcURL Example
curl --request POST \
--url 'https://openapi.toolkk.com/v1/judgment-document-search' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: YOUR_API_KEY' \
--data '{\n "entityName": "上海南汇航卫集贸市场经营管理有限公司",\n "matchType": "0",\n "sign": "841ef7c95cd3a25b3187cf4aa193c016",\n "fl": "1"\n}'Python Example
import os
import requests
url = "https://openapi.toolkk.com/v1/judgment-document-search"
payload = {
"entityName": "上海南汇航卫集贸市场经营管理有限公司",
"matchType": "0",
"sign": "841ef7c95cd3a25b3187cf4aa193c016",
"fl": "1"
}
headers = {
"Content-Type": "application/json",
"X-API-Key": os.getenv("TOOLKK_API_KEY", "YOUR_API_KEY"),
}
response = requests.request("POST", url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
print(response.json())Go Example
package main
import (
"bytes"
"fmt"
"io"
"net/http"
)
func main() {
endpoint := "https://openapi.toolkk.com/v1/judgment-document-search"
payload := []byte("{\n \"entityName\": \"上海南汇航卫集贸市场经营管理有限公司\",\n \"matchType\": \"0\",\n \"sign\": \"841ef7c95cd3a25b3187cf4aa193c016\",\n \"fl\": \"1\"\n}")
req, err := http.NewRequest("POST", endpoint, bytes.NewBuffer(payload))
if err != nil {
panic(err)
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("X-API-Key", "YOUR_API_KEY")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
panic(err)
}
fmt.Println(string(body))
}Java Example
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ToolkkExample {
public static void main(String[] args) throws Exception {
String payload = "{\n \"entityName\": \"上海南汇航卫集贸市场经营管理有限公司\",\n \"matchType\": \"0\",\n \"sign\": \"841ef7c95cd3a25b3187cf4aa193c016\",\n \"fl\": \"1\"\n}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://openapi.toolkk.com/v1/judgment-document-search"))
.method("POST", HttpRequest.BodyPublishers.ofString(payload))
.header("Content-Type", "application/json")
.header("X-API-Key", "YOUR_API_KEY")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}PHP Example
<?php
$endpoint = 'https://openapi.toolkk.com/v1/judgment-document-search';
$payload = "{\n \"entityName\": \"上海南汇航卫集贸市场经营管理有限公司\",\n \"matchType\": \"0\",\n \"sign\": \"841ef7c95cd3a25b3187cf4aa193c016\",\n \"fl\": \"1\"\n}";
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => [
'Content-Type: application/json',
'X-API-Key: YOUR_API_KEY',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
if ($response === false) {
throw new RuntimeException(curl_error($ch));
}
curl_close($ch);
echo $response;Response Example
{
"count": 7,
"list": [
{
"content": "上海市第一中级人民法院\n判决书\n上海**集贸市场经营管理有限公司……",
"id": "C7BB8DA3C5F9A6551862F235EB3002C7"
}
]
}Examples illustrate the response structure. Actual results depend on the API response.
- Authentication
- Send X-API-Key in request headers
- Rate limit
- 60 req/min
- Timeout
- 10000 ms
Send your API Key in the X-API-Key header from your backend.
Check both HTTP status and business fields before treating a call as successful.
Use retries and backoff together with rate limits in high-frequency scenarios.
Request Fields
Send requests from your server with the key in the X-API-Key header.
Request Fields
Fields are read from the API schema. Missing descriptions and examples are marked as unspecified.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| entityId | string | No | 身份证号码 | Unspecified |
| entityName | string | Yes | 关键字,必填。支持按多个关键字查询,多个关键字之间用+分隔 | 上海南汇航卫集贸市场经营管理有限公司 |
| matchType | string | No | 匹配类型,0:模糊匹配;1:精确匹配.可选,默认模糊匹配 | 0 |
| sign | string | Yes | 调用当日签名:对 6tj4u 与调用日期 yyyyMMdd 拼接字符串计算 32 位 MD5。样例仅适用于 2026-10-09,跨日重新生成;不要把示例值作为默认常量。 | 841ef7c95cd3a25b3187cf4aa193c016 |
| fl | string | No | 是否显示高亮,0:不显示高亮;1:显示高亮.可选,默认显示高亮 | 1 |
Request Example
{
"entityName": "上海南汇航卫集贸市场经营管理有限公司",
"matchType": "0",
"sign": "841ef7c95cd3a25b3187cf4aa193c016",
"fl": "1"
}- Authentication
- Send X-API-Key in request headers
- Rate limit
- 60 req/min
- Timeout
- 10000 ms
Response Fields
Examples illustrate the response structure. Actual results depend on the API response.
Response Fields
Fields are read from the API schema. Missing descriptions and examples are marked as unspecified.
| Path | Type | Required | Description | Sample |
|---|---|---|---|---|
| count | integer | No | 数据源报告的结果总数,不保证等于本次 list 长度 | 7 |
| list | array | No | 本次返回记录;文档未提供分页请求字段 | Unspecified |
| list[] | object | Unspecified | Unspecified | Unspecified |
| list[].content | string | No | 检索文本摘要,可能含高亮标记;按非可信文本处理,不能直接执行 HTML | 上海市第一中级人民法院
判决书
上海**集贸市场经营管理有限公司…… |
| list[].id | string | No | 该类别配套详情查询的原始 ID,按字符串保存,不限制固定长度 | C7BB8DA3C5F9A6551862F235EB3002C7 |
Response Example
{
"count": 7,
"list": [
{
"content": "上海市第一中级人民法院\n判决书\n上海**集贸市场经营管理有限公司……",
"id": "C7BB8DA3C5F9A6551862F235EB3002C7"
}
]
}$.rc == '0000'API overview
Capabilities, use cases, limitations, and frequently asked questions.
API capabilities
Search Chinese judgment documents by keywords. The response contains a reported count and a list of snippets with original IDs for the corresponding document detail API. Fuzzy and exact matching and optional highlighting are supported. An optional identity-number condition is a search filter, not an identity verification service.
Use cases
Legal research tools can preview candidate documents before opening a selected detail. Company information pages can collect name matches for manual review. Applications handle document classification, deduplication and party identification themselves. A snippet match does not establish liability, an adverse judgment or a complete litigation history.
Calling and interpreting results
Send entityName and a sign generated for the calling date using POST. Multiple keywords may be joined by the documented plus separator. Select matching with matchType and highlighting with fl; entityId is the optional identity-number condition. Check the business result code before reading count and list. Pass each original id to the matching judgment detail API, keeping it distinct from a case number or announcement ID.
Scope and limitations
Snippets can be truncated or contain line breaks and highlighting. Display them safely and retain the detail link. Coverage, update intervals and current legal effectiveness are not guaranteed. The count may exceed the list length; the request has no page, judgment date or court selector. Empty results apply only to the submitted conditions, while service errors mean the query failed.
Frequently asked questions
Is the full judgment returned?
The list defines content snippets and id. Use the corresponding detail API and assess the actual text received.