부동산 정보 검색 API 가이드
1. 공공데이터 API (국토교통부)
1.1 아파트 매매 실거래가 API
주요 파라미터
serviceKey: 공공데이터포털에서 발급받은 인증키
LAWD_CD: 법정동 코드 5자리 (예: 서울 종로구 11110)
DEAL_YMD: 계약년월 6자리 (예: 202501)
1.2 아파트 전월세 실거래가 API
주요 파라미터
serviceKey: 공공데이터포털에서 발급받은 인증키
LAWD_CD: 법정동 코드
DEAL_YMD: 계약년월
1.3 연립/다세대 주택 실거래가 API
- 서비스명: 국토교통부_연립다세대 매매/전월세 실거래가 자료
- 제공기관: 국토교통부
- URL:
- Base URL:
- 매매:
apis.data.go.kr/1613000/RTMSDataSvcSHTrade
- 전월세:
apis.data.go.kr/1613000/RTMSDataSvcSHRent
- 엔드포인트:
- 매매:
/getRTMSDataSvcSHTrade
- 전월세:
/getRTMSDataSvcSHRent
- 데이터 형식: XML
- 트래픽 제한: 개발계정 10,000/일
1.4 오피스텔 실거래가 API
- 서비스명: 국토교통부_오피스텔 매매/전월세 실거래가 자료
- 제공기관: 국토교통부
- URL:
- Base URL:
- 매매:
apis.data.go.kr/1613000/RTMSDataSvcOffiTrade
- 전월세:
apis.data.go.kr/1613000/RTMSDataSvcOffiRent
- 엔드포인트:
- 매매:
/getRTMSDataSvcOffiTrade
- 전월세:
/getRTMSDataSvcOffiRent
- 데이터 형식: XML
- 트래픽 제한: 개발계정 10,000/일
1.5 단독/다가구 주택 실거래가 API
- 서비스명: 국토교통부_단독다가구 매매/전월세 실거래가 자료
- 제공기관: 국토교통부
- URL:
- Base URL:
- 매매:
apis.data.go.kr/1613000/RTMSDataSvcSHHouseTrade
- 전월세:
apis.data.go.kr/1613000/RTMSDataSvcSHHouseRent
- 엔드포인트:
- 매매:
/getRTMSDataSvcSHHouseTrade
- 전월세:
/getRTMSDataSvcSHHouseRent
- 데이터 형식: XML
- 트래픽 제한: 개발계정 10,000/일
1.6 토지 실거래가 API
1.7 상업/업무용 부동산 실거래가 API
2. 한국부동산원 API
2.1 부동산 통계 조회 서비스
2.2 아파트 단지 정보 API
- 서비스명: 한국부동산원_전국 아파트단지 정보
- 특징: 전국 아파트 단지의 기본 정보 및 동 정보 제공
- 데이터: 단지명, 주소, 세대수, 준공년월 등
3. LH 한국토지주택공사 API
3.1 공공임대주택 단지정보 조회 서비스
- 서비스명: 한국토지주택공사_공공임대주택 단지정보 조회 서비스
- URL: https://www.data.go.kr/data/15058476/openapi.do
- Base URL:
apis.data.go.kr/B552555/lhPublicRentalHousingComplexInquireSvc
- 엔드포인트:
/getPublicRentalHousingComplexList
- 특징: LH에서 관리하는 공공임대주택 정보 제공
- 데이터 형식: XML/JSON
3.2 임대주택단지 조회 서비스
3.3 분양/임대 공고문 조회 서비스
4. 지자체 부동산 API
4.1 서울시 부동산 API
- 제공기관: 서울특별시
- 플랫폼: 서울 열린데이터광장 (data.seoul.go.kr)
- 주요 API:
- 서울시 부동산 실거래가 정보
- 서울시 전월세가 정보
- 서울시 부동산 중개업소 정보
4.2 경기도 부동산 API
- 제공기관: 경기도
- 플랫폼: 경기데이터드림 (data.gg.go.kr)
- 주요 API:
- 경기도 임대주택 현황
- 경기도 부동산 중개업소 현황
4.3 SH 서울주택도시공사 API
5. 주택금융 관련 API
5.1 주택도시보증공사 (HUG) API
- 제공기관: 주택도시보증공사
- URL: https://www.khug.or.kr
- Base URL:
openapi.khug.or.kr
- 주요 API:
- 전세보증금 보증 정보:
/api/guarantee/deposit
- 분양보증 정보:
/api/guarantee/sale
- 주택금융 통계:
/api/statistics/housing
5.2 마이홈포털 API
6. Python을 이용한 API 호출 예제
6.1 공공데이터 API 호출 예제
import requests
import xml.etree.ElementTree as ET
def get_apartment_trade_data(service_key, lawd_cd, deal_ymd):
"""
아파트 매매 실거래가 데이터 조회
"""
base_url = "http://apis.data.go.kr/1613000/RTMSDataSvcAptTrade/getRTMSDataSvcAptTrade"
params = {
'serviceKey': service_key,
'LAWD_CD': lawd_cd,
'DEAL_YMD': deal_ymd,
'pageNo': 1,
'numOfRows': 100
}
response = requests.get(base_url, params=params)
if response.status_code == 200:
# XML 파싱
root = ET.fromstring(response.content)
items = root.findall('.//item')
results = []
for item in items:
data = {
'아파트명': item.findtext('아파트'),
'전용면적': item.findtext('전용면적'),
'거래금액': item.findtext('거래금액'),
'거래년': item.findtext('년'),
'거래월': item.findtext('월'),
'거래일': item.findtext('일'),
'층': item.findtext('층'),
'건축년도': item.findtext('건축년도'),
'도로명': item.findtext('도로명'),
'법정동': item.findtext('법정동')
}
results.append(data)
return results
else:
return None
6.2 오피스텔 전월세 데이터 조회 예제
def get_officetel_rent_data(service_key, lawd_cd, deal_ymd):
"""
오피스텔 전월세 실거래가 데이터 조회
"""
base_url = "http://apis.data.go.kr/1613000/RTMSDataSvcOffiRent/getRTMSDataSvcOffiRent"
params = {
'serviceKey': service_key,
'LAWD_CD': lawd_cd,
'DEAL_YMD': deal_ymd,
'pageNo': 1,
'numOfRows': 100
}
response = requests.get(base_url, params=params)
if response.status_code == 200:
root = ET.fromstring(response.content)
items = root.findall('.//item')
results = []
for item in items:
data = {
'단지명': item.findtext('단지'),
'전용면적': item.findtext('전용면적'),
'보증금': item.findtext('보증금액'),
'월세': item.findtext('월세금액'),
'층': item.findtext('층'),
'건축년도': item.findtext('건축년도'),
'법정동': item.findtext('법정동')
}
results.append(data)
return results
else:
return None
6.3 통합 API 호출 클래스 예제
class RealEstateAPI:
"""
국토교통부 부동산 실거래가 통합 API 클래스
"""
BASE_URL = "http://apis.data.go.kr/1613000"
ENDPOINTS = {
'apt_trade': '/RTMSDataSvcAptTrade/getRTMSDataSvcAptTrade',
'apt_rent': '/RTMSDataSvcAptRent/getRTMSDataSvcAptRent',
'sh_trade': '/RTMSDataSvcSHTrade/getRTMSDataSvcSHTrade',
'sh_rent': '/RTMSDataSvcSHRent/getRTMSDataSvcSHRent',
'offi_trade': '/RTMSDataSvcOffiTrade/getRTMSDataSvcOffiTrade',
'offi_rent': '/RTMSDataSvcOffiRent/getRTMSDataSvcOffiRent',
'house_trade': '/RTMSDataSvcSHHouseTrade/getRTMSDataSvcSHHouseTrade',
'house_rent': '/RTMSDataSvcSHHouseRent/getRTMSDataSvcSHHouseRent',
'land': '/RTMSDataSvcLandTrade/getRTMSDataSvcLandTrade',
'business': '/RTMSDataSvcNrgTrade/getRTMSDataSvcNrgTrade'
}
def __init__(self, service_key):
self.service_key = service_key
def get_data(self, api_type, lawd_cd, deal_ymd, page=1, rows=100):
"""
통합 데이터 조회 메서드
:param api_type: API 타입 (apt_trade, apt_rent, sh_trade 등)
:param lawd_cd: 법정동 코드 5자리
:param deal_ymd: 거래년월 6자리
:param page: 페이지 번호
:param rows: 한 페이지당 행 수
"""
if api_type not in self.ENDPOINTS:
raise ValueError(f"Invalid API type: {api_type}")
url = self.BASE_URL + self.ENDPOINTS[api_type]
params = {
'serviceKey': self.service_key,
'LAWD_CD': lawd_cd,
'DEAL_YMD': deal_ymd,
'pageNo': page,
'numOfRows': rows
}
response = requests.get(url, params=params)
if response.status_code == 200:
return self._parse_xml(response.content)
else:
return None
def _parse_xml(self, xml_content):
"""XML 파싱 헬퍼 메서드"""
root = ET.fromstring(xml_content)
items = root.findall('.//item')
return [self._extract_item_data(item) for item in items]
def _extract_item_data(self, item):
"""아이템 데이터 추출"""
# XML 엘리먼트에서 모든 데이터 추출
data = {}
for child in item:
data[child.tag] = child.text
return data
7. 민간 부동산 API
7.1 네이버 부동산
- 특징: 공식 API 미제공, 웹 크롤링으로 데이터 수집
- 주의사항: robots.txt 확인 및 과도한 요청 자제
- 대안: Selenium을 이용한 동적 페이지 크롤링
7.2 직방 API (비공식)
- 특징: 내부 API 엔드포인트 활용 가능
- 주의사항: 공식 지원 없음, 변경 가능성 있음
- 주요 엔드포인트:
- 지역 검색:
https://apis.zigbang.com/v2/search
- 매물 리스트:
https://apis.zigbang.com/v2/items
- 매물 상세:
https://apis.zigbang.com/v2/items/{item_id}
- 단지 정보:
https://apis.zigbang.com/v2/complex/{complex_id}
7.3 호갱노노
7.4 부동산114
7.5 KB부동산
8. API 활용 시 주의사항
- 인증키 관리: 환경변수나 별도 설정 파일로 관리
- 트래픽 제한: 일일 호출 제한 확인
- 데이터 갱신 주기: 실시간이 아닌 일정 주기로 갱신됨
- 에러 처리: 네트워크 오류, 서비스 점검 대응
- 법적 제약: 개인정보보호법 준수
9. 추천 활용 방법
- 캐싱 구현: 동일 요청 반복 방지
- 배치 처리: 대량 데이터는 야간 배치로 처리
- 데이터베이스 저장: 조회한 데이터 로컬 DB 저장
- 모니터링: API 응답 시간 및 에러율 모니터링
10. API 종류별 요약 테이블
| 구분 |
API 제공처 |
데이터 종류 |
비용 |
인증 필요 |
| 국토교통부 |
공공데이터포털 |
아파트/오피스텔/연립/단독 실거래가 |
무료 |
O |
| 한국부동산원 |
한국부동산원 |
부동산 통계, 가격지수 |
무료 |
O |
| LH공사 |
공공데이터포털 |
공공임대주택 정보 |
무료 |
O |
| SH공사 |
SH/서울시 |
서울시 임대주택 정보 |
무료 |
O |
| 지자체 |
각 지자체 |
지역별 부동산 정보 |
무료 |
O |
| 네이버 |
네이버 |
매물, 시세 정보 |
- |
X |
| 직방 |
직방 |
원룸/오피스텔 매물 |
- |
X |
| 호갱노노 |
호갱노노 |
아파트 실거래가 |
무료 |
X |
| 부동산114 |
부동산114 |
종합 부동산 정보 |
일부유료 |
△ |
| KB부동산 |
KB국민은행 |
부동산 통계/시세 |
일부유료 |
△ |
11. API 엔드포인트 빠른 참조
국토교통부 실거래가 API 엔드포인트 목록
| 부동산 종류 |
거래 유형 |
Base URL |
엔드포인트 |
| 아파트 |
매매 |
apis.data.go.kr/1613000/RTMSDataSvcAptTrade |
/getRTMSDataSvcAptTrade |
| 아파트 |
전월세 |
apis.data.go.kr/1613000/RTMSDataSvcAptRent |
/getRTMSDataSvcAptRent |
| 연립/다세대 |
매매 |
apis.data.go.kr/1613000/RTMSDataSvcSHTrade |
/getRTMSDataSvcSHTrade |
| 연립/다세대 |
전월세 |
apis.data.go.kr/1613000/RTMSDataSvcSHRent |
/getRTMSDataSvcSHRent |
| 오피스텔 |
매매 |
apis.data.go.kr/1613000/RTMSDataSvcOffiTrade |
/getRTMSDataSvcOffiTrade |
| 오피스텔 |
전월세 |
apis.data.go.kr/1613000/RTMSDataSvcOffiRent |
/getRTMSDataSvcOffiRent |
| 단독/다가구 |
매매 |
apis.data.go.kr/1613000/RTMSDataSvcSHHouseTrade |
/getRTMSDataSvcSHHouseTrade |
| 단독/다가구 |
전월세 |
apis.data.go.kr/1613000/RTMSDataSvcSHHouseRent |
/getRTMSDataSvcSHHouseRent |
| 토지 |
매매 |
apis.data.go.kr/1613000/RTMSDataSvcLandTrade |
/getRTMSDataSvcLandTrade |
| 상업/업무용 |
매매 |
apis.data.go.kr/1613000/RTMSDataSvcNrgTrade |
/getRTMSDataSvcNrgTrade |
공통 파라미터
serviceKey: 공공데이터포털 인증키 (필수)
LAWD_CD: 법정동 코드 5자리 (필수)
DEAL_YMD: 거래년월 6자리 (필수)
pageNo: 페이지 번호 (선택, 기본값: 1)
numOfRows: 한 페이지 결과 수 (선택, 기본값: 10)