국토교통부 아파트 매매 실거래자료 오픈API를 소개합니다.
이번 포스팅은 오픈API를 통해 데이터를 수신하는 방법에 대해 알아보도록 하겠습니다. 우선 공공데이터 포털에서 국토교통부 아파트 매매 실거래자료로 검색하면 "부동산 거래신고에 관한 법률에 따라 신고된 주택의 실거래 자료를 제공"한다고 명시되어 있는 것을 확인할 수 있습니다.
해당 데이터의 제공기관은 국토교통부이며, 아파트 매매 실거래자료는 일반공공행정 - 일반행정 체계로 분류됩니다.
우측 상단 활용신청으로 들어가면 로그인 페이지가 보여집니다. 로그인 완료 후 아래와 같이 활용 목적 입력하고 오픈API 사용을 신청하면 인증키를 발급 발을 수 있습니다.
마이페이지에 들어가면 활용신청한 내용을 확인할 수 있습니다. 하단 국토교통부 아파트 매매 실거래자료를 클릭합니다.
오픈API에 필요한 참고 문서와 함께 일반 인증키 정보를 확인할 수 있습니다.
발급받은 인증키 정보와 지역코드, 기간을 이용하여 해당 기간, 해당 지역의 아파트 매매 신고자료를 조회하도록 하겠습니다. 요청 변수는 아래와 같으며, 공공데이터 포털에서 언어마다 샘플 코드를 제공합니다.
LAWD_CD (지역코드)의 경우 아래 포스팅을 참조하시기 바랍니다.
2021.06.21 - [DATA/오픈API] - 행정 표준코드 관리시스템 - 법정동 코드 조회
요청 변수(Request Parameter)
항목명(영문) | 항목명(국문) | 항목 크기 |
항목 구분* |
샘플 데이터 |
항목설명 |
LAWD_CD | 지역코드 | 5 | 1 | 11110 | 각 지역별 코드 행정표준코드관리시스템(www.code.go.kr)의 법정동코드 10자리 중 앞 5자리 |
DEAL_YMD | 계약월 | 6 | 1 | 201512 | 실거래 자료의 계약년월(6자리) |
serviceKey | 인증키 | 100 | 1 | 인증키 (URL Encode) |
공공데이터포털에서 발급받은 인증키 |
아래와 같이 IDE에 프로젝트를 생성하고 제공하는 Java 샘플 소스를 복사합니다. 이후 "서비스키" 파라미터에 발급받은 일반 인증키(Encoding)를 입력하면 되는데 실제 사용 가능하기까지 몇 시간 소요됨을 확인할 수 있었습니다.
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.io.BufferedReader;
import java.io.IOException;
public class ApiExplorer {
public static void main(String[] args) throws IOException {
StringBuilder urlBuilder = new StringBuilder("http://openapi.molit.go.kr:8081/OpenAPI_ToolInstallPackage/service/rest/RTMSOBJSvc/getRTMSDataSvcAptTrade"); /*URL*/
urlBuilder.append("?" + URLEncoder.encode("ServiceKey","UTF-8") + "=서비스키"); /*Service Key*/
urlBuilder.append("&" + URLEncoder.encode("LAWD_CD","UTF-8") + "=" + URLEncoder.encode("11110", "UTF-8")); /*각 지역별 코드*/
urlBuilder.append("&" + URLEncoder.encode("DEAL_YMD","UTF-8") + "=" + URLEncoder.encode("201512", "UTF-8")); /*월 단위 신고자료*/
URL url = new URL(urlBuilder.toString());
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Content-type", "application/json");
System.out.println("Response code: " + conn.getResponseCode());
BufferedReader rd;
if(conn.getResponseCode() >= 200 && conn.getResponseCode() <= 300) {
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
} else {
rd = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
}
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
sb.append(line);
}
rd.close();
conn.disconnect();
System.out.println(sb.toString());
}
}
위의 소스를 실행하게 되면 아래와 같이 결과를 리턴 받을 수 있습니다.
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<response>
<header>
<resultCode>00</resultCode>
<resultMsg>NORMAL SERVICE.</resultMsg>
</header>
<body>
<item>
<거래금액>82,500</거래금액>
<건축년도>2015</건축년도>
<년>2015</년>
<법정동>교남동</법정동>
<아파트>광화문풍림스페이스본(9-0)</아파트>
<월>12</월>
<일>1</일>
<전용면적>94.51</전용면적>
<지번>9</지번>
<지역코드>11110</지역코드>
<층>11</층>
<해제여부>O</해제여부>
<해제사유발생일>20200221</해제사유발생일>
</item>
</body>
</response>
(응답 메시지 명세서)
항목명(영문) | 항목명(국문) | 항목설명 | 항목크기 | 항목구분 | 샘플데이터 |
resultCode | 결과코드 | 결과코드 | 2 | 1 | 00 |
resultMsg | 결과메세지 | 결과메세지 | 50 | 1 | NORMAL SERVICE. |
Deal Amount | 거래금액 | 거래금액(만원) | 40 | 1 | 82,500 |
Build Year | 건축년도 | 건축년도 | 4 | 1 | 2015 |
Deal Year | 년 | 계약년도 | 4 | 1 | 2015 |
Dong | 법정동 | 법정동 | 40 | 1 | 사직동 |
Apartment Name | 아파트 | 아파트명 | 40 | 1 | 광화문풍림스페이스본(9-0) |
Deal Month | 월 | 계약월 | 2 | 1 | 12 |
Deal Day | 일 | 일 | 6 | 1 | 1 |
Area for Exclusive Use | 전용면적 | 전용면적(㎡) | 20 | 1 | 94.51 |
Jibun | 지번 | 지번 | 10 | 1 | 9 |
Regional Code | 지역코드 | 지역코드 | 5 | 1 | 11110 |
Floor | 층 | 층 | 4 | 1 | 11 |
Cancel Deal Type | 해제여부 | 해제여부 | 1 | 0 | O |
Cancel Deal Day | 해제사유발생일 | 해제사유발생일 | 8 | 0 | 21.01.27 |
▶ 공공데이터 포털 : 아래 링크를 통해 상세 정보 확인이 가능합니다.
https://www.data.go.kr/data/15058747/openapi.do
'데이터소개 > 오픈데이터셋' 카테고리의 다른 글
전자 가족관계 등록시스템 통계서비스 - (2) 출생 (0) | 2021.06.17 |
---|---|
전자 가족관계 등록시스템 통계서비스 - (4) 개명 및 창설 (0) | 2021.06.17 |
전자 가족관계 등록시스템 통계서비스 - (3) 혼인 및 이혼 (0) | 2021.06.17 |
전자 가족관계 등록시스템 통계서비스 - (1) 개요 (0) | 2021.06.16 |
서울교통공사 역별 일별 시간대별 승하차 인원 정보 (0) | 2021.05.31 |
댓글