{
  "openapi": "3.0.1",
  "info": {
    "title": "네이버 부동산 스크래퍼 Naver Real Estate Scraper Korea",
    "description": "Scrape Naver Real Estate (네이버 부동산) property listings across Korea: asking prices in KRW, sizes, floors, facing direction and building records. 19 property types from apartments to shops, offices and land, plus 매매, 전세, 월세 and 단기임대 deal types.",
    "version": "0.0",
    "x-build-id": "tM9JeutU1bOolg7JV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/zen-studio~naver-land-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-zen-studio-naver-land-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/zen-studio~naver-land-scraper/runs": {
      "post": {
        "operationId": "runs-sync-zen-studio-naver-land-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/zen-studio~naver-land-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-zen-studio-naver-land-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchTerms": {
            "title": "지역 (Locations)",
            "type": "array",
            "description": "Where to look. Type a district, a neighbourhood, or a building name in Korean.<br><br>All of these work:<br>• <b>강남구</b> - a whole district, every neighbourhood in it<br>• <b>서울 강남구 대치동</b> - one neighbourhood<br>• <b>서울시</b> - a whole city (large, use the result limit below)<br>• <b>헬리오시티</b> - a building by name<br><br>A name that matches nothing is reported in the log rather than silently returning zero results.",
            "items": {
              "type": "string"
            }
          },
          "propertyUrls": {
            "title": "매물 링크 (Property links)",
            "type": "array",
            "description": "Links to specific properties or buildings, instead of searching.<br><br>Any of these work:<br>• <b>https://new.land.naver.com/complexes/135597?articleNo=2645147927</b> - one property<br>• <b>https://new.land.naver.com/articles/2645147927</b> - one property<br>• <b>https://new.land.naver.com/complexes/111515</b> - every property in one building<br><br>Anything that is not a property link is skipped with a note in the log.",
            "items": {
              "type": "string"
            }
          },
          "complexIds": {
            "title": "단지 번호 (Building references)",
            "type": "array",
            "description": "Collect every property listed in specific buildings, by reference number. Most people should use <b>Locations</b> or <b>Property links</b> above instead.",
            "items": {
              "type": "string"
            }
          },
          "propertyTypes": {
            "title": "매물 종류 (Property types)",
            "type": "array",
            "description": "Which kinds of property to collect. Leave empty for all of them.<br><br>Residential, commercial, industrial and land are all covered, including pre-sale rights (분양권) and whole buildings. Some types only exist in certain areas: 지식산업센터 and 공장·창고 cluster in industrial districts, 전원주택 in rural ones.",
            "items": {
              "type": "string",
              "enum": [
                "APT",
                "OPST",
                "VL",
                "YR",
                "DSD",
                "DDDGG",
                "SGJT",
                "JGC",
                "JGB",
                "JWJT",
                "OR",
                "SG",
                "SMS",
                "APTHGJ",
                "GJCG",
                "TJ",
                "GM",
                "ABYG",
                "OBYG"
              ],
              "enumTitles": [
                "아파트 (Apartment)",
                "오피스텔 (Officetel)",
                "빌라 (Villa)",
                "연립 (Low-rise flats)",
                "다세대 (Multi-family)",
                "단독다가구 (Detached & multi-household)",
                "상가주택 (Shop-house)",
                "재건축 (Reconstruction)",
                "재개발 (Redevelopment)",
                "전원주택 (Country house)",
                "원룸 (Studio)",
                "상가 (Retail unit)",
                "사무실 (Office)",
                "지식산업센터 (Knowledge-industry centre)",
                "공장창고 (Factory & warehouse)",
                "토지 (Land)",
                "건물 (Whole building)",
                "아파트분양권 (Apartment pre-sale right)",
                "오피스텔분양권 (Officetel pre-sale right)"
              ]
            }
          },
          "tradeTypes": {
            "title": "거래 유형 (Deal types)",
            "type": "array",
            "description": "Leave empty for all of them.<br><br><b>매매</b> is a sale, <b>전세</b> is a large lump-sum deposit with no monthly rent, <b>월세</b> is a deposit plus monthly rent, and <b>단기임대</b> is a short-term let.",
            "items": {
              "type": "string",
              "enum": [
                "A1",
                "B1",
                "B2",
                "B3"
              ],
              "enumTitles": [
                "매매 (For sale)",
                "전세 (Jeonse deposit)",
                "월세 (Monthly rent)",
                "단기임대 (Short-term rent)"
              ]
            }
          },
          "priceMin": {
            "title": "최저 가격 (Minimum price)",
            "minimum": 0,
            "type": "integer",
            "description": "In <b>만원</b> (10,000 KRW), the unit Naver uses. So <b>50000</b> is 5억, about 500 million KRW.<br><br>For 월세 and 단기임대 listings this applies to the deposit, not the monthly rent."
          },
          "priceMax": {
            "title": "최고 가격 (Maximum price)",
            "minimum": 0,
            "type": "integer",
            "description": "In <b>만원</b> (10,000 KRW). Leave empty for no upper limit."
          },
          "areaMin": {
            "title": "최소 면적 (Minimum size)",
            "minimum": 0,
            "type": "integer",
            "description": "In square metres, applied to 공급면적 (the supplied area). 84m² is the common Korean apartment size."
          },
          "areaMax": {
            "title": "최대 면적 (Maximum size)",
            "minimum": 0,
            "type": "integer",
            "description": "In square metres. Leave empty for no upper limit."
          },
          "maxBuildAge": {
            "title": "최대 건축연한 (Maximum building age)",
            "minimum": 0,
            "type": "integer",
            "description": "Only buildings no older than this, in years. Leave empty for any age."
          },
          "minBuildAge": {
            "title": "최소 건축연한 (Minimum building age)",
            "minimum": 0,
            "type": "integer",
            "description": "Only buildings at least this old, in years. Leave empty for any age."
          },
          "directions": {
            "title": "방향 (Facing direction)",
            "type": "array",
            "description": "Which way the property faces. 남향 (south-facing) is the most sought-after in Korea and usually carries a price premium.<br><br>Choose several to include any of them.",
            "items": {
              "type": "string",
              "enum": [
                "SS",
                "SE",
                "SW",
                "EE",
                "WW",
                "NN",
                "NE",
                "NW"
              ],
              "enumTitles": [
                "남향 (South)",
                "남동향 (South-east)",
                "남서향 (South-west)",
                "동향 (East)",
                "서향 (West)",
                "북향 (North)",
                "북동향 (North-east)",
                "북서향 (North-west)"
              ]
            }
          },
          "features": {
            "title": "조건 (Features)",
            "type": "array",
            "description": "Only return properties with these features. Choosing several narrows the results further, since a property must have all of them.",
            "items": {
              "type": "string",
              "enum": [
                "ONEFLOOR",
                "LOWFLOOR",
                "MIDFLOOR",
                "HIGHFLOOR",
                "TOPFLOOR",
                "UNDERFLOOR",
                "UPPERFLOOR",
                "EXTEND",
                "ALLREPAIR",
                "BATHREPAIR",
                "CHANGESINC",
                "CHANGEBOIL",
                "KITCHSEPA",
                "DUPLEX",
                "ROOFTOP",
                "VERANDA",
                "FULLOP",
                "PARKINGYN",
                "PARKINGONE",
                "PARKINGMORE",
                "HSEH100",
                "HSEH500",
                "HSEH1000",
                "NOLOAN",
                "LOWLOAN",
                "MF10UNDER",
                "MF20UNDER",
                "MF30UNDER",
                "MF40UNDER"
              ],
              "enumTitles": [
                "1층 (Ground floor)",
                "저층 (Low floor)",
                "중층 (Mid floor)",
                "고층 (High floor)",
                "탑층 (Top floor)",
                "지하 (Basement level)",
                "지상 (Above ground)",
                "확장 (Extended)",
                "올수리 (Fully renovated)",
                "욕실수리 (Renovated bathroom)",
                "싱크대교체 (New kitchen units)",
                "보일러교체 (New boiler)",
                "주방분리 (Separate kitchen)",
                "복층 (Duplex)",
                "옥탑 (Rooftop)",
                "베란다 (Veranda)",
                "풀옵션 (Fully furnished)",
                "주차가능 (Parking available)",
                "1대주차 (Parking for one)",
                "1대이상주차 (Parking for more)",
                "100세대이상 (100+ households)",
                "500세대이상 (500+ households)",
                "1000세대이상 (1000+ households)",
                "융자금없음 (No loan on property)",
                "융자금적은 (Small loan on property)",
                "관리비10만원이하 (Fees under 100k)",
                "관리비20만원이하 (Fees under 200k)",
                "관리비30만원이하 (Fees under 300k)",
                "관리비40만원이하 (Fees under 400k)"
              ]
            }
          },
          "maxListings": {
            "title": "최대 수집 개수 (Maximum results)",
            "minimum": 0,
            "maximum": 200000,
            "type": "integer",
            "description": "How many properties to collect in total. Set <b>0</b> to collect everything available for what you asked for.<br><br>A busy district holds far more than a quiet one, so this limit is what keeps a run predictable.",
            "default": 100
          },
          "sortBy": {
            "title": "정렬 (Result order)",
            "enum": [
              "rank",
              "dateDesc"
            ],
            "type": "string",
            "description": "<b>랭킹순</b> is Naver's own ordering. <b>최신순</b> puts the most recently listed first, and is the one to pick if you run this repeatedly and want new listings at the top.",
            "default": "rank"
          },
          "includeDetail": {
            "title": "상세 정보 포함 (Include full details)",
            "type": "boolean",
            "description": "Adds everything from the property's own page: full description, room and bathroom counts, move-in date, heating, parking, management costs, taxes, floor plans and photos.<br><br>A large run takes noticeably longer with this on.",
            "default": false
          },
          "includeBuildingInfo": {
            "title": "단지 정보 포함 (Include building information)",
            "type": "boolean",
            "description": "For properties in an apartment complex, adds the building's own record: household and block counts, completion date, every floor plan type with its own official 한국부동산원 valuation, photos, and the assigned school.<br><br>Collected once per building and reused across all its properties. Studios, retail units and land usually have no building record, and those rows say so.",
            "default": false
          },
          "includeAgentContact": {
            "title": "중개사 연락처 포함 (Include agent contact details)",
            "type": "boolean",
            "description": "Adds the listing agency's name, registration number, address, phone numbers, the representative's name and the agency's profile links, as structured fields.<br><br><b>This is personal information about a named individual.</b> Korean privacy law (개인정보보호법) applies to how you store and use it, so it is off unless you turn it on. Requires full details above, which are switched on automatically.<br><br><b>Please note:</b> agents often write their own name, agency and mobile number into the free-text description of a listing. That description is part of the listing itself, so it is delivered whether or not this is switched on. Turning this off removes the structured contact fields, not text an agent chose to put in their own advert.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}