직방 크롤링 - klaus9267/locator GitHub Wiki

직방 크롤링 API 분석

📋 개요

직방의 매물 검색은 4가지 매물 유형으로 구성됩니다:

  • 아파트: 단지 기반 → 매물별 상세 조회
  • 빌라: 지역 기반 → ID 수집 → 일괄 상세 조회
  • 원룸: 지역 기반 → ID 수집 → 일괄 상세 조회
  • 오피스텔: 지역 기반 → ID 수집 → 일괄 상세 조회

🏢 아파트 검색 API

1. 아파트 목록 조회

GET https://apis.zigbang.com/apt/locals/{localCode}/item-catalogs

파라미터

파라미터 설명
tranTypeIn[0] trade 매매
tranTypeIn[1] charter 전세
tranTypeIn[2] rental 월세
includeOfferItem true 특가매물 포함
offset 0 페이징 시작점
limit 10 가져올 개수

예시

https://apis.zigbang.com/apt/locals/41465/item-catalogs?tranTypeIn[0]=trade&tranTypeIn[1]=charter&tranTypeIn[2]=rental&includeOfferItem=true&offset=0&limit=10

응답 구조

{
  "localCode": "41465",
  "count": 684,
  "list": [
    {
            "areaHoId": 5328954,
            "tranType": "charter",
            "itemType": "self_ad",
            "areaDanjiId": 692,
            "areaDanjiName": "현대",
            "danjiRoomTypeId": 1813,
            "local2": "용인시 수지구",
            "local3": "풍덕천동",
            "isPriceRange": false,
            "depositMin": 48000,
            "rentMin": 0,
            "roomTypeTitle": {
                "m2": "104",
                "p": "31"
            },
            "sizeContractM2": 104.52,
            "sizeM2": 84.51,
            "dong": "104동",
            "floor": "15",
            "itemTitle": "9월4일 입주, 전망 트인 집, 깔끔 부분수리,신혼부부추천",
            "zzimCount": 1,
            "isZzim": false,
            "isActualItemChecked": false,
            "thumbnailUrl": "https://ic.zigbang.com/ic/floorplan/692/1813/078a77dd3666421195edddcc09adbad6.png",
            "isFloorPlanThumbnail": true,
            "itemCount": 1,
            "itemIdList": [
                {
                    "itemSource": "zigbang",
                    "itemId": 45089630
                }
            ],
            "agentThumbnailUrls": [
                "https://ic.zigbang.com/vp/profile/24490076/27b641c6-b8fb-47d2-987b-8e06b3520ef6.jpg"
            ]
        },
  ]
}

2. 아파트 상세 정보 조회

GET https://www.zigbang.com/_next/data/{buildId}/home/apt/item-catalog.json

파라미터

파라미터 예시값 설명
areaHoId 4147633 매물 ID
tranType trade 거래유형 (trade/charter/rental)

예시

https://www.zigbang.com/_next/data/e8RgCa5EGUpkJvbRFfX8x/home/apt/item-catalog.json?areaHoId=4147633&tranType=trade

응답 구조

