UNPKG

budongsan-api

Version:

국토교통부 아파트 실거래가, 전월세, 단지 정보, 용적률 등 공공데이터 API 래퍼

384 lines (380 loc) 11.9 kB
type T_ApartmentInfo = { kaptCode: string; kaptName: string; kaptAddr: string; codeSaleNm: string; codeHeatNm: string; kaptTarea: number; kaptDongCnt: string; kaptdaCnt: number; kaptBcompany: string; kaptAcompany: string; kaptTel: string; kaptUrl: string; codeAptNm: string; doroJuso: string; codeMgrNm: string; codeHallNm: string; kaptUsedate: string; kaptFax: string; hoCnt: number; kaptMarea: number; kaptMparea60: number; kaptMparea85: number; kaptMparea135: number; kaptMparea136: number; privArea: string; bjdCode: string; kaptTopFloor: number; ktownFlrNo: number; kaptBaseFloor: number; kaptdEcntp: number; zipcode: string; }; type T_ApartmentDetailInfo = { kaptCode: string; kaptName: string; codeMgr: string; kaptMgrCnt: string; kaptCcompany: string; codeSec: string; kaptdScnt: string; kaptdSecCom: string; codeClean: string; kaptdClcnt: string; codeGarbage: string; codeDisinf: string; kaptdDcnt: string; disposalType: string; codeStr: string; kaptdEcapa: string | number; codeEcon: string; codeEmgr: string; codeFalarm: string; codeWsupply: string; codeElev: string; kaptdEcnt: number; kaptdPcnt: string; kaptdPcntu: string; codeNet: string; kaptdCccnt: string; welfareFacility: string; kaptdWtimebus: string; subwayLine: string; subwayStation: string; kaptdWtimesub: string; convenientFacility: string; educationFacility: string; groundElChargerCnt: number; undergroundElChargerCnt: number; }; type T_ApartmentSimpleInfo = { kaptCode: string; kaptName: string; bjdCode: string; as1: string; as2: string; as3: string; as4: string | null; }; type T_ApartmentTradeBasicInfo = { aptDong: number; aptNm: string; buildYear: number; buyerGbn: string; cdealDay: string; cdealType: string; dealAmount: string; dealDay: number; dealMonth: number; dealYear: number; dealingGbn: string; estateAgentSggNm: string; excluUseAr: number; floor: number; jibun: number; landLeaseholdGbn: string; rgstDate: string; sggCd: number; slerGbn: string; umdNm: string; }; type T_ApartmentTradeDetailInfo = { aptDong: number; aptNm: string; aptSeq: string; bonbun: string; bubun: string; buildYear: number; buyerGbn: string; cdealDay: string; cdealType: string; dealAmount: string; dealDay: number; dealMonth: number; dealYear: number; dealingGbn: string; estateAgentSggNm: string; excluUseAr: number; floor: number; jibun: number; landCd: number; landLeaseholdGbn: string; rgstDate: string; roadNm: string; roadNmBonbun: string; roadNmBubun: string; roadNmCd: number; roadNmSeq: string; roadNmSggCd: number; roadNmbCd: number; sggCd: number; slerGbn: string; umdCd: number; umdNm: string; }; type T_ApartmentRentInfo = { aptNm: string; buildYear: number; contractTerm: string; contractType: string; dealDay: number; dealMonth: number; dealYear: number; deposit: string; excluUseAr: number; floor: number; jibun: number; monthlyRent: number; preDeposit: string; preMonthlyRent: string; sggCd: number; umdNm: string; useRRRight: string; }; type T_BrRecapTitleInfo = { rnum: number; platPlc: string; sigunguCd: string; bjdongCd: string; platGbCd: string; bun: string; ji: string; mgmBldrgstPk: number; regstrGbCd: string; regstrGbCdNm: string; regstrKindCd: string; regstrKindCdNm: string; newOldRegstrGbCd: string; newOldRegstrGbCdNm: string; newPlatPlc: string; bldNm: string; splotNm: string; block: string; lot: string; bylotCnt: number; naRoadCd: string; naBjdongCd: string; naUgrndCd: string; naMainBun: string; naSubBun: string; platArea: number; archArea: number; bcRat: number; totArea: number; vlRatEstmTotArea: number; vlRat: number; mainPurpsCd: string; mainPurpsCdNm: string; etcPurps: string; hhldCnt: number; fmlyCnt: number; mainBldCnt: number; atchBldCnt: number; atchBldArea: number; totPkngCnt: number; indrMechUtcnt: number; indrMechArea: number; oudrMechUtcnt: number; oudrMechArea: number; indrAutoUtcnt: number; indrAutoArea: number; oudrAutoUtcnt: number; oudrAutoArea: number; pmsDay: string; stcnsDay: string; useAprDay: string; pmsnoYear: string; pmsnoKikCd: string; pmsnoKikCdNm: string; pmsnoGbCd: string; pmsnoGbCdNm: string; hoCnt: number; engrGrade: string; engrRat: number; engrEpi: number; gnBldGrade: string; gnBldCert: number; itgBldGrade: string; itgBldCert: number; crtnDay: string; }; /** * BudongsanAPI는 국토교통부 아파트 공공데이터를 조회하는 클라이언트입니다. */ declare class BudongsanAPIClass { private serviceKey; /** * BudongsanAPI 인스턴스를 생성합니다. * @param serviceKey 공공데이터 포털에서 발급받은 서비스 */ constructor(serviceKey: string); /** * 아파트 단지 기본 정보를 조회합니다. * @param kaptCode 아파트 단지 코드 * @returns 단지 기본 정보 (object) * @throws API 호출 실패 예외가 발생합니다. */ getApartmentBasicInfo(kaptCode: string): Promise<T_ApartmentInfo>; /** * 아파트 단지 상세 정보를 조회합니다. * @param kaptCode 아파트 단지 코드 * @returns 단지 상세 정보 (object) * @throws API 호출 실패 예외가 발생합니다. */ getApartmentDetailInfo(kaptCode: string): Promise<T_ApartmentDetailInfo>; /** * 시군구 코드에 따른 아파트 단지 목록을 조회합니다. * @param sigunguCode 시군구 코드 * @param numOfRows 페이지당 결과 * @param pageNo 페이지 번호 * @returns 단지 목록 (배열) * @throws API 호출 실패 예외가 발생합니다. */ getApartmentList(sigunguCode: string, numOfRows?: string, pageNo?: string): Promise<T_ApartmentSimpleInfo | Array<T_ApartmentSimpleInfo>>; /** * 특정 거래 년월의 아파트 실거래가(기본)를 조회합니다. * @param sigunguCode 시군구 코드 (5자리) * @param DEAL_YMD 거래 년월 (YYYYMM) * @param numOfRows 페이지당 결과 * @param pageNo 페이지 번호 * @returns 실거래 정보 목록 (배열) * @throws API 호출 실패 예외가 발생합니다. */ getApartmentTradeBasicList(sigunguCode: string, DEAL_YMD: string, numOfRows?: string, pageNo?: string): Promise<T_ApartmentTradeBasicInfo | Array<T_ApartmentSimpleInfo>>; /** * 특정 거래 년월의 아파트 실거래가(상세)를 페이지 단위로 조회합니다. * @param sigunguCode 시군구 코드 (5자리) * @param DEAL_YMD 거래 년월 (YYYYMM) * @param numOfRows 페이지당 결과 * @param pageNo 페이지 번호 * @returns 실거래 상세 정보 목록 (배열) * @throws API 호출 실패 예외가 발생합니다. */ getApartmentTradeDetailList(sigunguCode: string, DEAL_YMD: string, numOfRows?: string, pageNo?: string): Promise<T_ApartmentTradeDetailInfo | Array<T_ApartmentTradeDetailInfo>>; /** * 특정 거래 년월의 아파트 전월세 정보를 조회합니다. * @param sigunguCode 시군구 코드 (5자리) * @param DEAL_YMD 거래 년월 (YYYYMM) * @param numOfRows 페이지당 결과 * @param pageNo 페이지 번호 * @returns 전월세 정보 목록 (배열) * @throws API 호출 실패 예외가 발생합니다. */ getApartmentRentList(sigunguCode: string, DEAL_YMD: string, numOfRows?: string, pageNo?: string): Promise<T_ApartmentRentInfo | Array<T_ApartmentRentInfo>>; /** * 건축물대장 총괄표제부 정보를 조회합니다. * * @param {string} sigunguCode - 시군구 코드 (예: '11710') * @param {string} bjdongCode - 법정동 코드 (예: '11200') * @param {string} bun - 번지 (예: '0138') * @param {string} ji - 지번 (예: '0000') * @param {string} [numOfRows="10"] - 페이지당 결과 (기본값: 10) * @param {string} [pageNo="1"] - 페이지 번호 (기본값: 1) * @returns {Promise<any>} 건축물대장 총괄표제부 API 응답 데이터 */ getBrRecapTitleList(sigunguCode: string, bjdongCode: string, bun: string, ji: string, numOfRows?: string, pageNo?: string): Promise<T_BrRecapTitleInfo | Array<T_BrRecapTitleInfo>>; /** * 공통 fetch 응답 처리 로직 */ private fetchAndExtract; } type T_Bjd = { bjd_code: string; bjd_name: string; }; type T_SigunguFlat = { sido_name: string; sido_code: string; sigungu_name: string; sigungu_code: string; bjd_array?: T_Bjd[]; }; type T_SigunguKeyType = "code" | "name"; declare class SigunguServiceClass { private static _instance; private _dataCache; private _dataPath; private constructor(); private _getLibraryDataPath; static getInstance(): SigunguServiceClass; private _loadDataSync; getSigunguList(): T_SigunguFlat[]; getSigunguMap(keyType?: T_SigunguKeyType): Map<string, Omit<T_SigunguFlat, "bjd_array">>; getBjdList(): T_Bjd[]; getBjdMapBySigungu(keyType?: T_SigunguKeyType): Map<string, T_Bjd[]>; } declare const SigunguService: SigunguServiceClass; declare class BudongsanUtil { /** * 현재 한국 기준 연도와 월을 반환합니다. * @returns {{ year: string, month: string }} */ static getKoreanYearMonth(): { year: string; month: string; }; /** * 시작 연월부터 종료 연월까지의 YYYYMM 문자열 배열을 생성합니다. * @param {number} startYear 시작 연도 * @param {number} startMonth 시작 * @param {number} endYear 종료 연도 * @param {number} endMonth 종료 * @returns {string[]} YYYYMM 문자열 배열 */ static generateDealYMDRange(startYear: number, startMonth: number, endYear: number, endMonth: number): string[]; /** * 숫자 문자열을 한글 화폐 단위로 포맷팅합니다. (예: "55,000" "5억 5000만") * @param {string|number} amount 단위 기준 숫자 또는 문자열 * @returns {string} 한글 화폐 단위 문자열 */ static formatKoreanCurrency(amount: string | number): string; static getGoogleMapLatitudeAndlongitude: (krjuso: string, googleApikey: string) => Promise<{ latitude: string; longitude: string; } | { latitude: string; longitude: string; }>; static getKakaoMapPosition: (param_juso: string | number | boolean, kakaoApikey: string) => Promise<{ addressName: string; roadAddressName: string; apartKakaoName: string; latitude: number; longitude: number; } | { addressName: string; roadAddressName: string; apartKakaoName: string; latitude: string; longitude: string; } | { addressName: string; roadAddressName: string; apartKakaoName: string; latitude: string; longitude: string; }>; static getKakaoCategory: (param_y: number, param_x: number, param_category_group_code: string, kakaoApikey: string) => Promise<any>; } export { BudongsanAPIClass, BudongsanUtil, SigunguService, SigunguServiceClass };