본문바로가기
팝업API

API신청(원격 정보제공 서비스)

최신 도로명주소를 별도 개발없이 검색/활용할 수 있는 웹기반 UI가 제공됩니다.

팝업API

API정보

팝업 API정보
호출방식 구분 요청 URL 출력결과
POST
GET
https://www.juso.go.kr/addrlink/addrLinkUrl.do 파라미터
POST
GET
모바일 웹 https://www.juso.go.kr/addrlink/addrMobileLinkUrl.do 파라미터

요청변수

팝업 API 요청변수
요청변수명 타입 필수여부 설명
confmKey String Y 신청시 발급받은 승인키
returnUrl String Y 주소 검색 결과를 리턴받을 URL (통합검색창을 호출한 페이지)
resultType String N 도로명주소 검색결과 화면 출력유형
(1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명)
useDetailAddr String N 상세주소 동/층/호정보 제공여부
Y : 제공, N : 미제공(직접입력)
※ 자세한 내용은 'API신청 > 팝업API'메뉴에서 상세주소 팝업API 적용방법을 참고하시기 바랍니다.

출력결과

팝업 API 출력결과
출력변수명 타입 필수여부 설명
roadFullAddr String Y 전체 도로명주소
roadAddrPart1 String Y 도로명주소(참고항목 제외)
roadAddrPart2 String N 도로명주소 참고항목
jibunAddr String Y 지번주소
engAddr String Y 도로명주소(영문)
zipNo String Y 우편번호
addrDetail String N 고객 입력 상세 주소
admCd String Y 행정구역코드
rnMgtSn String Y 도로명코드
bdMgtSn String Y 건물관리번호
detBdNmList String N 상세건물명
bdNm String N 건물명
bdKdcd String Y 공동주택여부(1 : 공동주택, 0 : 비공동주택)
siNm String Y 시도명
sggNm String Y 시군구명
emdNm String Y 읍면동명
liNm String N 법정리명
rn String Y 도로명
udrtYn String Y 지하여부(0 : 지상, 1 : 지하)
buldMnnm Number Y 건물본번
buldSlno Number Y 건물부번
mtYn String Y 산여부(0 : 대지, 1 : 산)
lnbrMnnm Number Y 지번본번(번지)
lnbrSlno Number Y 지번부번(호)
emdNo String Y 읍면동일련번호

오류코드

팝업 API 오류코드
오류메세지 조치방법
시스템에러 도로명주소 도움센터로 문의하시기 바랍니다.
승인되지 않은 KEY 입니다. 정확한 승인키를 입력하세요.(검색API 승인키 사용불가)
정상적인 경로로 접속하시기 바랍니다. 요청변수 중 returnUrl 항목이 없습니다. 요청변수를 다시 확인하세요.
검색어가 입력되지 않았습니다. 검색어를 입력해주세요.
주소를 상세히 입력해 주시기 바랍니다. 시도명으로는 검색이 불가합니다.
검색어는 두글자 이상 입력되어야 합니다. 한 글자만으로는 검색이 불가합니다.
검색어는 문자와 숫자 같이 입력되어야 합니다. 숫자만으로는 검색이 불가합니다.
검색어가 너무 깁니다. (한글40자, 영문,숫자 80자 이하) 80글자를 초과한 검색어는 검색이 불가합니다.
검색어에 너무 긴 숫자가 포함되어 있습니다. (숫자10자 이하) 10자리를 초과하는 숫자가 포함된 검색어는 검색이 불가합니다.
특수문자+숫자만으로는 검색이 불가능 합니다. 특수문자와 숫자만으로 이루어진 검색어는 검색이 불가합니다.
SQL 예약어 또는 특수문자( %,=,>,<,[,] )는 검색이 불가능 합니다. SQL예약어 또는 특수문자를 제거 후 검색합니다.
개발승인키 기간이 만료되어 서비스를 이용하실 수 없습니다. 개발승인키를 다시 발급받아 API서비스를 호출합니다.
검색 범위를 초과하였습니다. 검색결과가 9천건이 초과하는 검색은 불가합니다.
주소입력화면 소스보기
						
/*
 파일명 : Sample.jsp
 내  용 : 주소입력화면 (Sample.jsp ↔jusoPopup.jsp ↔ 도로명주소 팝업API )
*/

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="javascript">
// opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("팝업API 호출 소스"도 동일하게 적용시켜야 합니다.)
//document.domain = "abc.go.kr";

function goPopup(){
	// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(https://www.juso.go.kr/addrlink/addrLinkUrl.do)를 호출하게 됩니다.
    var pop = window.open("/popup/jusoPopup.jsp","pop","width=570,height=420, scrollbars=yes, resizable=yes"); 
    
	// 모바일 웹인 경우, 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(https://www.juso.go.kr/addrlink/addrMobileLinkUrl.do)를 호출하게 됩니다.
    //var pop = window.open("/popup/jusoPopup.jsp","pop","scrollbars=yes, resizable=yes"); 
}
/** API 서비스 제공항목 확대 (2017.02) **/
function jusoCallBack(roadFullAddr,roadAddrPart1,addrDetail,roadAddrPart2,engAddr, jibunAddr, zipNo, admCd, rnMgtSn, bdMgtSn
						, detBdNmList, bdNm, bdKdcd, siNm, sggNm, emdNm, liNm, rn, udrtYn, buldMnnm, buldSlno, mtYn, lnbrMnnm, lnbrSlno, emdNo){
	// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
	document.form.roadAddrPart1.value = roadAddrPart1;
	document.form.roadAddrPart2.value = roadAddrPart2;
	document.form.addrDetail.value = addrDetail;
	document.form.zipNo.value = zipNo;
}
</script>
<title>주소 입력 샘플</title>
</head>
<body>
<form name="form" id="form" method="post">
	<table >
			<colgroup>
				<col style="width:20%"><col>
			</colgroup>
			<tbody>
				<tr>
					<th>우편번호</th>
					<td>
					    <input type="hidden" id="confmKey" name="confmKey" value=""  >
						<input type="text" id="zipNo" name="zipNo" readonly style="width:100px">
						<input type="button"  value="주소검색" onclick="goPopup();">
					</td>
				</tr>
				<tr>
					<th>도로명주소</th>
					<td><input type="text" id="roadAddrPart1" style="width:85%"></td>
				</tr>
				<tr>
					<th>상세주소</th>
					<td>
						<input type="text" id="addrDetail" style="width:40%" value="">
						<input type="text" id="roadAddrPart2"  style="width:40%" value="">
					</td>
				</tr>
			</tbody>
		</table>
</form>
</body>
</html>
						
					
팝업API 호출 소스보기
						