{
  "query": {
    "areaHoId": "9047351",
    "tranType": "trade"
  },
  "pageProps": {
    "meta": {
      "ogTitle": "'동천마을동문굿모닝힐3차' 매매 6억 9,000",
      "ogDescription": "동천역 도보10분 막힘없는 전망좋은 집",
      "ogImage": null
    }, 
    "itemCatalogHoInfo": {
      "areaDanjiId": 5892,
      "areaDanjiName": "동천마을동문굿모닝힐3차",
      "bcode": "4146510300",
      "local1": "경기도",
      "local2": "용인시 수지구",
      "local3": "동천동",
      "areaBuildingId": 192919,
      "danjiRoomTypeId": 34167,
      "areaHoId": 9047351,
      "danjiInfo": {
        "parkingCount": null,
        "parkingCountByHousehold": 0,
        "oldAddress": "경기도 용인시 수지구 동천동 858",
        "newAddress": "경기 용인시 수지구 동천로 93",
        "approvalDate": "20011107",
        "household": 181,
        "realType": "아파트",
        "areaDanjiDivision": "입주2년후",
        "is후분양": false,
        "danjiImage": "https://ic.zigbang.com/vp/BigData/5892/aabe6459c0464f2bcddf5366d102ed2e75a007b2.jpg",
        "zedStatus": "enabled",
        "webZedStatus": "enabled",
        "lat": 37.33820017254762,
        "lng": 127.09364910901
      },
      "hoInfo": {
        "dong": "302동",
        "buildingFloor": 25,
        "roomTypeTitle": {
          "m2": "105",
          "p": "32"
        },
        "sizeContractM2": 105.59,
        "sizeM2": 84.72,
        "roomCount": 3,
        "bathroomCount": 2,
        "direction": "s",
        "LandRatio": "32.38/7392",
        "landArea": 32.38,
        "totalLandArea": 7392,
        "floorPlanImageUrl": "https://ic.zigbang.com/ic/floorplan/5892/34167/64abb934cfeb47feb90e276c5a8bb125.png",
        "manageCost": {
          "yearManageCost": 28,
          "summerManageCost": 22,
          "winterManageCost": 37,
          "isHeatInclude": null
        },
        "공급면적": {
          "m2": "105.59",
          "p": "31.9"
        },
        "전용면적": {
          "m2": "84.72",
          "p": "25.6"
        }
      },
      "vrItems": [
        {
          "vrHouseKey": "spNCQfy6",
          "thumbnail": "https://ic.zigbang.com/vr/ap-northeast-2/houses/spNCQfy6/cover/medium/cover.jpg",
          "areaDanjiId": 5892,
          "areaBuildingName": "302동",
          "areaHoName": "1704호"
        }
      ],
      "priceInfo": {
        "publicPrices": [
          {
            "year": 2024,
            "price": 397000000,
            "comparePriceRate": 8.2
          },
        ],
        "zigbangPrice": {
          "areahoId": 9047351,
          "trade": {
            "price": 72000,
            "pyeongPrice": 2254
          },
          "charter": {
            "price": 45000,
            "pyeongPrice": 1409
          }
        },
        "hasRtPrices": true
      }
    },
    "itemCatalog": {
      "areaHoId": 9047351,
      "tranType": "trade",
      "depositMin": 69000,
      "depositMax": 69000,
      "rentMin": 0,
      "rentMax": 0,
      "floor": "24",
      "itemCount": 1,
      "items": [
        {
          "itemSource": "coalition",
          "itemId": 166910,
          "areaDanjiId": 5892,
          "areaDanjiName": "동천마을동문굿모닝힐3차",
          "areaDanjiDivision": "입주2년후",
          "areaBuildingId": 192919,
          "areaBuildingName": "302동",
          "areaHoId": 9047351,
          "itemType": "partner",
          "tranType": "trade",
          "deposit": 69000,
          "rent": 0,
          "moveinDate": "즉시입주가능",
          "floor": "24",
          "buildingFloor": 25,
          "direction": "s",
          "directionBase": "거실기준",
          "roomCount": 3,
          "bathroomCount": 2,
          "sizeContractM2": 105.59,
          "sizeM2": 84.72,
          "notificationComment": "고객이 집 내놓기 한 매물",
          "itemTitle": "동천역 도보10분 막힘없는 전망좋은 집",
          "itemDescription": "수리.필요해요",
          "effectivenessUpdatedAt": "2025-06-08T15:02:38+09:00",
          "tags": [],
          "imageUrls": [
            "https://ic.zigbang.com/vp/coalition-realestate/image/customers/3516752/789089b279422c1bdd02399d3ddd7b6f2bc0687edcf3e3b0072174ae9707526b",
            "https://ic.zigbang.com/vp/coalition-realestate/image/customers/3516752/ba5d309c6965e40716c6671b66c2c9f4f35c71d8df7a4ca733e63c4a09e4f623"
          ],
          "manageCost": {
            "type": "unconfirmed",
            "unconfirmedReason": "해당 매물은 고객이 관리비 내역을 확인 중입니다."
          },
          "zzimCount": 0,
          "isActualItemChecked": true,
          "agent": {
            "agentType": "partners",
            "userNo": 1251,
            "name": "박재선",
            "profileUrl": "https://ic.zigbang.com/vp/coalition-realestate/user/profile/danji/1251/31a1b2d74bf481b99d1d7821eb7cf21ac8edb037deb6cc1dab10ad41d244b69e.jpeg",
            "phone": "01041042203",
            "itemCount": 0,
            "itemCountPerTranType": {
              "charter": 0,
              "rental": 0,
              "trade": 0
            }
          },
          "acceptedLocalAgents": [
            {
              "name": "삼성타운 공인중개사사무소",
              "nsdiOfficeId": 33016,
              "status": "영업중",
              "distance": 0.28860112833507645,
              "ownerName": "유현주",
              "address": "경기도 용인시 수지구 동천로113번길 10 ,상가동 23호(동천동, 한빛마을래미안이스트팰리스2단지아파트)"
            },
          ],
          "roomTypeInfo": {
            "danjiRoomTypeId": 34167,
            "floorPlanImageUrl": "https://ic.zigbang.com/ic/floorplan/5892/34167/64abb934cfeb47feb90e276c5a8bb125.png",
            "roomTypeTitle": {
              "m2": "105",
              "p": "32"
            }
          }
        }
      ],
      "acceptedLocalItemId": 166910,
      "acceptedLocalAgents": [
        {
          "name": "삼성타운 공인중개사사무소",
          "nsdiOfficeId": 33016,
          "status": "영업중",
          "distance": 0.28860112833507645,
          "ownerName": "홍길동",
          "address": "경기도 용인시 수지구 동천로113번길 10 ,상가동 23호(동천동, 한빛마을래미안이스트팰리스2단지아파트)"
        },
      ]
    }
  },
  "__N_SSP": true
}

