court-auction-notice-search
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCourt Auction Notice Search
法院拍卖公告查询
What this skill does
本技能的功能
대한민국 법원이 운영하는 공식 법원경매정보 사이트() 의 매각공고와 사건정보를 에이전트가 활용할 수 있는 JSON 형태로 변환해서 돌려준다.
courtauction.go.kr- 공식 OPEN API가 없어 사이트 내부의 WebSquare JSON XHR endpoint를 그대로 호출한다.
- 1차 transport 는 직접 HTTP, 차단되거나 5xx 가 떨어질 때만 Playwright fallback 으로 전환한다 (또는
rebrowser-playwright가 있을 때만).playwright-core - 사이트는 IP 단위 봇 차단 이 매우 공격적이다 (16회/30초 정도면 1시간 차단). 이 패키지는 호출 간 최소 2초 jitter, 세션당 호출 budget(기본 10회), 즉시 throw 로 보수적으로 동작한다.
data.ipcheck === false - 참고용 도구다. 실제 입찰 전에는 반드시 법원 원문 매각공고를 다시 확인해야 한다.
将韩国法院运营的官方法院拍卖信息网站()的拍卖公告和案件信息转换为Agent可使用的JSON格式返回。
courtauction.go.kr- 由于官方没有开放API,直接调用网站内部的WebSquare JSON XHR端点。
- 首次传输使用直接HTTP调用,仅在被封禁或返回5xx错误时切换为Playwright降级方案(仅当安装了或
rebrowser-playwright时可用)。playwright-core - 该网站对IP级别的机器人封禁非常严格(约30秒内调用16次就会被封禁1小时)。本包采用保守策略:调用间隔至少2秒随机延迟,每个会话的调用预算(默认10次),若检测到则立即抛出错误。
data.ipcheck === false - 本工具仅作参考使用。实际竞拍前务必再次查看法院原版拍卖公告。
When to use
使用场景
- "오늘/내일 어디서 부동산 경매 열려?"
- "서울중앙지방법원 2026-04-27 매각공고 보여줘"
- "기일입찰 vs 기간입찰만 나눠서 보여줘"
- "이 매각공고 안의 사건번호/용도/주소/감정평가액 다 보여줘"
- "사건번호 2024타경100001 진행 상황 알려줘"
- "법원사무소 코드 표 줘"
- “今天/明天哪里有不动产拍卖?”
- “给我看首尔中央地方法院2026-04-27的拍卖公告”
- “只分开展示定期竞拍和期间竞拍”
- “给我展示这条拍卖公告里的案件编号/用途/地址/评估价”
- “告诉我案件编号2024타경100001的进展情况”
- “给我法院办事处代码表”
When not to use
不适用场景
- 동산(자동차·중기) 경매 (이번 v1 범위 밖)
- 자유 조건검색(지역·용도·가격대·면적·유찰횟수) — Workflow C 별도 follow-up 이슈에서 다룬다
- 특정 매각기일 날짜의 모든 법원 일정을 한 번에 (Workflow D 별도 follow-up 이슈)
- 매각물건 사진(전경/개황/내부) URL 노출 (별도 follow-up 이슈)
- 매각물건명세서 / 현황조사서 / 감정평가서 PDF 다운로드 (별도 follow-up 이슈)
- 입찰서 자동 작성·자동 제출 (지원하지 않는다, 입찰은 반드시 법원에서 사람이 직접)
- 动产(汽车·重型机械)拍卖(不在本次v1版本范围内)
- 自由条件搜索(地区·用途·价格区间·面积·流拍次数)——将在Workflow C后续议题中处理
- 一次性获取特定拍卖日期的所有法院日程——将在Workflow D后续议题中处理
- 展示拍卖物品照片(外观·概况·内部)URL——后续议题处理
- 下载拍卖物品明细表/现状调查报告/评估报告PDF——后续议题处理
- 自动撰写·提交竞拍书(不支持,竞拍必须由本人亲自到法院办理)
Inputs
输入参数
- — 매각기일 (YYYY-MM-DD 또는 YYYYMMDD). 필수.
date - — 법원사무소코드 (예:
courtCode= 서울중앙지방법원). 비우면 전체.B000210또는getCourtCodes()로 받아온다.codes courts - —
bidType(= 기일입찰, code 000331) 또는date(= 기간입찰, code 000332). 빈값이면 둘 다.period - — 사건번호.
caseNumber형식 권장.2024타경100001도 받아서2024-100001로 정규화한다.2024타경100001
- — 拍卖日期(YYYY-MM-DD或YYYYMMDD)。必填项。
date - — 法院办事处代码(例如:
courtCode= 首尔中央地方法院)。留空则查询全部。可通过B000210或getCourtCodes()获取。codes courts - —
bidType(=定期竞拍,代码000331)或date(=期间竞拍,代码000332)。留空则同时查询两种类型。period - — 案件编号。推荐使用
caseNumber格式。2024타경100001格式也会被接收并规范化为2024-100001。2024타경100001
Mandatory honest framing
必须告知用户的重要事项
이 스킬은 사용자에게 다음 사실을 항상 알려야 한다.
- 데이터는 법원경매정보 사이트의 공개 정보를 그대로 옮긴 것이며 실제 입찰 전에 법원 원문을 재확인해야 한다.
- 사이트는 자동화 호출에 매우 민감해서 빠른 연속 조회 시 IP가 1시간 차단될 수 있다. 차단되면 같은 IP에서는 약 1시간을 기다려야 한다.
- 가격(감정평가액·최저매각가격)·매각기일·매각장소는 공고 시점 기준 이며 정정·취하·연기로 변경될 수 있다 (,
correctionCount필드를 참고).cancellationCount - 본 스킬은 read-only다. 입찰 자체는 자동화하지 않는다.
本技能必须始终告知用户以下事实:
- 数据直接来源于法院拍卖信息网站的公开信息,实际竞拍前务必再次确认法院原版公告。
- 该网站对自动化调用非常敏感,快速连续查询可能导致IP被封禁1小时。被封禁后需等待约1小时才能恢复。
- 价格(评估价·最低拍卖价)·拍卖日期·拍卖地点均以公告发布时为准,可能因更正·撤销·延期而变更(可参考、
correctionCount字段)。cancellationCount - 本技能为只读模式。不支持竞拍自动化操作。
Official surfaces
官方入口
- 법원경매정보 메인:
https://www.courtauction.go.kr - 부동산매각공고 진입:
https://www.courtauction.go.kr/pgj/index.on?w2xPath=/pgj/ui/pgj100/PGJ143M01.xml&pgjId=143M01 - 경매사건검색 진입:
https://www.courtauction.go.kr/pgj/index.on?w2xPath=/pgj/ui/pgj100/PGJ159M00.xml&pgjId=159M00 - 직접 호출 endpoint (이 스킬이 사용하는 것):
- — 매각공고 목록
POST /pgj/pgj143/selectRletDspslPbanc.on - — 매각공고 상세 (사건/물건 펼치기)
POST /pgj/pgj143/selectRletDspslPbancDtl.on - — 사건 단건 조회
POST /pgj/pgj15A/selectAuctnCsSrchRslt.on - — 법원사무소코드 전체
POST /pgj/pgjComm/selectCortOfcCdLst.on
- 法院拍卖信息主页:
https://www.courtauction.go.kr - 不动产拍卖公告入口:
https://www.courtauction.go.kr/pgj/index.on?w2xPath=/pgj/ui/pgj100/PGJ143M01.xml&pgjId=143M01 - 拍卖案件搜索入口:
https://www.courtauction.go.kr/pgj/index.on?w2xPath=/pgj/ui/pgj100/PGJ159M00.xml&pgjId=159M00 - 本技能调用的直接端点:
- — 拍卖公告列表
POST /pgj/pgj143/selectRletDspslPbanc.on - — 拍卖公告详情(展开案件/物品)
POST /pgj/pgj143/selectRletDspslPbancDtl.on - — 单个案件查询
POST /pgj/pgj15A/selectAuctnCsSrchRslt.on - — 全部法院办事处代码
POST /pgj/pgjComm/selectCortOfcCdLst.on
Workflow A — 매각공고 → 사건/물건 펼치기
工作流A — 拍卖公告 → 展开案件/物品
- 사용자에게 매각기일(YYYY-MM-DD) 과 (선택) 법원·입찰구분을 받는다.
- 호출 → 그 날·그 법원의 매각공고 카드 목록.
searchSaleNotices({ date, courtCode, bidType }) - 사용자가 카드를 고르면 카드 객체(또는 )를 그대로
raw에 넘긴다.getSaleNoticeDetail(notice) - 응답의 가
items[],caseNumber,usage,address,appraisedPrice,minimumSalePrice를 가진다 (이슈 본문이 명시한 4필드 모두 포함).remarks - 가격은 원 단위 정수다. 사용자에게 보여줄 때는 한국식 천단위 콤마 + 억/만 단위 환산을 같이 제시한다.
- 向用户获取**拍卖日期(YYYY-MM-DD)**以及(可选)法院·竞拍类型。
- 调用→ 获取当日·对应法院的拍卖公告卡片列表。
searchSaleNotices({ date, courtCode, bidType }) - 用户选择卡片后,将卡片对象(或)直接传入
raw。getSaleNoticeDetail(notice) - 响应的包含
items[]、caseNumber、usage、address、appraisedPrice、minimumSalePrice(包含议题中明确的4个字段)。remarks - 价格为韩元单位整数。展示给用户时需同时提供韩国式千位逗号+亿/万单位换算。
Workflow B — 사건번호 직접 조회
工作流B — 直接查询案件编号
- 사용자에게 법원사무소코드 + 사건번호(2024타경100001) 를 받는다.
- 호출.
getCaseByCaseNumber({ courtCode, caseNumber }) - 면 사건이 존재하지 않거나 비공개. 사건번호 형식·법원이 맞는지 사용자에게 다시 확인한다.
found:false / status:204 - 면
found:true(사건명·접수일·청구액·재판부·진행상태),caseInfo(매각목적물 — 주소/배당요구종기),items[](매각기일별 최저가/감정가/결과),schedule[],claimDeadline,relatedCases가 채워진다.stakeholders
- 向用户获取法院办事处代码 + 案件编号(2024타경100001)。
- 调用。
getCaseByCaseNumber({ courtCode, caseNumber }) - 若,则表示案件不存在或未公开。需提示用户确认案件编号格式·法院是否正确。
found:false / status:204 - 若,则
found:true(案件名称·受理日期·请求金额·审判庭·进展状态)、caseInfo(拍卖标的物 — 地址/分配要求种类)、items[](各拍卖日期的最低价/评估价/结果)、schedule[]、claimDeadline、relatedCases字段会被填充。stakeholders
Throttling and call-budget rules
限流与调用预算规则
- 호출 간 최소 2초 (기본). 더 늘리려면 .
--min-delay-ms 3000 - 기본 세션 budget 은 10회. 더 많은 조회가 필요하면 새 세션을 열거나 ()
new CourtAuctionHttpClient을 명시적으로 늘린다.maxCallsPerSession - 차단()을 만나면
data.ipcheck === false에러를 즉시 throw 하고 멈춘다. 자동 retry 하지 않는다 (차단 연장 위험).BLOCKED - 차단된 IP는 약 1시간 후 자연 복구된다. 그 사이에는 다른 IP/네트워크에서 작업하거나 사람이 브라우저로 사이트에 접속해서 차단 해제 화면을 거친다.
- 调用间隔至少2秒(默认)。如需延长,可设置。
--min-delay-ms 3000 - 默认会话预算为10次。若需要更多查询,可开启新会话()或显式增加
new CourtAuctionHttpClient。maxCallsPerSession - 检测到封禁()时,立即抛出
data.ipcheck === false错误并停止操作。不自动重试(避免延长封禁时间)。BLOCKED - 被封禁的IP约1小时后自动恢复。恢复期间可使用其他IP/网络操作,或手动通过浏览器访问网站完成解封流程。
Node.js example
Node.js示例
js
const {
searchSaleNotices,
getSaleNoticeDetail,
getCaseByCaseNumber,
getCourtCodes
} = require("court-auction-notice-search");
async function main() {
const courts = await getCourtCodes();
console.log(`법원사무소 ${courts.count}개 로드됨`);
const notices = await searchSaleNotices({
date: "2026-04-27",
courtCode: "B000210",
bidType: "date"
});
console.log(`서울중앙지방법원 매각공고 ${notices.count}건`);
if (notices.items.length > 0) {
const detail = await getSaleNoticeDetail(notices.items[0]);
for (const item of detail.items) {
console.log(
`${item.caseNumber} (${item.usage}) — 감정 ${item.appraisedPrice}원 / 최저 ${item.minimumSalePrice}원`
);
console.log(` 주소: ${item.address}`);
}
}
const caseInfo = await getCaseByCaseNumber({
courtCode: "B000210",
caseNumber: "2024타경100001"
});
if (caseInfo.found) {
console.log(`사건명: ${caseInfo.caseInfo.caseName}`);
console.log(`매각기일 횟수: ${caseInfo.schedule.length}`);
}
}
main().catch((error) => {
if (error.code === "BLOCKED") {
console.error("[BLOCKED] 사이트가 1시간 차단했습니다. 다른 IP에서 다시 시도하거나 1시간 뒤 재시도하세요.");
} else {
console.error(error);
}
process.exitCode = 1;
});js
const {
searchSaleNotices,
getSaleNoticeDetail,
getCaseByCaseNumber,
getCourtCodes
} = require("court-auction-notice-search");
async function main() {
const courts = await getCourtCodes();
console.log(`加载法院办事处 ${courts.count}个`);
const notices = await searchSaleNotices({
date: "2026-04-27",
courtCode: "B000210",
bidType: "date"
});
console.log(`首尔中央地方法院拍卖公告 ${notices.count}件`);
if (notices.items.length > 0) {
const detail = await getSaleNoticeDetail(notices.items[0]);
for (const item of detail.items) {
console.log(
`${item.caseNumber} (${item.usage}) — 评估价 ${item.appraisedPrice}韩元 / 最低价 ${item.minimumSalePrice}韩元`
);
console.log(` 地址: ${item.address}`);
}
}
const caseInfo = await getCaseByCaseNumber({
courtCode: "B000210",
caseNumber: "2024타경100001"
});
if (caseInfo.found) {
console.log(`案件名称: ${caseInfo.caseInfo.caseName}`);
console.log(`拍卖日期次数: ${caseInfo.schedule.length}`);
}
}
main().catch((error) => {
if (error.code === "BLOCKED") {
console.error("[BLOCKED] 网站已封禁IP1小时。请更换IP重试或1小时后再尝试。");
} else {
console.error(error);
}
process.exitCode = 1;
});CLI example
CLI示例
bash
undefinedbash
undefined1. 법원사무소 코드표
1. 法院办事处代码表
court-auction-notice-search codes courts --pretty | head -40
court-auction-notice-search codes courts --pretty | head -40
2. 입찰구분 (정적 코드)
2. 竞拍类型(静态代码)
court-auction-notice-search codes bid-types --pretty
court-auction-notice-search codes bid-types --pretty
3. 매각공고 목록
3. 拍卖公告列表
court-auction-notice-search notices --date 2026-04-27 --court-code B000210 --bid-type date --pretty
court-auction-notice-search notices --date 2026-04-27 --court-code B000210 --bid-type date --pretty
4. 매각공고 상세 — list 응답의 row 의 raw 필드를 그대로 detail 호출에 사용한다.
4. 拍卖公告详情 — 将列表响应中row的raw字段直接传入detail调用
(CLI 단발 호출에서는 list -> detail 으로 결과를 파이프할 수 있도록 jq 등을 함께 사용)
(单次CLI调用时,可使用jq等工具将list结果管道传递给detail)
5. 사건번호 직접 조회
5. 直接查询案件编号
court-auction-notice-search case --court-code B000210 --case-number "2024타경100001" --pretty
undefinedcourt-auction-notice-search case --court-code B000210 --case-number "2024타경100001" --pretty
undefinedBlock / Error handling
封禁/错误处理
- —
error.code === "BLOCKED". 1시간 대기 후 다른 IP에서 재시도. 사용자에게 차단 사실과 대기 안내를 그대로 전달한다.data.ipcheck === false - — 세션 budget 초과. 의도적인 안전장치다. 정말 필요하면
error.code === "BUDGET_EXCEEDED"같이 늘리지만 차단 위험을 함께 안내한다.--max-calls 20 - — 사이트가 일반적인 에러를 돌려준 경우. 세션 만료 또는 잘못된 jdbnCd 가 가장 흔한 원인. warmup 부터 다시.
error.code === "UPSTREAM_ERROR" - — 타임아웃/연결 실패.
error.code === "NETWORK_ERROR" - — Playwright fallback 을 명시적으로 쓰려는데 모듈이 깔려있지 않음.
error.code === "PLAYWRIGHT_UNAVAILABLE"또는npm i rebrowser-playwright로 해결.npm i playwright-core
- —
error.code === "BLOCKED"。等待1小时后更换IP重试。需直接告知用户封禁事实及等待提示。data.ipcheck === false - — 会话预算超出。这是有意设置的安全机制。若确实需要,可通过
error.code === "BUDGET_EXCEEDED"等方式增加预算,但需同时告知用户封禁风险。--max-calls 20 - — 网站返回普通错误。最常见原因是会话过期或jdbnCd错误。需从预热步骤重新开始。
error.code === "UPSTREAM_ERROR" - — 超时/连接失败。
error.code === "NETWORK_ERROR" - — 尝试使用Playwright降级方案但未安装对应模块。可通过
error.code === "PLAYWRIGHT_UNAVAILABLE"或npm i rebrowser-playwright解决。npm i playwright-core
Done when
完成标准
- 사용자에게 IP 차단 위험과 "참고용·실제 입찰 전 법원 원문 재확인" 고지를 했다.
- 매각공고를 펼쳐서 가 채워진 JSON을 돌려줬다.
caseNumber/usage/address/appraisedPrice/minimumSalePrice - 사건번호로 직접 조회한 경우, 일 때 사용자가 후속 조치를 알 수 있도록 안내했다.
found:false - 차단 발생 시 자동 재시도하지 않고 즉시 멈췄다.
- 작업 후 호출 budget 이 남아있는지 사용자에게 알려서 추가 호출 여지를 명시했다.
- 已告知用户IP封禁风险及“仅供参考·实际竞拍前需确认法院原版公告”的提示。
- 已展开拍卖公告并返回包含的JSON数据。
caseNumber/usage/address/appraisedPrice/minimumSalePrice - 直接查询案件编号时,若,已提示用户可采取的后续措施。
found:false - 封禁发生时未自动重试,立即停止操作。
- 操作完成后告知用户剩余调用预算,明确是否可进行额外查询。