/*
 파일명 : jusoPopup.jsp
 내  용 : 팝업API 호출 소스(jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
/*
모의 해킹 테스트 시 팝업API를 호출하시면 IP가 차단 될 수 있습니다. 
주소팝업API를 제외하시고 테스트 하시기 바랍니다.
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<% 
	//request.setCharacterEncoding("UTF-8");  //한글깨지면 주석제거
	//request.setCharacterEncoding("EUC-KR");  //해당시스템의 인코딩타입이 EUC-KR일경우에
	String inputYn = request.getParameter("inputYn"); 
	String roadFullAddr = request.getParameter("roadFullAddr"); 
	String roadAddrPart1 = request.getParameter("roadAddrPart1"); 
	String roadAddrPart2 = request.getParameter("roadAddrPart2"); 
	String engAddr = request.getParameter("engAddr"); 
	String jibunAddr = request.getParameter("jibunAddr"); 
	String zipNo = request.getParameter("zipNo"); 
	String addrDetail = request.getParameter("addrDetail"); 
	String admCd    = request.getParameter("admCd");
	String rnMgtSn = request.getParameter("rnMgtSn");
	String bdMgtSn  = request.getParameter("bdMgtSn");
	/** API 서비스 제공항목 확대 (2017.02) **/
	String detBdNmList  = request.getParameter("detBdNmList");
	String bdNm  = request.getParameter("bdNm");
	String bdKdcd  = request.getParameter("bdKdcd");
	String siNm  = request.getParameter("siNm");
	String sggNm  = request.getParameter("sggNm");
	String emdNm  = request.getParameter("emdNm");
	String liNm  = request.getParameter("liNm");
	String rn  = request.getParameter("rn");
	String udrtYn  = request.getParameter("udrtYn");
	String buldMnnm  = request.getParameter("buldMnnm");
	String buldSlno  = request.getParameter("buldSlno");
	String mtYn  = request.getParameter("mtYn");
	String lnbrMnnm  = request.getParameter("lnbrMnnm");
	String lnbrSlno  = request.getParameter("lnbrSlno");
	String emdNo  = request.getParameter("emdNo");
%>
</head>
<script language="javascript">
//opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("주소입력화면 소스"도 동일하게 적용시켜야 합니다.)
//document.domain = "abc.go.kr";

function init(){
	var url = location.href;
	var confmKey = "TESTJUSOGOKR";//승인키
	// resultType항목 추가(2016.10.06)
	var resultType = "4"; // 도로명주소 검색결과 화면 출력유형, 1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명
	var inputYn= "<%=inputYn%>";
	if(inputYn != "Y"){
		document.form.confmKey.value = confmKey;
		document.form.returnUrl.value = url;
		document.form.resultType.value = resultType; // resultType항목 추가(2016.10.06)
		document.form.action="https://www.juso.go.kr/addrlink/addrLinkUrl.do"; // 인터넷망
		//document.form.action="https://www.juso.go.kr/addrlink/addrMobileLinkUrl.do"; //모바일 웹인 경우, 인터넷망
		document.form.submit();
	}else{
		/** API 서비스 제공항목 확대 (2017.02) **/
		opener.jusoCallBack("<%=roadFullAddr%>","<%=roadAddrPart1%>","<%=addrDetail%>", "<%=roadAddrPart2%>","<%=engAddr%>"
			, "<%=jibunAddr%>","<%=zipNo%>", "<%=admCd%>", "<%=rnMgtSn%>", "<%=bdMgtSn%>", "<%=detBdNmList%>"
			, "<%=bdNm%>", "<%=bdKdcd%>", "<%=siNm%>", "<%=sggNm%>", "<%=emdNm%>", "<%=liNm%>", "<%=rn%>", "<%=udrtYn%>"
			, "<%=buldMnnm%>", "<%=buldSlno%>", "<%=mtYn%>", "<%=lnbrMnnm%>", "<%=lnbrSlno%>", "<%=emdNo%>");
		window.close();
	}
}
</script>
<body onload="init();">
	<form id="form" name="form" method="post">
		<input type="hidden" id="confmKey" name="confmKey" value=""/>
		<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
		<input type="hidden" id="resultType" name="resultType" value=""/> // resultType항목 추가(2016.10.06)
		<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START--> 
		<!-- 
		<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
		 -->
		<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
	</form>
</body>
</html>
						
					
CSS파일 소스보기(웹)
						