🏘️ 빌라 검색 API (2단계 방식)

1단계: 지역별 매물 ID 수집

GET https://apis.zigbang.com/v2/items/villa

파라미터

파라미터 예시값 설명
geohash wydk 지역 해시코드
salesTypes[0] %EC%A0%84%EC%84%B8 전세 (URL 인코딩)
salesTypes[1] %EC%9B%94%EC%84%B8 월세 (URL 인코딩)
salesTypes[2] %EB%A7%A4%EB%A7%A4 매매 (URL 인코딩)
lngEast 127.1521063223339 동쪽 경도
lngWest 127.0354714009278 서쪽 경도
latSouth 37.322114258081115 남쪽 위도
latNorth 37.33283419206626 북쪽 위도
domain zigbang 도메인

Geohash 패턴

wydk    # 기본 지역
wydkk   # 세분화된 지역 1
wydk6   # 세분화된 지역 2
wydkm   # 세분화된 지역 3
wydk7   # 세분화된 지역 4

예시 URL

https://apis.zigbang.com/v2/items/villa?geohash=wydk&depositMin=0&rentMin=0&salesTypes[0]=%EC%A0%84%EC%84%B8&salesTypes[1]=%EC%9B%94%EC%84%B8&salesTypes[2]=%EB%A7%A4%EB%A7%A4&salesPriceMin=0&lngEast=127.1521063223339&lngWest=127.0354714009278&latSouth=37.322114258081115&latNorth=37.33283419206626&domain=zigbang&checkAnyItemWithoutFilter=true

응답 구조

{
  "items": [
    {
      "lat": 37.324127197265625,
      "lng": 127.09873962402344,
      "itemId": 45080972,
      "itemBmType": "ZIGBANG"
    }
  ]
}

2단계: 매물 상세 정보 일괄 조회

POST https://apis.zigbang.com/v2/items/list
Content-Type: application/json

요청 Body

{
  "item_ids": [
    45020839,
    45077032,
    45076194,
    44892715,
    45107584
  ],
  "domain": "zigbang"
}

응답 구조

{
  "items": [
    {
      "item_id": 45080972,
      "sales_type": "월세",
      "deposit": 4000,
      "rent": 30,
      "size_m2": 56.2,
      "title": "수지구청역5분거리의 넓고 깔끔한 투룸",
      "address": "용인시 수지구 풍덕천동"
    }
  ]
}

🏠 원룸 검색 API (2단계 방식)

1단계: 지역별 매물 ID 수집

GET https://apis.zigbang.com/v2/items/oneroom

파라미터

파라미터 예시값 설명
geohash wydjr 지역 해시코드
roomTypes[0] %EB%B3%B5%EC%B8%B5%ED%98%95%EC%9B%90%EB%A3%B8 복층형원룸 (URL 인코딩)
salesTypes[0] %EC%A0%84%EC%84%B8 전세 (URL 인코딩)
salesTypes[1] %EC%9B%94%EC%84%B8 월세 (URL 인코딩)
rentMax 250 월세 상한
lngEast 126.90536809798569 동쪽 경도
lngWest 126.8760163604908 서쪽 경도
latSouth 37.495284634588394 남쪽 위도
latNorth 37.49882571686236 북쪽 위도
domain zigbang 도메인

