|
---
name: gongsijiga-search
description: |
대한민국 국토교통부가 매년 공시하는 "개별공시지가"(원/㎡) 조회.
지번 단위 토지의 정부 공시 단가로, 재산세·종부세·양도세 등
세금 산정의 법적 기준이다. **시세/실거래가가 아니다.**
Use when the user asks for 공시지가, 개별공시지가, 토지 공시단가,
세무 계산용 토지 단가, or "이 땅 공시지가 얼마야".
Do NOT use for 시세, 실거래가, 매매가, 호가, 공동주택가격
(those need a different data source).
license: MIT
metadata:
category: real-estate
locale: ko-KR
phase: v1
---
# 개별공시지가 조회
## What this skill does
한국 국토교통부 부동산공시가격알리미(realtyprice.kr)에서 특정 필지의 **개별공시지가**(원/㎡)를 조회한다. 다년도 추이(최근 5년 이내)와 전년 대비 변동률을 정규화된 JSON으로 반환한다.
공시지가는 매년 1월 1일 기준, 4~5월 공시. 세금(재산세, 종합부동산세, 양도소득세) 산정의 법적 기준 단가다.
## When to use
- "서울 강남구 역삼동 736 공시지가 알려줘"
- "전라남도 무안군 청계면 청천리 100번지 개별공시지가"
- "서초동 산 1-2 공시지가 추이"
- 세무 계산에서 토지 공시 단가가 필요할 때
## When NOT to use
- 시세, 실거래가, 매매가, 호가 → 다른 데이터 소스 필요
- 공동주택가격, 표준지공시지가, 단독주택가격 → 별도 스킬
- 토지이용계획 → eum.go.kr 별도 스킬
## Prerequisites
- 인터넷 연결
- `curl` (또는 HTTP 호출 도구)
사용자에게 필요한 시크릿 없음 (공개 데이터).
## Default path
`gongsijiga-search` npm 패키지를 직접 호출한다. realtyprice.kr는 API 키가 필요 없는 공개 엔드포인트이므로 `k-skill-proxy`를 경유하지 않는다.
설치:
```bash
npm install gongsijiga-search
```
호출:
```bash
node -e "
const { lookupGongsijiga } = require('gongsijiga-search');
lookupGongsijiga('서울 강남구 역삼동 736').then(console.log).catch(console.error);
"
```
## Workflow
### 1. 사용자 입력 수집
사용자에게 **시도 + 시군구 + 읍면동 + 지번**이 포함된 주소를 요청한다.
- 최소 필수: 시도, 시군구, 읍면동, 본번
- **세종특별자치시**는 시군구가 없으므로 "세종 [읍면동] [지번]" 형식
- 산 지번이면 "산" 키워드 포함
- 부번이 있으면 "100-5" 형식
예시: "서울 강남구 역삼동 736", "전남 무안군 청계면 청천리 산 1-2", "세종 고용동 100"
시도가 누락된 주소(예: "역삼동 736")는 조회 불가 — 시도를 물어본다.
### 2. 직접 호출
`gongsijiga-search` 모듈을 사용해 realtyprice.kr를 직접 호출한다 (API 키 불필요, 프록시 경유 안 함):
```javascript
const { lookupGongsijiga } = require('gongsijiga-search');
const result = await lookupGongsijiga('서울 강남구 역삼동 736');
```
### 3. 응답 해석 및 출력
성공 응답 예시:
```json
{
"address": "서울 강남구 역삼동 736",
"jibun": "736번지",
"san": false,
"latest": {
"year": 2026,
"price_per_sqm": 72340000,
"notice_date": "2026-04-30",
"base_date": "2026-01-01"
},
"history": [...],
"yoy_change_pct": 5.45,
"source_url": "https://www.realtyprice.kr/notice/gsindividual/search.htm"
}
```
**출력 규칙:**
1. 반드시 "공시지가" 단어 사용. "가격/시세/매매가" 단어 금지.
2. 헤더: `[정부 공시] 개별공시지가 — {address}`
3. 최신값: `{year}년 공시지가: {price_per_sqm:,}원/㎡ (전년 대비 +{yoy_change_pct}%)`
4. 추이 표 (history 배열을 연도순 테이블로):
| 연도 | 공시지가 (원/㎡) | 공시일 |
|------|-----------------|--------|
| 2026 | 72,340,000 | 2026-04-30 |
| ... | ... | ... |
5. 마지막 줄 disclaimer:
`본 단가는 세금 산정용 정부 공시 가격으로, 시세나 실거래가와 다릅니다.`
### 4. 올해 미발표 안내
`latest.year`가 올해보다 작으면: "올해 공시지가는 아직 미발표 상태입니다. 최신 데이터는 {latest.year}년 기준입니다." 안내.
## Failure modes
| error.code | 의미 | 행동 |
|---|---|---|
| `ADDRESS_PARSE_FAILED` | 주소 파싱 실패 | "행정구역 + 본번까지 포함된 주소가 필요합니다" + 예시 |
| `INVALID_BUNJI` | 본번 형식 오류 | 본번 입력 형식 재요청 |
| `REGION_NOT_FOUND` | 행정구역 매칭 실패 | candidates 배열이 있으면 제안, 없으면 오타 확인 요청 |
| `LAND_NOT_FOUND` | 해당 지번 미등재 | "본번/부번 오타이거나 도로/하천 등 미과세 토지" 설명 |
| `UPSTREAM_ERROR` | realtyprice.kr 장애 | "데이터 출처 일시 장애. 잠시 후 재시도" + source_url |
| `UPSTREAM_TIMEOUT` | 30초 초과 | UPSTREAM_ERROR와 동일 |
## Notes
- 공시지가 ≠ 시세. 시세는 통상 공시지가의 1.5~3배.
- 매년 1월 1일 기준, 4~5월 발표. 1~4월은 전년도가 최신.
- realtyprice.kr는 API 키 불필요 (공개 데이터).
Creator's repository · nomadamas/k-skill
License: MIT