| calculate_loan_paymentC | Calculate equal principal+interest monthly payment (EMI) in 10k KRW units. |
| calculate_compound_growthC | Calculate compounded asset growth with initial capital and monthly contributions. |
| calculate_monthly_cashflowB | Calculate monthly free cashflow after debt service and costs. |
| get_apartment_rentA | Return apartment lease and monthly-rent records for a region and month. Korean keywords: 아파트
Use this alongside get_apartment_trades to compute the jeonse ratio:
jeonse_ratio = summary.median_deposit_10k / trade summary.median_price_10k
A ratio above 70% signals high gap-investment risk.
Args:
region_code: 5-digit legal district code (returned by get_region_code).
year_month: Target year-month in YYYYMM format (e.g. "202501").
Call get_current_year_month if not specified by the user.
num_of_rows: Maximum number of records to return. Default 100.
Returns:
total_count: Total record count from the API
items: Rent list (unit_name, dong, area_sqm, floor,
deposit_10k, monthly_rent_10k, contract_type,
trade_date, build_year)
summary: median/min/max deposit_10k, monthly_rent_avg_10k,
jeonse_ratio_pct (null — compute from trade data),
sample_count
error/message: Present on API error or network failure
|
| get_officetel_rentA | Return officetel lease and monthly-rent records for a region and month. Korean keywords: 오피스텔
Use alongside get_officetel_trades to compute officetel jeonse ratio
and evaluate rental investment yield.
Args:
region_code: 5-digit legal district code (returned by get_region_code).
year_month: Target year-month in YYYYMM format (e.g. "202501").
Call get_current_year_month if not specified by the user.
num_of_rows: Maximum number of records to return. Default 100.
Returns:
total_count: Total record count from the API
items: Rent list (unit_name, dong, area_sqm, floor,
deposit_10k, monthly_rent_10k, contract_type,
trade_date, build_year)
summary: median/min/max deposit_10k, monthly_rent_avg_10k,
jeonse_ratio_pct (null), sample_count
error/message: Present on API error or network failure
|
| get_villa_rentA | Return row-house and multi-family (연립다세대) lease/rent records for a region and month. Korean keywords: 빌라, 연립, 다세대, 연립다세대, (아파트외 중) 저층 공동주택
Use alongside get_villa_trades to compute villa jeonse ratio
and evaluate rental investment yield.
Args:
region_code: 5-digit legal district code (returned by get_region_code).
year_month: Target year-month in YYYYMM format (e.g. "202501").
Call get_current_year_month if not specified by the user.
num_of_rows: Maximum number of records to return. Default 100.
Returns:
total_count: Total record count from the API
items: Rent list (unit_name, dong, house_type, area_sqm, floor,
deposit_10k, monthly_rent_10k, contract_type,
trade_date, build_year)
summary: median/min/max deposit_10k, monthly_rent_avg_10k,
jeonse_ratio_pct (null), sample_count
error/message: Present on API error or network failure
|
| get_single_house_rentA | Return detached and multi-unit house (단독/다가구) lease/rent records for a region and month. Korean keywords: 단독, 다가구, 단독/다가구, (아파트외 중) 단독/다가구
No unit name is provided. area_sqm is gross floor area (totalFloorAr).
house_type distinguishes "단독" from "다가구".
Args:
region_code: 5-digit legal district code (returned by get_region_code).
year_month: Target year-month in YYYYMM format (e.g. "202501").
Call get_current_year_month if not specified by the user.
num_of_rows: Maximum number of records to return. Default 100.
Returns:
total_count: Total record count from the API
items: Rent list (unit_name="", dong, house_type, area_sqm,
deposit_10k, monthly_rent_10k, contract_type,
trade_date, build_year)
summary: median/min/max deposit_10k, monthly_rent_avg_10k,
jeonse_ratio_pct (null), sample_count
error/message: Present on API error or network failure
|
| get_apt_subscription_infoA | Return Applyhome (청약홈) APT subscription notice metadata. Korean keywords: 청약, 분양, 모집공고, 청약 일정, 당첨자 발표, 계약 일정
Use this tool when the user asks:
- "청약(분양) 공고를 보고 싶어", "이번 달 모집공고 알려줘"
- "청약 접수 시작/종료일, 당첨자 발표일이 언제야?"
- "어떤 단지(주택명)가 분양 예정이야?"
This tool returns APT notice metadata such as notice number, house name,
location, schedule dates (announcement, application, winner, contract),
and operator/constructor information. It is not tied to region_code.
Authentication:
- Set ODCLOUD_API_KEY (Authorization header), or
- Set ODCLOUD_SERVICE_KEY (serviceKey query parameter).
Args:
page: Page number (1-based).
per_page: Items per page.
return_type: Response type, typically "JSON".
Returns:
total_count: Total record count from the API.
items: Notice metadata records.
page: Current page.
per_page: Items per page.
current_count: Number of returned items in this response.
match_count: Number of matched items (may differ by API).
error/message: Present on API/network/config failure.
|
| get_apt_subscription_resultsA | Return Applyhome (청약홈) subscription stats: requests, winners, rates, and scores. Korean keywords: 청약 경쟁률, 청약 신청자, 청약 당첨자, 가점, 가점제
Use this tool when the user asks:
- "마포구(서울) 청약 경쟁률이 어때?"
- "청약 신청자/당첨자 통계가 궁금해"
- "가점 평균/중앙값/최고점은?"
This tool provides aggregated statistics, not individual notice schedules.
For schedules (접수/발표/계약일), use get_apt_subscription_info.
stat_kind choices:
- "reqst_area": 지역별 청약 신청자 (연령대별 신청건수)
- "reqst_age": 연령별 청약 신청자 (연령대별 신청건수)
- "przwner_area": 지역별 청약 당첨자 (연령대별 당첨건수)
- "przwner_age": 연령별 청약 당첨자 (연령대별 당첨건수)
- "cmpetrt_area": 지역별 청약 경쟁률 (특별/일반공급 경쟁률)
- "aps_przwner": 지역별 청약 가점제 당첨자 (가점 통계)
Optional filters use odcloud's cond[...] syntax.
Authentication:
- Set ODCLOUD_API_KEY (Authorization header), or
- Set ODCLOUD_SERVICE_KEY (serviceKey query parameter).
Args:
stat_kind: Which stats endpoint to call (see choices above).
stat_year_month: Provided year-month in YYYYMM (maps to STAT_DE).
area_code: Subscription area code (maps to SUBSCRPT_AREA_CODE).
reside_secd: Residence section code (maps to RESIDE_SECD, used by some endpoints).
page: Page number (1-based).
per_page: Items per page.
return_type: Response type, typically "JSON".
Returns:
total_count/items/page/per_page/current_count/match_count plus the chosen stat_kind.
error/message: Present on API/network/config failure.
|
| get_apartment_tradesA | Return apartment sale records and summary statistics for a region and month. Korean keywords: 아파트
Use summary.median_price_10k as the reference price and
min/max_price_10k to present the price range.
To compute jeonse ratio, call get_apartment_rent for the same region and
month, then divide rent summary.median_deposit_10k by this
summary.median_price_10k.
region_code must be obtained first via the get_region_code tool.
Query strategy:
- For price trend analysis, call this tool for each of the 6 consecutive
months preceding the current month.
- To check year-over-year changes, also query the same month across
3 years (e.g. 202412, 202312, 202212).
Args:
region_code: 5-digit legal district code (returned by get_region_code).
year_month: Target year-month in YYYYMM format (e.g. "202501").
Call get_current_year_month if not specified by the user.
num_of_rows: Maximum number of records to return. Default 100.
Returns:
total_count: Total record count from the API
items: Trade list (apt_name, dong, area_sqm, floor,
price_10k, trade_date, build_year, deal_type)
summary: median/min/max price_10k, sample_count
error/message: Present on API error or network failure
|
| get_officetel_tradesA | Return officetel sale records and summary statistics for a region and month. Korean keywords: 오피스텔
Use to compare officetel prices against apartment prices in the same area.
Officetel units are typically smaller and cheaper than apartments,
suitable for 1-person households or as rental investment.
Args:
region_code: 5-digit legal district code (returned by get_region_code).
year_month: Target year-month in YYYYMM format (e.g. "202501").
Call get_current_year_month if not specified by the user.
num_of_rows: Maximum number of records to return. Default 100.
Returns:
total_count: Total record count from the API
items: Trade list (unit_name, dong, area_sqm, floor,
price_10k, trade_date, build_year, deal_type)
summary: median/min/max price_10k, sample_count
error/message: Present on API error or network failure
|
| get_villa_tradesA | Return row-house and multi-family (연립다세대) sale records for a region and month. Korean keywords: 빌라, 연립, 다세대, 연립다세대, (아파트외 중) 저층 공동주택
Notes:
- "빌라" is not a legal housing type; it is commonly used to refer to "다세대/연립".
Items include house_type ("연립" or "다세대") for distinguishing subtypes.
Villas are typically cheaper than apartments and may suit budget-constrained buyers.
Args:
region_code: 5-digit legal district code (returned by get_region_code).
year_month: Target year-month in YYYYMM format (e.g. "202501").
Call get_current_year_month if not specified by the user.
num_of_rows: Maximum number of records to return. Default 100.
Returns:
total_count: Total record count from the API
items: Trade list (unit_name, dong, house_type, area_sqm, floor,
price_10k, trade_date, build_year, deal_type)
summary: median/min/max price_10k, sample_count
error/message: Present on API error or network failure
|
| get_single_house_tradesA | Return detached and multi-unit house (단독/다가구) sale records for a region and month. Korean keywords: 단독, 다가구, 단독/다가구, (아파트외 중) 단독/다가구
No unit name is provided by the API. area_sqm is gross floor area (totalFloorAr).
house_type distinguishes "단독" from "다가구".
Args:
region_code: 5-digit legal district code (returned by get_region_code).
year_month: Target year-month in YYYYMM format (e.g. "202501").
Call get_current_year_month if not specified by the user.
num_of_rows: Maximum number of records to return. Default 100.
Returns:
total_count: Total record count from the API
items: Trade list (unit_name="", dong, house_type, area_sqm, floor=0,
price_10k, trade_date, build_year, deal_type)
summary: median/min/max price_10k, sample_count
error/message: Present on API error or network failure
|
| get_commercial_tradeA | Return commercial and business building (상업업무용) sale records for a region and month. Korean keywords: 상업용, 업무용, 상가, 근린생활시설(매매), 상업업무용
Response structure differs from residential tools:
building_type, building_use, land_use, building_ar instead of unit_name/area_sqm.
share_dealing indicates whether the transaction is a partial-share deal.
Use to evaluate commercial real estate investment options alongside residential data.
Args:
region_code: 5-digit legal district code (returned by get_region_code).
year_month: Target year-month in YYYYMM format (e.g. "202501").
Call get_current_year_month if not specified by the user.
num_of_rows: Maximum number of records to return. Default 100.
Returns:
total_count: Total record count from the API
items: Trade list (building_type, building_use, land_use, dong,
building_ar, floor, price_10k, trade_date, build_year,
deal_type, share_dealing)
summary: median/min/max price_10k, sample_count
error/message: Present on API error or network failure
|
| get_region_codeA | Convert a user-supplied region name to a 5-digit legal district code for the MOLIT API. Must be called before any trade or rent tool.
Accepts free-form text such as "마포구", "서울 마포구", or "마포구 공덕동".
If multiple matches are returned, show the matches array to the user
and confirm which region they mean before selecting a region_code.
Args:
query: Free-form region name text supplied by the user.
Returns:
region_code: 5-digit code for the API parameter (e.g. "11440")
full_name: Representative legal district name (e.g. "서울특별시 마포구")
matches: List of all matching results (10-digit original code + name)
error/message: Present when no match is found
|
| get_current_year_monthA | Return the current year and month in YYYYMM format for use with trade/rent tools. Call this tool when the user asks about current or recent transactions
without specifying a year_month.
Returns:
year_month: Current year-month string in YYYYMM format (e.g. "202602")
|