본문 바로가기
데이터소개/오픈데이터셋

국토교통부 아파트매매 실거래자료 오픈API

by 토리프 2021. 6. 3.
반응형

 

국토교통부 아파트 매매 실거래자료 오픈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


반응형

댓글