API 목록으로
🏠 부동산무료

국토부 실거래가 API

국토교통부 (공공데이터포털) · MOLIT Real Estate Transaction API

인증 방식

🔑 API Key

요금

무료

Base URL

apis.data.go.kr/1613000

태그

부동산, 실거래가

서비스 소개

국토교통부에서 공공데이터포털을 통해 제공하는 부동산 실거래 신고 API입니다. 아파트 매매·전월세, 오피스텔, 토지, 단독/다가구 등 모든 유형의 실거래가를 조회할 수 있습니다. 지역(법정동 코드)과 기간(계약년월)을 기준으로 조회합니다.

🚀 시작하기

  1. 1

    data.go.kr 가입 및 키 발급

    공공데이터포털 가입 → "아파트매매 실거래 상세 자료" 검색 → 활용 신청

  2. 2

    법정동 코드 확인

    행정안전부 법정동코드 파일 또는 API로 지역 코드 조회

  3. 3

    계약년월 설정

    YYYYMM 형식으로 조회 기간 설정 (예: 202401)

📋 응답 예시

{
  "response": {
    "body": {
      "items": {
        "item": [{
          "아파트": "래미안퍼스티지",
          "거래금액": " 250,000",
          "건축년도": "2009",
          "년": "2024",
          "월": "1",
          "일": "5",
          "전용면적": "84.99",
          "층": "15",
          "지역코드": "11650",
          "법정동": "서초동"
        }]
      }
    }
  }
}

💡 코드 예제

JavaScriptJavaScript
const API_KEY = process.env.DATA_GO_KR_KEY // Decoding 키

async function getApartmentTransactions(regionCode: string, yearMonth: string) {
  const url = new URL(
    'https://apis.data.go.kr/1613000/RTMSDataSvcAptTradeDev/getRTMSDataSvcAptTradeDev'
  )
  url.searchParams.set('serviceKey', API_KEY!)
  url.searchParams.set('LAWD_CD', regionCode)   // 서울 서초구: 11650
  url.searchParams.set('DEAL_YMD', yearMonth)   // 202401
  url.searchParams.set('pageNo', '1')
  url.searchParams.set('numOfRows', '100')

  const res = await fetch(url.toString())
  const text = await res.text()
  // XML 응답 — DOMParser 또는 xml2js로 파싱 필요
  return text
}
PythonPython (XML 파싱)
import requests
import xml.etree.ElementTree as ET

API_KEY = "YOUR_DECODING_KEY"

def get_apt_transactions(region_code: str, year_month: str) -> list:
    res = requests.get(
        "https://apis.data.go.kr/1613000/RTMSDataSvcAptTradeDev/getRTMSDataSvcAptTradeDev",
        params={
            "serviceKey": API_KEY,
            "LAWD_CD": region_code,  # 서초구: 11650
            "DEAL_YMD": year_month,  # 202401
            "pageNo": 1,
            "numOfRows": 100,
        },
    )
    root = ET.fromstring(res.content)
    items = []
    for item in root.findall(".//item"):
        items.append({
            "아파트": item.findtext("아파트", "").strip(),
            "거래금액": item.findtext("거래금액", "").strip(),
            "전용면적": item.findtext("전용면적", ""),
            "층": item.findtext("층", ""),
        })
    return items

같은 카테고리 API