예시 URL

https://apis.zigbang.com/v2/items/oneroom?geohash=wydjr&depositMin=0&rentMin=0&rentMax=250&roomTypes[0]=%EB%B3%B5%EC%B8%B5%ED%98%95%EC%9B%90%EB%A3%B8&salesTypes[0]=%EC%A0%84%EC%84%B8&salesTypes[1]=%EC%9B%94%EC%84%B8&lngEast=126.90536809798569&lngWest=126.8760163604908&latSouth=37.495284634588394&latNorth=37.49882571686236&domain=zigbang&checkAnyItemWithoutFilter=true

응답 구조

{
  "items": [
    {
      "lat": 37.496131896972656,
      "lng": 126.88968658447266,
      "itemId": 45010031,
      "itemBmType": "ZIGBANG"
    }
  ]
}

2단계: 매물 상세 정보 일괄 조회

POST https://apis.zigbang.com/v2/items/list
Content-Type: application/json

요청 Body

{
  "item_ids": [45010031, 45075818],
  "domain": "zigbang"
}

응답 구조 (원룸)

{
  "items": [
    {
      "item_id": 45010031,
      "sales_type": "월세",
      "deposit": 1000,
      "rent": 60,
      "size_m2": 56.33,
      "전용면적": {"m2": 29.4, "p": "8.9"},
      "floor": "8",
      "building_floor": "15",
      "title": "깔끔복층오피ㅁ 방크기 최고ㅁ 빌트인냉장고 완비ㅁ",
      "room_type": "03",
      "service_type": "오피스텔",
      "address": "구로구 구로동"
    }
  ]
}

🏢 오피스텔 검색 API (2단계 방식)

1단계: 지역별 매물 ID 수집

GET https://apis.zigbang.com/v2/items/officetel

파라미터

파라미터 예시값 설명
geohash wydjr 지역 해시코드
salesTypes[0] %EC%A0%84%EC%84%B8 전세 (URL 인코딩)
salesTypes[1] %EC%9B%94%EC%84%B8 월세 (URL 인코딩)
salesTypes[2] %EB%A7%A4%EB%A7%A4 매매 (URL 인코딩)
lngEast 126.90563245553034 동쪽 경도
lngWest 126.87629854615957 서쪽 경도
latSouth 37.48874362105286 남쪽 위도
latNorth 37.5044301828988 북쪽 위도
domain zigbang 도메인
checkAnyItemWithoutFilter true 필터 없이 전체 매물 확인

예시 URL

https://apis.zigbang.com/v2/items/officetel?depositMin=0&rentMin=0&salesTypes%5B0%5D=%EC%A0%84%EC%84%B8&salesTypes%5B1%5D=%EC%9B%94%EC%84%B8&salesTypes%5B2%5D=%EB%A7%A4%EB%A7%A4&salesPriceMin=0&lngEast=126.90563245553034&lngWest=126.87629854615957&latSouth=37.48874362105286&latNorth=37.5044301828988&geohash=wydjr&domain=zigbang&checkAnyItemWithoutFilter=true

응답 구조

{
  "items": [
    {
      "lat": 37.4971733093262,
      "lng": 126.891380310059,
      "itemId": 45112255,
      "itemBmType": "ZIGBANG"
    }
  ]
}

2단계: 매물 상세 정보 일괄 조회

POST https://apis.zigbang.com/v2/items/list
Content-Type: application/json

요청 Body

{
  "item_ids": [
    45112255,
    45032411,
    45083239,
    45114697,
    44988995
  ],
  "domain": "zigbang"
}

응답 구조 (오피스텔)

{
  "items": [
    {
      "item_id": 45112255,
      "sales_type": "월세",
      "deposit": 1000,
      "rent": 55,
      "size_m2": 21,
      "공급면적": {"m2": 21, "p": "6.4"},
      "전용면적": {"m2": 17.19, "p": "5.2"},
      "floor": "중",
      "building_floor": "16",
      "title": "1000에55 채광좋음 전입가능",
      "room_type": "01",
      "service_type": "오피스텔",
      "address": "구로구 구로동",
      "manage_cost": "8"
    }
  ]
}