Korean Court Precedent Full-Text API (MOLEG + KCOMWEL industrial-accident cases)
Locally built API exposing 35,161 precedents (30,814 with full judgment text), no key required. Provides case-name search (/api/prec?q=), full-text FTS (/api/prec/search?q=), detail (/api/prec/{case_id}), full text (/api/prec/{case_id}/text) and stats (/api/prec/stats). Use case_id as the primary identifier; case numbers may be duplicated.
⚡ Precedent search quick call
GET /api/prec/search?q=severance&limit=5
Use this first for precedent search. q = body FTS; case-name only: /api/prec?q=. No key required, 35,161 cases / 30,814 full texts. Use the returned case_id with /api/prec/{case_id}/text for the judgment text.
What agents get
- case name, case number, court, decision date, category, holding, summary, referenced statutes, full judgment text, official source URL (law.go.kr precInfo)
precedent search and citation for labor, real-estate and industrial-accident disputes
Use cases
- search severance pay, unfair dismissal, lease and deposit-return precedents
- cite judgment text and holdings
- look up industrial accident and employment insurance precedents
Registered APIs (5)
Precedent list / case-name search prec_list
q is a case-name LIKE search; use prec_search for body search. Sorted by latest decision date.
qOptional — case-name substring e.g.leasecategoryOptional — 부동산 / 노동법 / 고용·산재 e.g.노동법courtOptional e.g.Supreme CourtfromOptional — decision date from (YYYY-MM-DD) e.g.2025-01-01toOptional — decision date to (YYYY-MM-DD) e.g.2026-10-21bodyOptional — only cases with full text e.g.1limitOptional — max 50 e.g.20offsetOptional e.g.0
Returns: total, items[](case_id, case_number, court, decision_date, date_known, case_name, category, body_status, text_len, data_source)
Rate limit: 86,400 calls/day (60 requests/min)
Judgment body FTS search prec_search
q is a body keyword (1-50 chars). count = items in this response, total = all matches. Trigram OR may include low-relevance hits.
qRequired — body keyword e.g.severance paylimitOptional — max 30 e.g.10
Returns: count, total, items[](case_id, case_number, court, decision_date, date_known, case_name, category, body_status, snippet), cached
Rate limit: 86,400 calls/day (60 requests/min)
Precedent detail prec_detail
case_id first; a case number also resolves but may be duplicated.
case_idRequired — numeric case_id or case number e.g.606507
Returns: case_number, court, decision_date, date_known, category, holding, summary, referenced_laws, source_url, body_status, judgment_chars, endpoints{text_json,text_plain}
Rate limit: 86,400 calls/day (60 requests/min)
Judgment full text prec_text
404 body_not_available when the source does not provide the text. No display-length cap.
case_idRequired e.g.606507formatOptional — json or text e.g.json
Returns: case_id, case_number, court, decision_date, date_known, source_url, body_status, chars, text
Rate limit: 86,400 calls/day (60 requests/min)
Corpus stats prec_stats
counts, full-text coverage, characters, per-source counts
Returns: cases, with_text, chars, last_collected_at, sources, db_size_bytes
Rate limit: 86,400 calls/day (60 requests/min)
Auth · pricing · terms
| Auth | none — No key required. Served directly from the internal database. |
|---|---|
| Pricing | free |
| License | Public data: attribution required |
| Redistribution | allowed with attribution |
| Terms checked | 2026-10-21 |
| Apply | No key needed — call /api/prec directly Portal |
| Status | Active |
| Last checked | 2026-10-21 |
How agents call
Call through our proxy. Start with the keyless quick API shown above (no token needed). For the Korean law service, target=law is served from our internal law DB with no token. For the keyed proxy, send X-Agent-Token to POST /agencatalog/api/call with ('service', 'endpoint', 'params'). Token issuance is not self-service; see /agencatalog/register/. The full service list is at /agencatalog/api/services.json.
Machine-readable JSON schema
{
"service": "prec-kr",
"name": "Korean Court Precedent Full-Text API (MOLEG + KCOMWEL industrial-accident cases)",
"provider": "Ministry of Government Legislation (law.go.kr) · Korea Workers' Compensation & Welfare Service",
"apis": [
{
"id": "prec_list",
"name": "Precedent list / case-name search",
"params": [
{
"name": "q",
"required": false,
"example": "lease",
"desc": "case-name substring"
},
{
"name": "category",
"required": false,
"example": "노동법",
"desc": "부동산 / 노동법 / 고용·산재"
},
{
"name": "court",
"required": false,
"example": "Supreme Court"
},
{
"name": "from",
"required": false,
"example": "2025-01-01",
"desc": "decision date from (YYYY-MM-DD)"
},
{
"name": "to",
"required": false,
"example": "2026-10-21",
"desc": "decision date to (YYYY-MM-DD)"
},
{
"name": "body",
"required": false,
"example": "1",
"desc": "only cases with full text"
},
{
"name": "limit",
"required": false,
"example": "20",
"desc": "max 50"
},
{
"name": "offset",
"required": false,
"example": "0"
}
]
},
{
"id": "prec_search",
"name": "Judgment body FTS search",
"params": [
{
"name": "q",
"required": true,
"example": "severance pay",
"desc": "body keyword"
},
{
"name": "limit",
"required": false,
"example": "10",
"desc": "max 30"
}
]
},
{
"id": "prec_detail",
"name": "Precedent detail",
"params": [
{
"name": "case_id",
"required": true,
"example": "606507",
"desc": "numeric case_id or case number"
}
]
},
{
"id": "prec_text",
"name": "Judgment full text",
"params": [
{
"name": "case_id",
"required": true,
"example": "606507"
},
{
"name": "format",
"required": false,
"example": "json",
"desc": "json or text"
}
]
},
{
"id": "prec_stats",
"name": "Corpus stats",
"params": []
}
],
"proxy_call": "POST /agencatalog/api/call",
"attribution": "Source: law.go.kr (MOLEG) · KCOMWEL industrial-accident precedents"
}
Error handling
All responses are JSON. On failure the proxy returns {"ok": false, "error": {"code", "message"}}. Handle by code:
| invalid_token | 403. Missing or invalid X-Agent-Token. Get a token via /agencatalog/register/ and resend with the header. |
|---|---|
| throttle | 429. One-call-per-second limit exceeded. Wait retry_after seconds and retry sequentially (no parallel calls). |
| agent_limit / institution_limit | 429. Daily quota exceeded. Resume after retry_after_seconds. |
| upstream_limit | 429. The upstream provider returned an over-quota error. Retry later. |
| unknown_service | 404. Unregistered service. Check the exact service/endpoint name in services.json. |
| not_found | 404. Bad path. Confirm you use POST /agencatalog/api/call. |
Notes
- API keys live only on the server. Clients asking for keys directly cannot use this route.
- Each provider has a daily quota. Over-quota calls return 429 and are blocked.
- Provider outages or over-quota errors are passed through. Check the error field before retrying.
- Attribution: Source: law.go.kr (MOLEG) · KCOMWEL industrial-accident precedents
Last checked: 2026-10-21
AI Knowledge Hub