curl --request POST \
--url https://api.croma.run/jp/courts-jp/rulings-search/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "解雇権濫用",
"collection": "supreme"
}
'import requests
url = "https://api.croma.run/jp/courts-jp/rulings-search/v1"
payload = {
"query": "解雇権濫用",
"collection": "supreme"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({query: '解雇権濫用', collection: 'supreme'})
};
fetch('https://api.croma.run/jp/courts-jp/rulings-search/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.croma.run/jp/courts-jp/rulings-search/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => '解雇権濫用',
'collection' => 'supreme'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.croma.run/jp/courts-jp/rulings-search/v1"
payload := strings.NewReader("{\n \"query\": \"解雇権濫用\",\n \"collection\": \"supreme\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.croma.run/jp/courts-jp/rulings-search/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"解雇権濫用\",\n \"collection\": \"supreme\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/jp/courts-jp/rulings-search/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"解雇権濫用\",\n \"collection\": \"supreme\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"as_of": "<string>",
"query": "<string>",
"collection": "<string>",
"court": "<string>",
"case_number": "<string>",
"year": 123,
"from_date": "<string>",
"to_date": "<string>",
"total": 123,
"total_is_exact": true,
"page": 123,
"per_page": 123,
"total_pages": 123,
"count": 123,
"results": [
{
"id": "<string>",
"collections": [
"<string>"
],
"case_number": "<string>",
"case_year": 123,
"title": "<string>",
"ruling_date": "<string>",
"ruling_date_japanese": "<string>",
"year": 123,
"court": "<string>",
"branch": "<string>",
"department": "<string>",
"judgment_type": "<string>",
"result": "<string>",
"reporter": "<string>",
"lower_court": "<string>",
"lower_case_number": "<string>",
"lower_ruling_date": "<string>",
"lower_result": "<string>",
"holding": "<string>",
"gist": "<string>",
"statutes": "<string>",
"field": "<string>",
"right_type": "<string>",
"suit_type": "<string>",
"ip_case_kind": "<string>",
"invention": "<string>",
"issues": "<string>",
"appeal": "<string>",
"appeal_result": "<string>",
"ip_result": "<string>",
"text_status": "ok",
"official_url": "<string>",
"document_url": "<string>",
"source_document_url": "<string>"
}
]
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}Courts of Japan Rulings Search
Search the case law the courts of Japan publish: about 68,000 rulings of the Supreme Court, the high courts and the lower courts since 1947, across the administrative, labour and intellectual property collections too. Free text in Japanese matches the case name, the court’s summary, the statutes cited and the full text. Filter by collection, court (matched from the start of its name), case_number, year and the ruling date (from_date/to_date). Each result carries the court’s document, kept by Croma, and a link to the ruling’s page at the courts. Served by Croma (as_of says how current the data is).
Dataset endpoint: answers from the whole source in milliseconds and carries as_of.
curl --request POST \
--url https://api.croma.run/jp/courts-jp/rulings-search/v1 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"query": "解雇権濫用",
"collection": "supreme"
}
'import requests
url = "https://api.croma.run/jp/courts-jp/rulings-search/v1"
payload = {
"query": "解雇権濫用",
"collection": "supreme"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({query: '解雇権濫用', collection: 'supreme'})
};
fetch('https://api.croma.run/jp/courts-jp/rulings-search/v1', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.croma.run/jp/courts-jp/rulings-search/v1",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'query' => '解雇権濫用',
'collection' => 'supreme'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.croma.run/jp/courts-jp/rulings-search/v1"
payload := strings.NewReader("{\n \"query\": \"解雇権濫用\",\n \"collection\": \"supreme\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.croma.run/jp/courts-jp/rulings-search/v1")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"query\": \"解雇権濫用\",\n \"collection\": \"supreme\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.croma.run/jp/courts-jp/rulings-search/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"query\": \"解雇権濫用\",\n \"collection\": \"supreme\"\n}"
response = http.request(request)
puts response.read_body{
"data": {
"as_of": "<string>",
"query": "<string>",
"collection": "<string>",
"court": "<string>",
"case_number": "<string>",
"year": 123,
"from_date": "<string>",
"to_date": "<string>",
"total": 123,
"total_is_exact": true,
"page": 123,
"per_page": 123,
"total_pages": 123,
"count": 123,
"results": [
{
"id": "<string>",
"collections": [
"<string>"
],
"case_number": "<string>",
"case_year": 123,
"title": "<string>",
"ruling_date": "<string>",
"ruling_date_japanese": "<string>",
"year": 123,
"court": "<string>",
"branch": "<string>",
"department": "<string>",
"judgment_type": "<string>",
"result": "<string>",
"reporter": "<string>",
"lower_court": "<string>",
"lower_case_number": "<string>",
"lower_ruling_date": "<string>",
"lower_result": "<string>",
"holding": "<string>",
"gist": "<string>",
"statutes": "<string>",
"field": "<string>",
"right_type": "<string>",
"suit_type": "<string>",
"ip_case_kind": "<string>",
"invention": "<string>",
"issues": "<string>",
"appeal": "<string>",
"appeal_result": "<string>",
"ip_result": "<string>",
"text_status": "ok",
"official_url": "<string>",
"document_url": "<string>",
"source_document_url": "<string>"
}
]
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}{
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"details": {}
}
}Authorizations
Use Authorization: Bearer YOUR_API_KEY
Headers
Optional client-chosen key for this request (any string up to 255 characters, e.g. a UUID). Every Croma operation is an idempotent lookup: repeating a request with the same body returns the same result and creates nothing, so retrying after a timeout or network failure is always safe. The key is echoed back in the Idempotency-Key response header so you can correlate a retry with its first attempt. Each attempt that reaches the API counts against the rate limit.
255"0f8e9a42-6b7c-4d1e-9a3f-2c5d7e8f9a0b"
Body
Optional words, in Japanese, matched against the case name, the court's summary (判示事項, 裁判要旨), the statutes cited and the text of the ruling: 解雇権濫用, 過払金 返還. Two or more characters; every word must appear.
300Optional collection: supreme (最高裁判所判例集), high (高等裁判所判例集), lower (下級裁判所裁判例速報), administrative (行政事件裁判例集), labor (労働事件裁判例集), ip (知的財産裁判例集) or ip_high (知的財産高等裁判所). A ruling can sit in more than one.
, supreme, high, lower, administrative, labor, ip, ip_high Optional court as court names it, e.g. 最高裁判所第一小法廷, 東京高等裁判所, 大阪地方裁判所, matched from the start, so 最高裁判所 finds every bench of the Supreme Court.
80Optional case number as the court prints it, e.g. 平成21(オ)257 or 令和7(あ)868. Spaces and the width of the characters are ignored.
60Optional year the ruling was handed down (Gregorian). 0 searches every year.
0 <= x <= 2100Optional date filter in yyyy-mm-dd format.
Optional date filter in yyyy-mm-dd format.
1-based page number for paginated results.
1 <= x <= 1000Results per page (1-50).
1 <= x <= 50Response
Successful response
Show child attributes
Show child attributes