Korean apartment and housing sale/rent records (MOLIT) by natural-language address. No key.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Query official Korean real-estate transaction records (국토교통부 실거래가, MOLIT via data.go.kr) with a natural-language Korean address or apartment-complex name, e.g. '강남구 대치동 은마 아파트 매매'. Returns flat JSON: period statistics (avg/min/max price in KRW, or deposit/monthly-rent stats for rentals) plus individual transactions, newest first. For trend questions ('월별 추이', 'how did prices move'), pass groupBy=month to get stats_by_month[]; for a size condition ('전용 84', '국평'), pass an areaMin/areaMax band — both aggregate over the full matching set, unlike the row list which is capped at limit. Hint words inside q (아파트/오피스텔…, 매매/전세/월세) are auto-inferred as type/tradeType/rentSubtype; explicit fields always win. Ambiguous locations return HTTP 422 with candidates[] — pick one and retry. Unresolvable locations return 404. All inferences are disclosed in resolved_note; coverage gaps in missing_months. Terms (as-is, no warranty): https://realestate-api.goyostudio.io/terms — data may be corrected or cancelled after initial publication; not investment advice. PRICING: currently free within edge or app rate limits (50 requests / 10 seconds per IP). HTTP 429 with error RATE_LIMITED and a Retry-After header — wait that many seconds, then retry. x402-ready: a fixed micro-price per request (indicative $0.001–$0.01, USDC on Base) may be enabled later, after which unpaid requests receive HTTP 402 Payment Required per the x402 protocol (https://x402.org); agents with x402 support handle this automatically. Current pricing status: GET https://realestate-api.goyostudio.io/openapi.json → x-pricing.
Natural-language Korean address and/or complex name. Max ~30 Korean characters (90 UTF-8 bytes), max 8 whitespace-separated tokens. Do not include period words ('최근 3개월' is ignored — use startDate/endDate).
Property type. Default apartment unless inferred from q. rent is available only for apartment/officetel/rowhouse/detached; presale/land/commercial/industrial are sale-only.
Max transaction rows returned (default 100). Statistics always cover the full matching set regardless of limit.
Maximum EXCLUSIVE area (전용면적) in ㎡, inclusive.
Minimum EXCLUSIVE area (전용면적) in ㎡, inclusive. Not supply area (공급면적). A '84 type' apartment is usually 84.0-85.9㎡, so pin it with areaMin=84 & areaMax=86.
YYYY-MM inclusive. Default: current month.
Set to 'month' for stats_by_month[] — per-month aggregates over the full matching set. Required for trend/추이 questions: the transaction rows are capped at limit, so a trend cannot be rebuilt from them.
YYYY-MM inclusive. Default: 11 months before endDate (12-month window). Max range 24 months.
sale = 매매 (default), rent = 전월세 (jeonse + wolse combined unless rentSubtype filters).
Only with tradeType=rent. jeonse (전세) = deposit-only; wolse (월세) = has monthly rent.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Query official Korean real-estate transaction records (국토교통부 실거래가, MOLIT via data.go.kr) with a natural-language Korean address or apartment-complex name, e.g. '강남구 대치동 은마 아파트 매매'. Returns flat JSON: period statistics (avg/min/max price in KRW, or deposit/monthly-rent stats for rentals) plus individual transactions, newest first. For trend questions ('월별 추이', 'how did prices move'), pass groupBy=month to get stats_by_month[]; for a size condition ('전용 84', '국평'), pass an areaMin/areaMax band — both aggregate over the full matching set, unlike the row list which is capped at limit. Hint words inside q (아파트/오피스텔…, 매매/전세/월세) are auto-inferred as type/tradeType/rentSubtype; explicit fields always win. Ambiguous locations return HTTP 422 with candidates[] — pick one and retry. Unresolvable locations return 404. All inferences are disclosed in resolved_note; coverage gaps in missing_months. Terms (as-is, no warranty): https://realestate-api.goyostudio.io/terms — data may be corrected or cancelled after initial publication; not investment advice. PRICING: currently free within edge or app rate limits (50 requests / 10 seconds per IP). HTTP 429 with error RATE_LIMITED and a Retry-After header — wait that many seconds, then retry. x402-ready: a fixed micro-price per request (indicative $0.001–$0.01, USDC on Base) may be enabled later, after which unpaid requests receive HTTP 402 Payment Required per the x402 protocol (https://x402.org); agents with x402 support handle this automatically. Current pricing status: GET https://realestate-api.goyostudio.io/openapi.json → x-pricing.
| Argument | Type | Description |
|---|---|---|
| q* | string | Natural-language Korean address and/or complex name. Max ~30 Korean characters (90 UTF-8 bytes), max 8 whitespace-separated tokens. Do not include period words ('최근 3개월' is ignored — use startDate/endDate). |
| type | string | Property type. Default apartment unless inferred from q. rent is available only for apartment/officetel/rowhouse/detached; presale/land/commercial/industrial are sale-only. |
| limit | integer | Max transaction rows returned (default 100). Statistics always cover the full matching set regardless of limit. |
| areaMax | number | Maximum EXCLUSIVE area (전용면적) in ㎡, inclusive. |
| areaMin | number | Minimum EXCLUSIVE area (전용면적) in ㎡, inclusive. Not supply area (공급면적). A '84 type' apartment is usually 84.0-85.9㎡, so pin it with areaMin=84 & areaMax=86. |
| endDate | string | YYYY-MM inclusive. Default: current month. |
| groupBy | string | Set to 'month' for stats_by_month[] — per-month aggregates over the full matching set. Required for trend/추이 questions: the transaction rows are capped at limit, so a trend cannot be rebuilt from them. |
| startDate | string | YYYY-MM inclusive. Default: 11 months before endDate (12-month window). Max range 24 months. |
| tradeType | string | sale = 매매 (default), rent = 전월세 (jeonse + wolse combined unless rentSubtype filters). |
| rentSubtype | string | Only with tradeType=rent. jeonse (전세) = deposit-only; wolse (월세) = has monthly rent. |
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"description": "Natural-language Korean address and/or complex name. Max ~30 Korean characters (90 UTF-8 bytes), max 8 whitespace-separated tokens. Do not include period words ('최근 3개월' is ignored — use startDate/endDate)."
},
"type": {
"enum": [
"apartment",
"officetel",
"rowhouse",
"detached",
"presale",
"land",
"commercial",
"industrial"
],
"type": "string",
"description": "Property type. Default apartment unless inferred from q. rent is available only for apartment/officetel/rowhouse/detached; presale/land/commercial/industrial are sale-only."
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Max transaction rows returned (default 100). Statistics always cover the full matching set regardless of limit."
},
"areaMax": {
"type": "number",
"description": "Maximum EXCLUSIVE area (전용면적) in ㎡, inclusive.",
"exclusiveMinimum": 0
},
"areaMin": {
"type": "number",
"description": "Minimum EXCLUSIVE area (전용면적) in ㎡, inclusive. Not supply area (공급면적). A '84 type' apartment is usually 84.0-85.9㎡, so pin it with areaMin=84 & areaMax=86.",
"exclusiveMinimum": 0
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
"description": "YYYY-MM inclusive. Default: current month."
},
"groupBy": {
"enum": [
"month"
],
"type": "string",
"description": "Set to 'month' for stats_by_month[] — per-month aggregates over the full matching set. Required for trend/추이 questions: the transaction rows are capped at limit, so a trend cannot be rebuilt from them."
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-(0[1-9]|1[0-2])$",
"description": "YYYY-MM inclusive. Default: 11 months before endDate (12-month window). Max range 24 months."
},
"tradeType": {
"enum": [
"sale",
"rent"
],
"type": "string",
"description": "sale = 매매 (default), rent = 전월세 (jeonse + wolse combined unless rentSubtype filters)."
},
"rentSubtype": {
"enum": [
"jeonse",
"wolse"
],
"type": "string",
"description": "Only with tradeType=rent. jeonse (전세) = deposit-only; wolse (월세) = has monthly rent."
}
}
}