{
  "serviceId": "kr-apt-trades-v1",
  "displayName": "KR Apartment Trades",
  "description": "What apartments in a Korean district actually sold for, from MOLIT's real-transaction register: each reported sale with price in KRW, area, floor and cancellation flag, monthly medians and quartiles, trends, and one complex across months. Use GET /v1/trades, /v1/trend or /v1/complex; POST /v1/query answers district trend questions in Korean or English. Pay per request in USDC; no API key.",
  "category": "finance",
  "resourceUrl": "https://test.agent.pocket.network/v1/kr-apt-trades-v1",
  "priceUsd": "0.005000",
  "priceVersion": 1,
  "rails": [
    {
      "id": "base",
      "network": "eip155:84532",
      "chainId": 84532,
      "tokenAddress": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
      "tokenDecimals": 6,
      "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
    }
  ],
  "paymentNetworks": [
    "eip155:84532"
  ],
  "paymentProtocols": [
    "x402"
  ],
  "protocols": [
    "rest"
  ],
  "inputSchema": {
    "type": "object",
    "description": "Fields for the GET routes, as query parameters: /v1/trades takes region (required), month, apt and limit (default 50); /v1/trend takes region (required), months (default 6, max 24) and apt; /v1/complex takes region and apt (required) and months (default 12). POST /v1/query reads only question and region: district trends, trade lists with a YYYYMM month, or a complex named with 아파트.",
    "properties": {
      "question": {
        "type": "string",
        "description": "POST /v1/query only. A question in Korean or English, e.g. 강남구 아파트 매매 시세 추이, 서초구 202608 거래 내역 or 은마아파트 실거래가."
      },
      "region": {
        "type": "string",
        "description": "A district as its 5-digit LAWD_CD (11680), Korean name (강남구) or English alias (gangnam)."
      },
      "month": {
        "type": "string",
        "pattern": "^\\d{6}$",
        "description": "YYYYMM month (GET /v1/trades; POST /v1/query ignores it)."
      },
      "apt": {
        "type": "string",
        "description": "Apartment complex name, in Korean (GET routes; POST /v1/query ignores it)."
      },
      "months": {
        "type": "integer",
        "description": "How many months of history to return."
      }
    }
  },
  "outputSchema": {
    "type": "object",
    "description": "A JSON object tagged with its own `schema` (kr-apt-trades/v1, kr-apt-trend/v1, kr-apt-complex/v1, kr-apt-regions/v1, kr-apt-answer/v1). Prices are KRW; statistics exclude cancelled trades, and a month still inside the 30-day reporting window is marked REPORTING_WINDOW_OPEN and can grow."
  },
  "methods": {
    "GET /v1/complex": "read",
    "GET /v1/health": "read",
    "GET /v1/regions": "read",
    "GET /v1/trades": "read",
    "GET /v1/trend": "read",
    "GET /v1/version": "read",
    "POST /v1/query": "read"
  },
  "example": {
    "method": "POST",
    "path": "/v1/query",
    "request": {
      "question": "강남구 아파트 매매 시세 추이"
    },
    "response": {
      "portal": {
        "provenance": "third-party-supplier",
        "serviceId": "kr-apt-trades-v1",
        "schemaCheck": "unchecked"
      },
      "data": {
        "schema": "kr-apt-answer/v1",
        "service": "kr-apt-trades-v1",
        "intent": "TREND",
        "question": "강남구 아파트 매매 시세 추이",
        "status": "OK",
        "data": {
          "schema": "kr-apt-trend/v1",
          "service": "kr-apt-trades-v1",
          "region": {
            "lawd_cd": "11680",
            "name": "강남구"
          },
          "apt_filter": null,
          "months": [
            {
              "count": 405,
              "cancelled": 24,
              "median_price_krw": 2680000000,
              "p25_price_krw": 1790000000,
              "p75_price_krw": 3665000000,
              "min_price_krw": 139000000,
              "max_price_krw": 11000000000,
              "median_price_per_m2_krw": 36056673,
              "direct_deal_share": 0.04,
              "low_sample": false,
              "month": "202604",
              "month_status": "COMPLETE",
              "mom_change_pct": null
            },
            {
              "count": 449,
              "cancelled": 25,
              "median_price_krw": 2700000000,
              "p25_price_krw": 2000000000,
              "p75_price_krw": 3540000000,
              "min_price_krw": 194000000,
              "max_price_krw": 21800000000,
              "median_price_per_m2_krw": 36517847,
              "direct_deal_share": 0.031,
              "low_sample": false,
              "month": "202605",
              "month_status": "COMPLETE",
              "mom_change_pct": 1.28
            },
            {
              "count": 215,
              "cancelled": 15,
              "median_price_krw": 2740000000,
              "p25_price_krw": 1705000000,
              "p75_price_krw": 3800000000,
              "min_price_krw": 180000000,
              "max_price_krw": 9770000000,
              "median_price_per_m2_krw": 36850921,
              "direct_deal_share": 0.037,
              "low_sample": false,
              "month": "202606",
              "month_status": "COMPLETE",
              "mom_change_pct": 0.91
            }
          ],
          "complete_months_change": {
            "from": "202604",
            "to": "202608",
            "median_price_per_m2_change_pct": -7.08
          },
          "unit": "KRW",
          "note": "Cancelled trades excluded from statistics. Months still inside the 30-day reporting window can grow. low_sample marks months under 30 trades, where the median reflects which complexes traded more than the market.",
          "source": "MOLIT RTMSDataSvcAptTrade via data.go.kr"
        }
      }
    },
    "capturedAt": "2026-10-15T12:12:58.886Z"
  },
  "firstParty": true,
  "networks": [
    "eip155:84532"
  ],
  "serving": true,
  "page": "https://test.agent.pocket.network/services/kr-apt-trades-v1",
  "descriptor": "https://test.agent.pocket.network/services/kr-apt-trades-v1/descriptor.json"
}