/* 바탕 배경 이미지 */
.pop-address-search { background-image: url(http://www.0000.com/img/backImg.png);}
/* 회사 로고 이미지 */
.pop-address-search .pop-address-search-inner .logo { background: url(http://www.0000.com/img/logo.png) no-repeat; background-position:center; }

/* 바탕 배경색상 */
.pop-address-search { background-color:#ECECEC; }
/* 검색창 색상 */
.pop-address-search .pop-address-search-inner .wrap input { background-color:#FFFFFF; }
/* 검색버튼 색상 */
.pop-address-search .pop-address-search-inner .wrap { background-color:#FFFFFF; }
/* 본문 배경색(홀수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(odd) td {background:#FFFFFF}
/* 본문 배경색(짝수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(even) td {background:#FFFFFF}
						
					

API정보

영문 팝업 API정보
호출방식 요청 URL 출력결과
POST
GET
https://www.juso.go.kr/addrlink/addrEngUrl.do 파라미터

요청변수

영문 팝업 API 요청변수
요청변수명 타입 필수여부 설명
confmKey String Y 신청시 발급받은 승인키
returnUrl String Y 주소 검색 결과를 리턴받을 URL (통합검색창을 호출한 페이지)
resultType String N 도로명주소 검색결과 화면 출력유형
(1 : 도로명, 2 : 도로명+지번)

출력결과

영문 팝업 API 출력결과
출력변수명 타입 필수여부 설명
roadFullAddr String Y 전체 영문 도로명주소
roadAddr String Y 영문 도로명주소
jibunAddr String Y 영문 지번주소
zipNo String Y 우편번호
addrDetail String N 고객 입력 상세 주소
admCd String Y 행정구역코드
rnMgtSn String Y 도로명코드
bdKdcd String Y 공동주택여부(1 : 공동주택, 0 : 비공동주택)
siNm String Y 영문 시도명
sggNm String Y 영문 시군구명
emdNm String Y 영문 읍면동명
liNm String N 영문 법정리명
rn String Y 영문 도로명
udrtYn String Y 지하여부(0 : 지상, 1 : 지하)
buldMnnm Number Y 건물본번
buldSlno Number Y 건물부번
mtYn String Y 산여부(0 : 대지, 1 : 산)
lnbrMnnm Number Y 지번본번(번지)
lnbrSlno Number Y 지번부번(호)
korAddr String Y 도로명주소(한글)

오류코드

영문 팝업 API 오류코드
오류메세지 조치방법
시스템에러 도로명주소 도움센터로 문의하시기 바랍니다.
승인되지 않은 KEY 입니다. 정확한 승인키를 입력하세요.(검색API 승인키 사용불가)
Please connect us with a normal route. 요청변수 중 returnUrl 항목이 없습니다. 요청변수를 다시 확인하세요.
No search word has been entered. 검색어를 입력해주세요.
Please enter your address in detail. 시도명으로는 검색이 불가합니다.
Address entered too short. 한 글자만으로는 검색이 불가합니다.
It is not possible to search by address only number. 숫자만으로는 검색이 불가합니다.
Address entered too long. 80글자를 초과한 검색어는 검색이 불가합니다.
Long numbers are included. 10자리를 초과하는 숫자가 포함된 검색어는 검색이 불가합니다.
Can not search special characters + numbers. 특수문자와 숫자만으로 이루어진 검색어는 검색이 불가합니다.
Can not search SQL & special characters(%,=,>,<,[,]). SQL예약어 또는 특수문자를 제거 후 검색합니다.
The authorization key preiod has expired. 개발승인키를 다시 발급받아 API서비스를 호출합니다.
The search range has been exceeded. 검색결과가 9천건이 초과하는 검색은 불가합니다.
주소입력화면 소스보기
						
/*
 파일명 : Sample.jsp
 내  용 : 주소입력화면 (Sample.jsp ↔jusoPopup.jsp ↔ 도로명주소 팝업API )
*/

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="javascript">
function goPopup(){
	// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(https://www.juso.go.kr/addrlink/addrEngUrl.do)를 호출하게 됩니다.
    var pop = window.open("/popup/jusoPopup.jsp","pop","width=570,height=420, scrollbars=yes, resizable=yes"); 
}
function jusoCallBack(roadFullAddr, roadAddr, addrDetail, jibunAddr, zipNo, admCd, rnMgtSn
						, bdKdcd, siNm, sggNm, emdNm, liNm, rn, udrtYn, buldMnnm, buldSlno, mtYn, lnbrMnnm, lnbrSlno, korAddr){
	// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
	document.form.roadAddr.value = roadAddr;
	document.form.addrDetail.value = addrDetail;
	document.form.zipNo.value = zipNo;
}
</script>
<title>주소 입력 샘플</title>
</head>
<body>
<form name="form" id="form" method="post">
	<table >
			<colgroup>
				<col style="width:20%"><col>
			</colgroup>
			<tbody>
				<tr>
					<th>우편번호</th>
					<td>
					    <input type="hidden" id="confmKey" name="confmKey" value=""  >
						<input type="text" id="zipNo" name="zipNo" readonly style="width:100px">
						<input type="button"  value="주소검색" onclick="goPopup();">
					</td>
				</tr>
				<tr>
					<th>도로명주소</th>
					<td><input type="text" id="roadAddr" style="width:85%"></td>
				</tr>
				<tr>
					<th>상세주소</th>
					<td><input type="text" id="addrDetail" style="width:85%" ></td>
				</tr>
			</tbody>
		</table>
</form>
</body>
</html>
						
					
팝업API 호출 소스보기
						
/*
 파일명 : jusoPopup.jsp
 내  용 : 팝업API 호출 소스(jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
/*
모의 해킹 테스트 시 팝업API를 호출하시면 IP가 차단 될 수 있습니다. 
주소팝업API를 제외하시고 테스트 하시기 바랍니다.
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<% 
	//request.setCharacterEncoding("UTF-8");  //한글깨지면 주석제거
	//request.setCharacterEncoding("EUC-KR");  //해당시스템의 인코딩타입이 EUC-KR일경우에
	String inputYn = request.getParameter("inputYn"); 
	String roadFullAddr = request.getParameter("roadFullAddr"); 
	String roadAddr = request.getParameter("roadAddr"); 
	String jibunAddr = request.getParameter("jibunAddr"); 
	String zipNo = request.getParameter("zipNo"); 
	String addrDetail = request.getParameter("addrDetail"); 
	String admCd    = request.getParameter("admCd");
	String rnMgtSn = request.getParameter("rnMgtSn");
	String bdKdcd  = request.getParameter("bdKdcd");
	String siNm  = request.getParameter("siNm");
	String sggNm  = request.getParameter("sggNm");
	String emdNm  = request.getParameter("emdNm");
	String liNm  = request.getParameter("liNm");
	String rn  = request.getParameter("rn");
	String udrtYn  = request.getParameter("udrtYn");
	String buldMnnm  = request.getParameter("buldMnnm");
	String buldSlno  = request.getParameter("buldSlno");
	String mtYn  = request.getParameter("mtYn");
	String lnbrMnnm  = request.getParameter("lnbrMnnm");
	String lnbrSlno  = request.getParameter("lnbrSlno");
	String korAddr  = request.getParameter("korAddr");
%>
</head>
<script language="javascript">
function init(){
	var url = location.href;
	var confmKey = "TESTJUSOGOKR";//승인키
	var resultType = "2"; // 도로명주소 검색결과 화면 출력유형, 1 : 도로명, 2 : 도로명+지번
	var inputYn= "<%=inputYn%>";
	if(inputYn != "Y"){
		document.form.confmKey.value = confmKey;
		document.form.returnUrl.value = url;
		document.form.resultType.value = resultType;
		document.form.action="https://www.juso.go.kr/addrlink/addrEngUrl.do"; // 인터넷망
		document.form.submit();
	}else{
		opener.jusoCallBack("<%=roadFullAddr%>","<%=roadAddr%>","<%=addrDetail%>" 
			, "<%=jibunAddr%>","<%=zipNo%>", "<%=admCd%>", "<%=rnMgtSn%>"
			, "<%=bdKdcd%>", "<%=siNm%>", "<%=sggNm%>", "<%=emdNm%>", "<%=liNm%>", "<%=rn%>", "<%=udrtYn%>"
			, "<%=buldMnnm%>", "<%=buldSlno%>", "<%=mtYn%>", "<%=lnbrMnnm%>", "<%=lnbrSlno%>", "<%=korAddr%>");
		window.close();
	}
}
</script>
<body onload="init();">
	<form id="form" name="form" method="post">
		<input type="hidden" id="confmKey" name="confmKey" value=""/>
		<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
		<input type="hidden" id="resultType" name="resultType" value=""/>
		<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START--> 
		<!-- 
		<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
		 -->
		<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
	</form>
</body>
</html>
						
					
CSS파일 소스보기(웹)
						
/* 바탕 배경 이미지 */
.pop-address-search { background-image: url(http://www.0000.com/img/backImg.png);}
/* 회사 로고 이미지 */
.pop-address-search .pop-address-search-inner .logo { background: url(http://www.0000.com/img/logo.png) no-repeat; background-position:center; }

/* 바탕 배경색상 */
.pop-address-search { background-color:#ECECEC; }
/* 검색창 색상 */
.pop-address-search .pop-address-search-inner .wrap input { background-color:#FFFFFF; }
/* 검색버튼 색상 */
.pop-address-search .pop-address-search-inner .wrap { background-color:#FFFFFF; }
/* 본문 배경색(홀수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(odd) td {background:#FFFFFF}
/* 본문 배경색(짝수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(even) td {background:#FFFFFF}
						
					

API정보

좌표 팝업 API정보
호출방식 요청 URL 출력결과
POST
GET
https://www.juso.go.kr/addrlink/addrCoordUrl.do 파라미터

요청변수

좌표 팝업 API 요청변수
요청변수명 타입 필수여부 설명
confmKey String Y 신청시 발급받은 승인키
returnUrl String Y 주소 검색 결과를 리턴받을 URL (통합검색창을 호출한 페이지)
resultType String N 도로명주소 검색결과 화면 출력유형
(1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명)
useDetailAddr String N 상세주소 동/층/호정보 제공여부
Y : 제공, N : 미제공(직접입력)
※ 자세한 내용은 'API신청 > 팝업API'메뉴에서 상세주소 팝업API 적용방법을 참고하시기 바랍니다.

출력결과

좌표 팝업 API 출력결과
출력변수명 타입 필수여부 설명
roadFullAddr String Y 전체 도로명주소
roadAddrPart1 String Y 도로명주소(참고항목 제외)
roadAddrPart2 String N 도로명주소 참고항목
jibunAddr String Y 지번주소
engAddr String Y 도로명주소(영문)
zipNo String Y 우편번호
addrDetail String N 고객 입력 상세 주소
admCd String Y 행정구역코드
rnMgtSn String Y 도로명코드
bdMgtSn String Y 건물관리번호
detBdNmList String N 상세건물명
bdNm String N 건물명
bdKdcd String Y 공동주택여부(1 : 공동주택, 0 : 비공동주택)
siNm String Y 시도명
sggNm String Y 시군구명
emdNm String Y 읍면동명
liNm String N 법정리명
rn String Y 도로명
udrtYn String Y 지하여부(0 : 지상, 1 : 지하)
buldMnnm Number Y 건물본번
buldSlno Number Y 건물부번
mtYn String Y 산여부(0 : 대지, 1 : 산)
lnbrMnnm Number Y 지번본번(번지)
lnbrSlno Number Y 지번부번(호)
emdNo String Y 읍면동일련번호
entX String Y X좌표
entY String Y Y좌표

오류코드

팝업 API 오류코드
오류메세지 조치방법
시스템에러 도로명주소 도움센터로 문의하시기 바랍니다.
승인되지 않은 KEY 입니다. 정확한 승인키를 입력하세요.(검색API 승인키 사용불가)
정상적인 경로로 접속하시기 바랍니다. 요청변수 중 returnUrl 항목이 없습니다. 요청변수를 다시 확인하세요.
검색어가 입력되지 않았습니다. 검색어를 입력해주세요.
주소를 상세히 입력해 주시기 바랍니다. 시도명으로는 검색이 불가합니다.
검색어는 두글자 이상 입력되어야 합니다. 한 글자만으로는 검색이 불가합니다.
검색어는 문자와 숫자 같이 입력되어야 합니다. 숫자만으로는 검색이 불가합니다.
검색어가 너무 깁니다. (한글40자, 영문,숫자 80자 이하) 80글자를 초과한 검색어는 검색이 불가합니다.
검색어에 너무 긴 숫자가 포함되어 있습니다. (숫자10자 이하) 10자리를 초과하는 숫자가 포함된 검색어는 검색이 불가합니다.
특수문자+숫자만으로는 검색이 불가능 합니다. 특수문자와 숫자만으로 이루어진 검색어는 검색이 불가합니다.
SQL 예약어 또는 특수문자( %,=,>,<,[,] )는 검색이 불가능 합니다. SQL예약어 또는 특수문자를 제거 후 검색합니다.
개발승인키 기간이 만료되어 서비스를 이용하실 수 없습니다. 개발승인키를 다시 발급받아 API서비스를 호출합니다.
검색 범위를 초과하였습니다. 검색결과가 9천건이 초과하는 검색은 불가합니다.
주소입력화면 소스보기
						
/*
 파일명 : Sample.jsp
 내  용 : 주소입력화면 (Sample.jsp ↔jusoPopup.jsp ↔ 도로명주소 팝업API )
*/

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="javascript">
function goPopup(){
	// 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(https://www.juso.go.kr/addrlink/addrCoordUrl.do)를 호출하게 됩니다.
    var pop = window.open("/popup/jusoPopup.jsp","pop","width=570,height=420, scrollbars=yes, resizable=yes"); 
}
function jusoCallBack(roadFullAddr,roadAddrPart1,addrDetail,roadAddrPart2,engAddr, jibunAddr, zipNo, admCd, rnMgtSn, bdMgtSn
						, detBdNmList, bdNm, bdKdcd, siNm, sggNm, emdNm, liNm, rn, udrtYn, buldMnnm, buldSlno, mtYn, lnbrMnnm, lnbrSlno
						, emdNo, entX, entY){
	// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
	document.form.roadAddrPart1.value = roadAddrPart1;
	document.form.roadAddrPart2.value = roadAddrPart2;
	document.form.addrDetail.value = addrDetail;
	document.form.zipNo.value = zipNo;
	document.form.entX.value = entX;
	document.form.entY.value = entY;
}
</script>
<title>주소 입력 샘플</title>
</head>
<body>
<form name="form" id="form" method="post">
	<table >
			<colgroup>
				<col style="width:20%"><col>
			</colgroup>
			<tbody>
				<tr>
					<th>우편번호</th>
					<td>
					    <input type="hidden" id="confmKey" name="confmKey" value=""  >
						<input type="text" id="zipNo" name="zipNo" readonly style="width:100px">
						<input type="button"  value="주소검색" onclick="goPopup();">
					</td>
				</tr>
				<tr>
					<th><label>도로명주소</label></th>
					<td><input type="text" id="roadAddrPart1" style="width:85%"></td>
				</tr>
				<tr>
					<th>상세주소</th>
					<td>
						<input type="text" id="addrDetail" style="width:40%" value="">
						<input type="text" id="roadAddrPart2"  style="width:40%" value="">
					</td>
				</tr>
				<tr>
					<th>좌표정보</th>
					<td>
						<input type="text" id="entX" style="width:40%" value="">
						<input type="text" id="entY"  style="width:40%" value="">
					</td>
				</tr>
			</tbody>
		</table>
</form>
</body>
</html>
						
					
팝업API 호출 소스보기
						
/*
 파일명 : jusoPopup.jsp
 내  용 : 팝업API 호출 소스(jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
/*
모의 해킹 테스트 시 팝업API를 호출하시면 IP가 차단 될 수 있습니다. 
주소팝업API를 제외하시고 테스트 하시기 바랍니다.
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<% 
	//request.setCharacterEncoding("UTF-8");  //한글깨지면 주석제거
	//request.setCharacterEncoding("EUC-KR");  //해당시스템의 인코딩타입이 EUC-KR일경우에
	String inputYn = request.getParameter("inputYn"); 
	String roadFullAddr = request.getParameter("roadFullAddr"); 
	String roadAddrPart1 = request.getParameter("roadAddrPart1"); 
	String roadAddrPart2 = request.getParameter("roadAddrPart2"); 
	String engAddr = request.getParameter("engAddr"); 
	String jibunAddr = request.getParameter("jibunAddr"); 
	String zipNo = request.getParameter("zipNo"); 
	String addrDetail = request.getParameter("addrDetail"); 
	String admCd    = request.getParameter("admCd");
	String rnMgtSn = request.getParameter("rnMgtSn");
	String bdMgtSn  = request.getParameter("bdMgtSn");
	String detBdNmList  = request.getParameter("detBdNmList");
	String bdNm  = request.getParameter("bdNm");
	String bdKdcd  = request.getParameter("bdKdcd");
	String siNm  = request.getParameter("siNm");
	String sggNm  = request.getParameter("sggNm");
	String emdNm  = request.getParameter("emdNm");
	String liNm  = request.getParameter("liNm");
	String rn  = request.getParameter("rn");
	String udrtYn  = request.getParameter("udrtYn");
	String buldMnnm  = request.getParameter("buldMnnm");
	String buldSlno  = request.getParameter("buldSlno");
	String mtYn  = request.getParameter("mtYn");
	String lnbrMnnm  = request.getParameter("lnbrMnnm");
	String lnbrSlno  = request.getParameter("lnbrSlno");
	String emdNo  = request.getParameter("emdNo");
	String entX  = request.getParameter("entX");
	String entY  = request.getParameter("entY");
%>
</head>
<script language="javascript">
function init(){
	var url = location.href;
	var confmKey = "TESTJUSOGOKR";//승인키
	var resultType = "4"; // 도로명주소 검색결과 화면 출력유형, 1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명
	var inputYn= "<%=inputYn%>";
	if(inputYn != "Y"){
		document.form.confmKey.value = confmKey;
		document.form.returnUrl.value = url;
		document.form.resultType.value = resultType;
		document.form.action="https://www.juso.go.kr/addrlink/addrCoordUrl.do"; // 인터넷망
		document.form.submit();
	}else{
		opener.jusoCallBack("<%=roadFullAddr%>","<%=roadAddrPart1%>","<%=addrDetail%>", "<%=roadAddrPart2%>","<%=engAddr%>"
			, "<%=jibunAddr%>","<%=zipNo%>", "<%=admCd%>", "<%=rnMgtSn%>", "<%=bdMgtSn%>", "<%=detBdNmList%>"
			, "<%=bdNm%>", "<%=bdKdcd%>", "<%=siNm%>", "<%=sggNm%>", "<%=emdNm%>", "<%=liNm%>", "<%=rn%>", "<%=udrtYn%>"
			, "<%=buldMnnm%>", "<%=buldSlno%>", "<%=mtYn%>", "<%=lnbrMnnm%>", "<%=lnbrSlno%>", "<%=emdNo%>", "<%=entX%>", "<%=entY%>");
		window.close();
	}
}
</script>
<body onload="init();">
	<form id="form" name="form" method="post">
		<input type="hidden" id="confmKey" name="confmKey" value=""/>
		<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
		<input type="hidden" id="resultType" name="resultType" value=""/>
		<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START--> 
		<!-- 
		<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
		 -->
		<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
	</form>
</body>
</html>
						
					
CSS파일 소스보기(웹)
						
/* 바탕 배경 이미지 */
.pop-address-search { background-image: url(http://www.0000.com/img/backImg.png);}
/* 회사 로고 이미지 */
.pop-address-search .pop-address-search-inner .logo { background: url(http://www.0000.com/img/logo.png) no-repeat; background-position:center; }

/* 바탕 배경색상 */
.pop-address-search { background-color:#ECECEC; }
/* 검색창 색상 */
.pop-address-search .pop-address-search-inner .wrap input { background-color:#FFFFFF; }
/* 검색버튼 색상 */
.pop-address-search .pop-address-search-inner .wrap { background-color:#FFFFFF; }
/* 본문 배경색(홀수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(odd) td {background:#FFFFFF}
/* 본문 배경색(짝수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(even) td {background:#FFFFFF}
						
					

모바일 팝업 API 화면예시(스마트폰과 태블릿)

모바일 팝업 API 화면예시

샘플소스 및 다운로드 지원

API정보

모바일 팝업 API정보
호출방식 요청 URL 출력결과
POST
GET
https://www.juso.go.kr/addrlink/addrMobileLinkUrl.do 파라미터

요청변수

모바일 팝업 API 요청변수
요청변수명 타입 필수여부 설명
confmKey String Y 신청시 발급받은 승인키
returnUrl String Y 주소 검색 결과를 리턴받을 URL (통합검색창을 호출한 페이지)
resultType String N 도로명주소 검색결과 화면 출력유형
(1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명)
useDetailAddr String N 상세주소 동/층/호정보 제공여부
Y : 제공, N : 미제공(직접입력)
※ 자세한 내용은 'API신청 > 팝업API'메뉴에서 상세주소 팝업API 적용방법을 참고하시기 바랍니다.

출력결과

모바일 팝업 API 출력결과
출력변수명 타입 필수여부 설명
roadFullAddr String Y 전체 도로명주소
roadAddrPart1 String Y 도로명주소(참고항목 제외)
roadAddrPart2 String N 도로명주소 참고항목
jibunAddr String Y 지번주소
engAddr String Y 도로명주소(영문)
zipNo String Y 우편번호
addrDetail String N 고객 입력 상세 주소
admCd String Y 행정구역코드
rnMgtSn String Y 도로명코드
bdMgtSn String Y 건물관리번호
detBdNmList String N 상세건물명
bdNm String N 건물명
bdKdcd String Y 공동주택여부(1 : 공동주택, 0 : 비공동주택)
siNm String Y 시도명
sggNm String Y 시군구명
emdNm String Y 읍면동명
liNm String N 법정리명
rn String Y 도로명
udrtYn String Y 지하여부(0 : 지상, 1 : 지하)
buldMnnm Number Y 건물본번
buldSlno Number Y 건물부번
mtYn String Y 산여부(0 : 대지, 1 : 산)
lnbrMnnm Number Y 지번본번(번지)
lnbrSlno Number Y 지번부번(호)
emdNo String Y 읍면동일련번호

오류코드

팝업 API 오류코드
오류메세지 조치방법
시스템에러 도로명주소 도움센터로 문의하시기 바랍니다.
승인되지 않은 KEY 입니다. 정확한 승인키를 입력하세요.(검색API 승인키 사용불가)
정상적인 경로로 접속하시기 바랍니다. 요청변수 중 returnUrl 항목이 없습니다. 요청변수를 다시 확인하세요.
검색어가 입력되지 않았습니다. 검색어를 입력해주세요.
주소를 상세히 입력해 주시기 바랍니다. 시도명으로는 검색이 불가합니다.
검색어는 두글자 이상 입력되어야 합니다. 한 글자만으로는 검색이 불가합니다.
검색어는 문자와 숫자 같이 입력되어야 합니다. 숫자만으로는 검색이 불가합니다.
검색어가 너무 깁니다. (한글40자, 영문,숫자 80자 이하) 80글자를 초과한 검색어는 검색이 불가합니다.
검색어에 너무 긴 숫자가 포함되어 있습니다. (숫자10자 이하) 10자리를 초과하는 숫자가 포함된 검색어는 검색이 불가합니다.
특수문자+숫자만으로는 검색이 불가능 합니다. 특수문자와 숫자만으로 이루어진 검색어는 검색이 불가합니다.
SQL 예약어 또는 특수문자( %,=,>,<,[,] )는 검색이 불가능 합니다. SQL예약어 또는 특수문자를 제거 후 검색합니다.
개발승인키 기간이 만료되어 서비스를 이용하실 수 없습니다. 개발승인키를 다시 발급받아 API서비스를 호출합니다.
검색 범위를 초과하였습니다. 검색결과가 9천건이 초과하는 검색은 불가합니다.
주소입력화면 소스보기
						
/*
 파일명 : Sample.jsp
 내  용 : 주소입력화면 (Sample.jsp ↔jusoPopup.jsp ↔ 도로명주소 팝업API )
*/

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="javascript">
// opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("팝업API 호출 소스"도 동일하게 적용시켜야 합니다.)
//document.domain = "abc.go.kr";

function goPopup(){
	// 모바일 웹인 경우, 호출된 페이지(jusopopup.jsp)에서 실제 주소검색URL(https://www.juso.go.kr/addrlink/addrMobileLinkUrl.do)를 호출하게 됩니다.
    var pop = window.open("/popup/jusoPopup.jsp","pop","scrollbars=yes, resizable=yes"); 
}
/** API 서비스 제공항목 확대 (2017.02) **/
function jusoCallBack(roadFullAddr,roadAddrPart1,addrDetail,roadAddrPart2,engAddr, jibunAddr, zipNo, admCd, rnMgtSn, bdMgtSn
						, detBdNmList, bdNm, bdKdcd, siNm, sggNm, emdNm, liNm, rn, udrtYn, buldMnnm, buldSlno, mtYn, lnbrMnnm, lnbrSlno, emdNo){
	// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
	document.form.roadAddrPart1.value = roadAddrPart1;
	document.form.roadAddrPart2.value = roadAddrPart2;
	document.form.addrDetail.value = addrDetail;
	document.form.zipNo.value = zipNo;
}
</script>
<title>주소 입력 샘플</title>
</head>
<body>
<form name="form" id="form" method="post">
	<table >
			<colgroup>
				<col style="width:20%"><col>
			</colgroup>
			<tbody>
				<tr>
					<th>우편번호</th>
					<td>
					    <input type="hidden" id="confmKey" name="confmKey" value=""  >
						<input type="text" id="zipNo" name="zipNo" readonly style="width:100px">
						<input type="button"  value="주소검색" onclick="goPopup();">
					</td>
				</tr>
				<tr>
					<th><label>도로명주소</label></th>
					<td><input type="text" id="roadAddrPart1" style="width:85%"></td>
				</tr>
				<tr>
					<th>상세주소</th>
						<td>
							<input type="text" id="addrDetail" style="width:40%" value="">
							<input type="text" id="roadAddrPart2"  style="width:40%" value="">
						</td>
				</tr>
			</tbody>
		</table>
</form>
</body>
</html>
						
					
팝업API 호출 소스보기
						
/*
 파일명 : jusoPopup.jsp
 내  용 : 팝업API 호출 소스(jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
/*
모의 해킹 테스트 시 팝업API를 호출하시면 IP가 차단 될 수 있습니다. 
주소팝업API를 제외하시고 테스트 하시기 바랍니다.
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<% 
	//request.setCharacterEncoding("UTF-8");  //한글깨지면 주석제거
	//request.setCharacterEncoding("EUC-KR");  //해당시스템의 인코딩타입이 EUC-KR일경우에
	String inputYn = request.getParameter("inputYn"); 
	String roadFullAddr = request.getParameter("roadFullAddr"); 
	String roadAddrPart1 = request.getParameter("roadAddrPart1"); 
	String roadAddrPart2 = request.getParameter("roadAddrPart2"); 
	String engAddr = request.getParameter("engAddr"); 
	String jibunAddr = request.getParameter("jibunAddr"); 
	String zipNo = request.getParameter("zipNo"); 
	String addrDetail = request.getParameter("addrDetail"); 
	String admCd    = request.getParameter("admCd");
	String rnMgtSn = request.getParameter("rnMgtSn");
	String bdMgtSn  = request.getParameter("bdMgtSn");
	/** API 서비스 제공항목 확대 (2017.02) **/
	String detBdNmList  = request.getParameter("detBdNmList");
	String bdNm  = request.getParameter("bdNm");
	String bdKdcd  = request.getParameter("bdKdcd");
	String siNm  = request.getParameter("siNm");
	String sggNm  = request.getParameter("sggNm");
	String emdNm  = request.getParameter("emdNm");
	String liNm  = request.getParameter("liNm");
	String rn  = request.getParameter("rn");
	String udrtYn  = request.getParameter("udrtYn");
	String buldMnnm  = request.getParameter("buldMnnm");
	String buldSlno  = request.getParameter("buldSlno");
	String mtYn  = request.getParameter("mtYn");
	String lnbrMnnm  = request.getParameter("lnbrMnnm");
	String lnbrSlno  = request.getParameter("lnbrSlno");
	String emdNo  = request.getParameter("emdNo");
%>
</head>
<script language="javascript">
// opener관련 오류가 발생하는 경우 아래 주석을 해지하고, 사용자의 도메인정보를 입력합니다. ("주소입력화면 소스"도 동일하게 적용시켜야 합니다.)
//document.domain = "abc.go.kr";

function init(){
	var url = location.href;
	var confmKey = "TESTJUSOGOKR";//승인키
	// resultType항목 추가(2016.10.06)
	var resultType = "4"; // 도로명주소 검색결과 화면 출력유형, 1 : 도로명, 2 : 도로명+지번, 3 : 도로명+상세건물명, 4 : 도로명+지번+상세건물명
	var inputYn= "<%=inputYn%>";
	if(inputYn != "Y"){
		document.form.confmKey.value = confmKey;
		document.form.returnUrl.value = url;
		document.form.resultType.value = resultType; // resultType항목 추가(2016.10.06)
		document.form.action="https://www.juso.go.kr/addrlink/addrMobileLinkUrl.do"; // 모바일 웹인 경우, 인터넷망
		document.form.submit();
	}else{
		/** API 서비스 제공항목 확대 (2017.02) **/
		opener.jusoCallBack("<%=roadFullAddr%>","<%=roadAddrPart1%>","<%=addrDetail%>", "<%=roadAddrPart2%>","<%=engAddr%>"
			, "<%=jibunAddr%>","<%=zipNo%>", "<%=admCd%>", "<%=rnMgtSn%>", "<%=bdMgtSn%>", "<%=detBdNmList%>"
			, "<%=bdNm%>", "<%=bdKdcd%>", "<%=siNm%>", "<%=sggNm%>", "<%=emdNm%>", "<%=liNm%>", "<%=rn%>", "<%=udrtYn%>"
			, "<%=buldMnnm%>", "<%=buldSlno%>", "<%=mtYn%>", "<%=lnbrMnnm%>", "<%=lnbrSlno%>", "<%=emdNo%>");
		window.close();
	}
}
</script>
<body onload="init();">
	<form id="form" name="form" method="post">
		<input type="hidden" id="confmKey" name="confmKey" value=""/>
		<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
		<input type="hidden" id="resultType" name="resultType" value=""/> // resultType항목 추가(2016.10.06)
		<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START--> 
		<!-- 
		<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
		 -->
		<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
	</form>
</body>
</html>
						
					
CSS파일 소스보기(모바일)
						
/* 회사 로고 이미지 */
#logo span{background: url(http://www.0000.com/img/logo.png) 0 0 no-repeat; background-size: contain;}

/* 바탕 배경색상*/
body{background-color: #373737;}
#wrap {background-color: #fff;}

/* 검색도움말 색상 */
#search p{color:#3e566d;}

/* 검색창 배경 색상 */
#header{background-color: #e9e9e9;} 

/* 도로명 아이콘 수정 */
.icon_road >span{border: 1px solid #186bb9; background-color: #186bb9; color:#fff;}

/* 지번 아이콘 수정 */
.icon_juso >span{border:1px solid #282828; background-color: #fff; color:#282828;}

/* 하단버튼 */
#address_detail input[type="button"] {border: 1px solid #186bb9; background-color: #186bb9; color:#fff;}

/* 페이지 선택된 페이지 버튼*/
.page_num a{background-color: #fff; color:#101010;}

/* 페이지 선택되지 않은 페이지 버튼*/
.page_num strong{background-color: #186bb9; color:#fff;}
						
					

팝업API를 활용하여 주소검색 이후, 상세주소를 선택할 수 있는 동.층.호 정보를 제공합니다.

도로명주소 팝업API, 좌표제공 팝업API, 모바일용API에서 요청변수를 추가하여 적용할 수 있습니다.


상세주소 팝업 API 화면예시

상세주소 팝업API 적용 전 상세주소 팝업API 적용 후

상세주소 팝업 API 적용방법

상세주소 팝업API 적용방법
																	
첫번째, 오픈API 신규 사용자의 경우 'API신청하기'메뉴에서 API종류(도로명주소API 또는 좌표제공API), API유형(팝업API 또는 모바일팝업API)를 선택하여 신청
두번째, 도로명주소API 또는 좌표제공API 메뉴에서 제공하는 가이드 및 소스를 활용하여 적용
세번째, 샘플소스(jusoPopup.jsp / jusoPopup.asp / jusoPopup.php)파일의 form태그에 요청변수(useDetailAddr) 추가
<body onload="init();">
  <form id="form" name="form" method="post">
    <input type="hidden" id="confmKey" name="confmKey" value=""/>
    <input type="hidden" id="returnUrl" name="returnUrl" value=""/>
    <input type="hidden" id="resultType" name="resultType" value=""/>
    <input type="hidden" id="useDetailAddr" name="useDetailAddr" value="Y"/><!-- 요청 변수 추가 (상세주소API 사용여부) -->
  </form>
</body>

API정보

팝업 API정보
호출방식 요청 URL 출력결과
POST
GET
https://www.juso.go.kr/addrlink/addrMapUrl.do 파라미터

요청변수

팝업 API 요청변수
요청변수명 타입 필수여부 설명
confmKey String Y 신청시 발급받은 승인키
returnUrl String Y 주소 검색 결과를 리턴받을 URL (통합검색창을 호출한 페이지)
resultType String N 도로명주소 검색결과 화면 출력유형
1 : 도로명, 2 : 도로명+지번

출력결과

팝업 API 출력결과
출력변수명 타입 필수여부 설명
roadFullAddr String Y 전체 도로명주소
roadAddrPart1 String Y 도로명주소(참고항목 제외)
roadAddrPart2 String N 도로명주소 참고항목
jibunAddr String Y 지번주소
engAddr String Y 도로명주소(영문)
zipNo String Y 우편번호
addrDetail String N 고객 입력 상세 주소
admCd String Y 행정구역코드
rnMgtSn String Y 도로명코드
bdMgtSn String Y 건물관리번호
detBdNmList String N 상세건물명
bdNm String N 건물명
bdKdcd String Y 공동주택여부(1 : 공동주택, 0 : 비공동주택)
siNm String Y 시도명
sggNm String Y 시군구명
emdNm String Y 읍면동명
liNm String N 법정리명
rn String Y 도로명
udrtYn String Y 지하여부(0 : 지상, 1 : 지하)
buldMnnm Number Y 건물본번
buldSlno Number Y 건물부번
mtYn String Y 산여부(0 : 대지, 1 : 산)
lnbrMnnm Number Y 지번본번(번지)
lnbrSlno Number Y 지번부번(호)
emdNo String Y 읍면동일련번호

오류코드

팝업 API 오류코드
오류메세지 조치방법
시스템에러 도로명주소 도움센터로 문의하시기 바랍니다.
승인되지 않은 KEY 입니다. 정확한 승인키를 입력하세요.(검색API 승인키 사용불가)
정상적인 경로로 접속하시기 바랍니다. 요청변수 중 returnUrl 항목이 없습니다. 요청변수를 다시 확인하세요.
검색어가 입력되지 않았습니다. 검색어를 입력해주세요.
주소를 상세히 입력해 주시기 바랍니다. 시도명으로는 검색이 불가합니다.
검색어는 두글자 이상 입력되어야 합니다. 한 글자만으로는 검색이 불가합니다.
검색어는 문자와 숫자 같이 입력되어야 합니다. 숫자만으로는 검색이 불가합니다.
검색어가 너무 깁니다. (한글40자, 영문,숫자 80자 이하) 80글자를 초과한 검색어는 검색이 불가합니다.
검색어에 너무 긴 숫자가 포함되어 있습니다. (숫자10자 이하) 10자리를 초과하는 숫자가 포함된 검색어는 검색이 불가합니다.
특수문자+숫자만으로는 검색이 불가능 합니다. 특수문자와 숫자만으로 이루어진 검색어는 검색이 불가합니다.
SQL 예약어 또는 특수문자( %,=,>,<,[,] )는 검색이 불가능 합니다. SQL예약어 또는 특수문자를 제거 후 검색합니다.
개발승인키 기간이 만료되어 서비스를 이용하실 수 없습니다. 개발승인키를 다시 발급받아 API서비스를 호출합니다.
검색 범위를 초과하였습니다. 검색결과가 9천건이 초과하는 검색은 불가합니다.
주소입력화면 소스보기
						
/*
 파일명 : Sample.jsp
 내  용 : 주소입력화면 (Sample.jsp ↔jusoPopup.jsp ↔ 도로명주소 팝업API )
*/

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="javascript">
function goPopup(){
	// 호출된 페이지(jusoPopup.jsp)에서 실제 주소검색URL(https://www.juso.go.kr/addrlink/addrMapUrl.do)를 호출하게 됩니다.
    var pop = window.open("/popup/jusoPopup.jsp","pop","width=570,height=420, scrollbars=yes, resizable=yes"); 
}
function jusoCallBack(roadFullAddr,roadAddrPart1,addrDetail,roadAddrPart2,engAddr, jibunAddr, zipNo, admCd, rnMgtSn, bdMgtSn
						, detBdNmList, bdNm, bdKdcd, siNm, sggNm, emdNm, liNm, rn, udrtYn, buldMnnm, buldSlno, mtYn, lnbrMnnm, lnbrSlno
						, emdNo){
	// 팝업페이지에서 주소입력한 정보를 받아서, 현 페이지에 정보를 등록합니다.
	document.form.roadAddrPart1.value = roadAddrPart1;
	document.form.roadAddrPart2.value = roadAddrPart2;
	document.form.addrDetail.value = addrDetail;
	document.form.zipNo.value = zipNo;
}
</script>
<title>주소 입력 샘플</title>
</head>
<body>
<form name="form" id="form" method="post">
	<table >
			<colgroup>
				<col style="width:20%"><col>
			</colgroup>
			<tbody>
				<tr>
					<th>우편번호</th>
					<td>
					    <input type="hidden" id="confmKey" name="confmKey" value=""  >
						<input type="text" id="zipNo" name="zipNo" readonly style="width:100px">
						<input type="button"  value="주소검색" onclick="goPopup();">
					</td>
				</tr>
				<tr>
					<th><label>도로명주소</label></th>
					<td><input type="text" id="roadAddrPart1" style="width:85%"></td>
				</tr>
				<tr>
					<th>상세주소</th>
					<td>
						<input type="text" id="addrDetail" style="width:40%" value="">
						<input type="text" id="roadAddrPart2"  style="width:40%" value="">
					</td>
				</tr>
			</tbody>
		</table>
</form>
</body>
</html>
						
					
팝업API 호출 소스보기
						
/*
 파일명 : jusoPopup.jsp
 내  용 : 팝업API 호출 소스(jusoPopup.jsp ↔ 도로명주소 팝업API )
*/
/*
모의 해킹 테스트 시 팝업API를 호출하시면 IP가 차단 될 수 있습니다. 
주소팝업API를 제외하시고 테스트 하시기 바랍니다.
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<% 
	//request.setCharacterEncoding("UTF-8");  //한글깨지면 주석제거
	//request.setCharacterEncoding("EUC-KR");  //해당시스템의 인코딩타입이 EUC-KR일경우에
	String inputYn = request.getParameter("inputYn"); 
	String roadFullAddr = request.getParameter("roadFullAddr"); 
	String roadAddrPart1 = request.getParameter("roadAddrPart1"); 
	String roadAddrPart2 = request.getParameter("roadAddrPart2"); 
	String engAddr = request.getParameter("engAddr"); 
	String jibunAddr = request.getParameter("jibunAddr"); 
	String zipNo = request.getParameter("zipNo"); 
	String addrDetail = request.getParameter("addrDetail"); 
	String admCd    = request.getParameter("admCd");
	String rnMgtSn = request.getParameter("rnMgtSn");
	String bdMgtSn  = request.getParameter("bdMgtSn");
	String detBdNmList  = request.getParameter("detBdNmList");
	String bdNm  = request.getParameter("bdNm");
	String bdKdcd  = request.getParameter("bdKdcd");
	String siNm  = request.getParameter("siNm");
	String sggNm  = request.getParameter("sggNm");
	String emdNm  = request.getParameter("emdNm");
	String liNm  = request.getParameter("liNm");
	String rn  = request.getParameter("rn");
	String udrtYn  = request.getParameter("udrtYn");
	String buldMnnm  = request.getParameter("buldMnnm");
	String buldSlno  = request.getParameter("buldSlno");
	String mtYn  = request.getParameter("mtYn");
	String lnbrMnnm  = request.getParameter("lnbrMnnm");
	String lnbrSlno  = request.getParameter("lnbrSlno");
	String emdNo  = request.getParameter("emdNo");
%>
</head>
<script language="javascript">
function init(){
	var url = location.href;
	var confmKey = "TESTJUSOGOKR";//승인키
	var resultType = "2"; // 도로명주소 검색결과 화면 출력유형, 1 : 도로명, 2 : 도로명+지번
	var inputYn= "<%=inputYn%>";
	if(inputYn != "Y"){
		document.form.confmKey.value = confmKey;
		document.form.returnUrl.value = url;
		document.form.resultType.value = resultType;
		document.form.action="https://www.juso.go.kr/addrlink/addrMapUrl.do"; // 인터넷망
		document.form.submit();
	}else{
		opener.jusoCallBack("<%=roadFullAddr%>","<%=roadAddrPart1%>","<%=addrDetail%>", "<%=roadAddrPart2%>","<%=engAddr%>"
			, "<%=jibunAddr%>","<%=zipNo%>", "<%=admCd%>", "<%=rnMgtSn%>", "<%=bdMgtSn%>", "<%=detBdNmList%>"
			, "<%=bdNm%>", "<%=bdKdcd%>", "<%=siNm%>", "<%=sggNm%>", "<%=emdNm%>", "<%=liNm%>", "<%=rn%>", "<%=udrtYn%>"
			, "<%=buldMnnm%>", "<%=buldSlno%>", "<%=mtYn%>", "<%=lnbrMnnm%>", "<%=lnbrSlno%>", "<%=emdNo%>");
		window.close();
	}
}
</script>
<body onload="init();">
	<form id="form" name="form" method="post">
		<input type="hidden" id="confmKey" name="confmKey" value=""/>
		<input type="hidden" id="returnUrl" name="returnUrl" value=""/>
		<input type="hidden" id="resultType" name="resultType" value=""/>
		<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 START--> 
		<!-- 
		<input type="hidden" id="encodingType" name="encodingType" value="EUC-KR"/>
		 -->
		<!-- 해당시스템의 인코딩타입이 EUC-KR일경우에만 추가 END-->
	</form>
</body>
</html>
						
					
CSS파일 소스보기(웹)
						
/* 바탕 배경 이미지 */
.pop-address-search { background-image: url(http://www.0000.com/img/backImg.png);}
/* 회사 로고 이미지 */
.pop-address-search .pop-address-search-inner .logo { background: url(http://www.0000.com/img/logo.png) no-repeat; background-position:center; }

/* 바탕 배경색상 */
.pop-address-search { background-color:#ECECEC; }
/* 검색창 바탕 배경색상 */
.pop-address-search .pop-address-search-inner .search-wrap { background-color:#DCF3F4; }
/* 검색창 색상 */
.pop-address-search .pop-address-search-inner .wrap input { background-color:#FFFFFF; }
/* 검색버튼 색상 */
.pop-address-search .pop-address-search-inner .wrap { background-color:#FFFFFF; }
/* 본문 배경색(홀수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(odd) td {background:#FFFFFF}
/* 본문 배경색(짝수) */
.pop-address-search .pop-address-search-inner .result table.data-col tbody tr:nth-child(even) td {background:#FFFFFF}