본문 바로가기메인 메뉴 바로가기사이드 메뉴 바로가기

kakao developers

관련사이트

사이드 메뉴

검색

이 문서는 REST API를 사용한 카카오맵 API 구현 방법을 안내합니다.

이 문서에 포함된 기능은 [도구] > [REST API 테스트]에서 사용해 볼 수 있습니다.

메서드URL인증 방식
GEThttps://dapi.kakao.com/v2/local/search/address.${FORMAT}REST API 키

요청한 문자열 주소의 좌표와 세부 정보를 반환합니다.

검색어에 상세 주소 제외 권장

검색 질의어(query)에 상세 주소(지번, 도로명 번호 하위의 건물명 등)는 제외하고 요청할 것을 권장합니다. 상세 주소는 입력 형태가 다양해 정확한 검색 결과를 보장하기 어렵습니다.

이름설명필수
AuthorizationAuthorization: KakaoAK ${REST_API_KEY}
인증 방식, REST API 키로 인증 요청
O
이름타입설명필수
FORMATString응답 형식, 아래 중 하나
  • JSON(기본값)
  • XML
X
이름타입설명필수
queryString검색을 원하는 질의어, 지번 주소와 도로명 주소 모두 지원O
analyze_typeString검색 결과 제공 방식, 아래 중 하나
  • similar: 입력한 건물명과 일부만 매칭될 경우에도 확장된 검색 결과 제공(기본값)
  • exact: 주소의 정확한 건물명이 입력된 주소패턴일 경우에 한해, 입력한 건물명과 정확히 일치하는 검색 결과 제공

참고: 품질 향상을 위한 주소로 좌표 변환 API 업데이트
X
pageInteger결과 페이지 번호(최소: 1, 최대: 45, 기본값: 1)X
sizeInteger한 페이지로 표시할 결과 수(최소: 1, 최대: 30, 기본값: 10)X
이름설명필수
Content-Type응답 데이터 타입, 아래 중 하나
  • content-type: application/json;charset=UTF-8
  • content-type: text/xml;charset=UTF-8
O
이름타입설명
metaMeta조회 결과 메타 정보
documentsDocument[]주소 검색 결과 목록
이름타입설명
total_countInteger검색어(query)로 검색된 결과 수
pageable_countIntegertotal_count 중 노출 가능 결과 수
is_endBoolean현재 페이지가 마지막 페이지인지 여부, 값이 false인 경우 다음 요청 시 page 값을 증가시켜 다음 페이지 요청 가능
이름타입설명
address_nameString전체 지번 주소 또는 전체 도로명 주소, 입력에 따라 결정
address_typeStringaddress_name의 종류, 아래 중 하나
  • REGION: 지명
  • ROAD: 도로명
  • REGION_ADDR: 지번 주소
  • ROAD_ADDR: 도로명 주소
xStringX 좌표값, 좌표계가 경위도(WGS84)인 경우 경도(Longitude)
yStringY 좌표값, 좌표계가 경위도(WGS84)인 경우 위도(Latitude)
addressAddress지번 주소 상세 정보
road_addressRoadAddress도로명 주소 상세 정보
이름타입설명
address_nameString전체 지번 주소
region_1depth_nameString지역 1 Depth, 시도 단위
region_2depth_nameString지역 2 Depth, 구 단위
region_3depth_nameString지역 3 Depth, 동 단위
region_3depth_h_nameString지역 3 Depth, 행정동 명칭
h_codeString행정 코드
b_codeString법정 코드
mountain_ynString산(Mountain) 여부, 아래 중 하나
  • Y: 산
  • N: 산 아님
main_address_noString지번 주번지
sub_address_noString지번 부번지, 없을 경우 빈 문자열("") 반환
xStringX 좌표값, 좌표계가 경위도(WGS84)인 경우 경도(Longitude)
yStringY 좌표값, 좌표계가 경위도(WGS84)인 경우 위도(Latitude)
* zip_code: Deprecated, 우편번호(String), 6자리, 공지 참고
이름타입설명
address_nameString전체 도로명 주소
region_1depth_nameString지역 1 Depth
region_2depth_nameString지역 2 Depth
region_3depth_nameString지역 3 Depth
road_nameString도로명
underground_ynString지하 여부, 아래 중 하나
  • Y: 지하
  • N: 지상
main_building_noString건물 본번
sub_building_noString건물 부번, 없을 경우 빈 문자열("") 반환
building_nameString건물 이름
zone_noString우편번호(5자리)
xStringX 좌표값, 좌표계가 경위도(WGS84)인 경우 경도(Longitude)
yStringY 좌표값, 좌표계가 경위도(WGS84)인 경우 위도(Latitude)
curl -v -G GET "https://dapi.kakao.com/v2/local/search/address.json" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
--data-urlencode "query=전북 삼성동 100"
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"meta": {
"total_count": 4,
"pageable_count": 4,
"is_end": true
},
"documents": [
{
"address_name": "전북 익산시 부송동 100",
"y": "35.97664845766847",
"x": "126.99597295767953",
"address_type": "REGION_ADDR",
"address": {
"address_name": "전북 익산시 부송동 100",
"region_1depth_name": "전북",
"region_2depth_name": "익산시",
"region_3depth_name": "부송동",
"region_3depth_h_name": "삼성동",
"h_code": "4514069000",
"b_code": "4514013400",
"mountain_yn": "N",
"main_address_no": "100",
"sub_address_no": "",
"x": "126.99597295767953",
"y": "35.97664845766847"
},
"road_address": {
"address_name": "전북 익산시 망산길 11-17",
"region_1depth_name": "전북",
"region_2depth_name": "익산시",
"region_3depth_name": "부송동",
"road_name": "망산길",
"underground_yn": "N",
"main_building_no": "11",
"sub_building_no": "17",
"building_name": "",
"zone_no": "54547",
"y": "35.976749396987046",
"x": "126.99599512792346"
}
}
// ...
]
}
메서드URL인증 방식
GEThttps://dapi.kakao.com/v2/local/geo/coord2regioncode.${FORMAT}REST API 키

지정한 좌표값에 해당하는 행정동과 법정동 정보를 반환합니다.

이름설명필수
AuthorizationAuthorization: KakaoAK ${REST_API_KEY}
인증 방식, REST API 키로 인증 요청
O
이름타입설명필수
FORMATString응답 형식, 아래 중 하나
  • JSON(기본값)
  • XML
X
이름타입설명필수
xDoubleX 좌표값, 좌표계가 경위도(WGS84)인 경우 경도(Longitude)O
yDoubleY 좌표값, 좌표계가 경위도(WGS84)인 경우 위도(Latitude)O
input_coordString좌표값(x, y)에 적용할 좌표계, 아래 중 하나
  • WGS84(기본값)
  • WCONGNAMUL
  • CONGNAMUL
  • WTM
  • TM
X
output_coordString응답에 적용할 좌표계, 아래 중 하나
  • WGS84(기본값)
  • WCONGNAMUL
  • CONGNAMUL
  • WTM
  • TM
X
이름설명필수
Content-Type응답 데이터 타입, 아래 중 하나
  • content-type: application/json;charset=UTF-8
  • content-type: text/xml;charset=UTF-8
O
이름타입설명
metaMeta조회 결과 메타 정보
documentsDocument[]좌표에 해당하는 행정구역 정보 목록
이름타입설명
total_countInteger조회된 행정구역 수
이름타입설명
region_typeString행정동과 법정동 구분, 아래 중 하나
  • H: 행정동
  • B: 법정동
address_nameString전체 지역 명칭
region_1depth_nameString지역 1 Depth, 시도 단위, 바다(Sea) 영역인 경우 미포함
region_2depth_nameString지역 2 Depth, 구 단위, 바다(Sea) 영역인 경우 미포함
region_3depth_nameString지역 3 Depth, 동 단위, 바다(Sea) 영역인 경우 미포함
region_4depth_nameString지역 4 Depth

중요: region_type이 법정동이며 리 영역인 경우만 존재
codeString행정동 또는 법정동 코드
xDoubleX 좌표값, 좌표계가 경위도(WGS84)인 경우 경도(Longitude)
yDoubleY 좌표값, 좌표계가 경위도(WGS84)인 경우 위도(Latitude)
curl -v -G GET "https://dapi.kakao.com/v2/local/geo/coord2regioncode.json" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
-d "x=127.1086228" \
-d "y=37.4012191"
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"meta": {
"total_count": 2
},
"documents": [
{
"region_type": "B",
"address_name": "경기도 성남시 분당구 삼평동",
"region_1depth_name": "경기도",
"region_2depth_name": "성남시 분당구",
"region_3depth_name": "삼평동",
"region_4depth_name": "",
"code": "4113510900",
"x": 127.10459896729914,
"y": 37.40269721785548
},
{
"region_type": "H",
"address_name": "경기도 성남시 분당구 삼평동",
"region_1depth_name": "경기도",
"region_2depth_name": "성남시 분당구",
"region_3depth_name": "삼평동",
"region_4depth_name": "",
"code": "4113565500",
"x": 127.1163593869371,
"y": 37.40612091848614
}
]
}
메서드URL인증 방식
GEThttps://dapi.kakao.com/v2/local/geo/coord2address.${FORMAT}REST API 키

지정한 좌표값에 해당하는 지번 주소와 도로명 주소 정보를 반환합니다.

도로명 주소 반환

지정한 좌표에 따라 도로명 주소는 반환되지 않을 수 있습니다.

이름설명필수
AuthorizationAuthorization: KakaoAK ${REST_API_KEY}
인증 방식, REST API 키로 인증 요청
O
이름타입설명필수
FORMATString응답 형식, 아래 중 하나
  • JSON(기본값)
  • XML
X
이름타입설명필수
xDoubleX 좌표값, 좌표계가 경위도(WGS84)인 경우 경도(Longitude)O
yDoubleY 좌표값, 좌표계가 경위도(WGS84)인 경우 위도(Latitude)O
input_coordString좌표값(x, y)에 적용할 좌표계, 아래 중 하나
  • WGS84(기본값)
  • WCONGNAMUL
  • CONGNAMUL
  • WTM
  • TM
X
이름설명필수
Content-Type응답 데이터 타입, 아래 중 하나
  • content-type: application/json;charset=UTF-8
  • content-type: text/xml;charset=UTF-8
O
이름타입설명
metaMeta조회 결과 메타 정보
documentsDocument[]좌표에 해당하는 주소 정보 목록
이름타입설명
total_countInteger변환된 지번 주소 및 도로명 주소의 개수, 0 또는 1
이름타입설명
addressAddress지번 주소 상세 정보
road_addressRoadAddress도로명 주소 상세 정보
이름타입설명
address_nameString전체 지번 주소
region_1depth_nameString지역 1 Depth, 시도 단위
region_2depth_nameString지역 2 Depth, 구 단위
region_3depth_nameString지역 3 Depth, 동 단위
mountain_ynString산(Mountain) 여부, 아래 중 하나
  • Y: 산
  • N: 산 아님
main_address_noString지번 주번지
sub_address_noString지번 부번지, 없을 경우 빈 문자열("") 반환
* zip_code: Deprecated, 우편번호(String), 6자리, 공지 참고
이름타입설명
address_nameString전체 도로명 주소
region_1depth_nameString지역 1 Depth
region_2depth_nameString지역 2 Depth
region_3depth_nameString지역 3 Depth
road_nameString도로명
underground_ynString지하 여부, 아래 중 하나
  • Y: 지하
  • N: 지상
main_building_noString건물 본번
sub_building_noString건물 부번, 없을 경우 빈 문자열("") 반환
building_nameString건물 이름
zone_noString우편번호(5자리)
curl -v -G GET "https://dapi.kakao.com/v2/local/geo/coord2address.json" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
-d "x=127.423084873712" \
-d "y=37.0789561558879" \
-d "input_coord=WGS84"
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"meta": {
"total_count": 1
},
"documents": [
{
"road_address": {
"address_name": "경기도 안성시 죽산면 죽산초교길 69-4",
"region_1depth_name": "경기",
"region_2depth_name": "안성시",
"region_3depth_name": "죽산면",
"road_name": "죽산초교길",
"underground_yn": "N",
"main_building_no": "69",
"sub_building_no": "4",
"building_name": "무지개아파트",
"zone_no": "17519"
},
"address": {
"address_name": "경기 안성시 죽산면 죽산리 343-1",
"region_1depth_name": "경기",
"region_2depth_name": "안성시",
"region_3depth_name": "죽산면 죽산리",
"mountain_yn": "N",
"main_address_no": "343",
"sub_address_no": "1"
}
}
]
}
메서드URL인증 방식
GEThttps://dapi.kakao.com/v2/local/geo/transcoord.${FORMAT}REST API 키

특정 좌표계의 좌표값을, 지정한 좌표계의 좌표값으로 반환합니다.

이름설명필수
AuthorizationAuthorization: KakaoAK ${REST_API_KEY}
인증 방식, REST API 키로 인증 요청
O
이름타입설명필수
FORMATString응답 형식, 아래 중 하나
  • JSON(기본값)
  • XML
X
이름타입설명필수
xDoubleX 좌표값, 좌표계가 경위도(WGS84)인 경우 경도(Longitude)O
yDoubleY 좌표값, 좌표계가 경위도(WGS84)인 경우 위도(Latitude)O
input_coordString좌표값(x, y)에 적용할 좌표계, 아래 중 하나
  • WGS84(기본값)
  • WCONGNAMUL
  • CONGNAMUL
  • WTM
  • TM
  • KTM
  • UTM
  • BESSEL
  • WKTM
  • WUTM
X
output_coordString응답에 적용할 좌표계, 아래 중 하나
  • WGS84
  • WCONGNAMUL
  • CONGNAMUL
  • WTM
  • TM
  • KTM
  • UTM
  • BESSEL
  • WKTM
  • WUTM
O
이름설명필수
Content-Type응답 데이터 타입, 아래 중 하나
  • content-type: application/json;charset=UTF-8
  • content-type: text/xml;charset=UTF-8
O
이름타입설명
metaMeta조회 결과 메타 정보
documentsDocument[]변환된 좌표 정보 목록
이름타입설명
total_countInteger변환된 좌표 수
이름타입설명
xDoubleX 좌표값, 좌표계가 경위도(WGS84)인 경우 경도(Longitude)
yDoubleY 좌표값, 좌표계가 경위도(WGS84)인 경우 위도(Latitude)
curl -v -G GET "https://dapi.kakao.com/v2/local/geo/transcoord.json" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
-d "x=160710.37729270622" \
-d "y=-4388.879299157299" \
-d "input_coord=WTM" \
-d "output_coord=WGS84"
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"meta": {
"total_count": 1
},
"documents": [
{
"x": 126.57740680000002,
"y": 33.453357700000005
}
]
}
메서드URL인증 방식
GEThttps://dapi.kakao.com/v2/local/search/keyword.${FORMAT}REST API 키

요청한 키워드에 부합하는 장소 검색 결과를 지정한 정렬 기준으로 반환합니다.

이름설명필수
AuthorizationAuthorization: KakaoAK ${REST_API_KEY}
인증 방식, REST API 키로 인증 요청
O
이름타입설명필수
FORMATString응답 형식, 아래 중 하나
  • JSON(기본값)
  • XML
X
이름타입설명필수
queryString검색을 원하는 질의어O
category_group_codeCategoryGroupCode카테고리 그룹 코드, 카테고리로 결과 필터링을 원하는 경우 사용X
xString검색할 중심 좌표의 X값, 경도(Longitude)

참고: radius와 함께 사용해 중심 좌표와 반경 검색 가능
X
yString검색할 중심 좌표의 Y값, 위도(Latitude)

참고: radius와 함께 사용해 중심 좌표와 반경 검색 가능
X
radiusInteger중심 좌표부터의 검색 반경 거리(최소: 0, 최대: 20000, 단위: 미터(m))

중요: 중심 좌표값(x, y) 지정 필수
X
rectString사각형의 검색 범위 지정 좌표, 지도 화면 내 검색 등 검색 범위 제한이 필요한 경우 사용(형식: 좌측 X 좌표, 좌측 Y 좌표, 우측 X 좌표, 우측 Y 좌표)X
pageInteger결과 페이지 번호(최소: 1, 최대: 45, 기본값: 1)X
sizeInteger한 페이지로 표시할 장소 수(최소: 1, 최대: 15, 기본값: 15)X
sortString결과 정렬 순서, 아래 중 하나
  • distance: 중심 좌표로부터의 거리
  • accuracy: 정확도(기본값)

중요: distance 정렬 사용 시 중심 좌표값(x, y) 포함 필수
X
* 중심 좌표와 반경 검색 조합(x, y, radius) 또는 사각형 범위 검색(rect) 파라미터를 포함해 검색 범위를 지정할 수 있습니다.
이름설명
MT1대형마트
CS2편의점
PS3어린이집, 유치원
SC4학교
AC5학원
PK6주차장
OL7주유소, 충전소
SW8지하철역
BK9은행
CT1문화시설
AG2중개업소
PO3공공기관
AT4관광명소
AD5숙박
FD6음식점
CE7카페
HP8병원
PM9약국
이름설명필수
Content-Type응답 데이터 타입, 아래 중 하나
  • content-type: application/json;charset=UTF-8
  • content-type: text/xml;charset=UTF-8
O
이름타입설명
metaMeta조회 결과 메타 정보
documentsDocument[]키워드 검색 결과 장소 목록
이름타입설명
total_countInteger검색된 장소 수
pageable_countIntegertotal_count 중 노출 가능 장소 수
is_endBoolean현재 페이지가 마지막 페이지인지 여부, 값이 false인 경우 다음 요청 시 page 값을 증가시켜 다음 페이지 요청 가능
same_nameSameName검색어(query)의 지역 및 키워드 분석 정보
이름타입설명
regionString[]검색어(query)에서 인식된 지역 목록(예: 중앙로 맛집에서 중앙로에 해당하는 지역 목록)
keywordString검색어(query)에서 지역 정보를 제외한 키워드(예: 중앙로 맛집에서 맛집)
selected_regionString인식된 지역 목록 중 현재 검색에 사용된 지역 정보
이름타입설명
idString장소 ID
place_nameString장소명, 업체명
category_nameString카테고리 이름
category_group_codeString주요 카테고리 그룹 코드, 없을 경우 빈 문자열("") 반환
category_group_nameString주요 카테고리 그룹명, 없을 경우 빈 문자열("") 반환
phoneString전화번호
address_nameString전체 지번 주소
road_address_nameString전체 도로명 주소
xStringX 좌표값, 경도(Longitude)
yStringY 좌표값, 위도(Latitude)
place_urlString장소 상세 페이지 URL
distanceString중심 좌표까지의 거리, 중심 좌표값(x, y)을 요청에 포함한 경우만 응답에 포함(단위: 미터(m))
curl -v -G GET "https://dapi.kakao.com/v2/local/search/keyword.json" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
--data-urlencode "query=카카오프렌즈" \
-d "y=37.514322572335935" \
-d "x=127.06283102249932" \
-d "radius=20000"
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"meta": {
"same_name": {
"region": [],
"keyword": "카카오프렌즈",
"selected_region": ""
},
"pageable_count": 14,
"total_count": 14,
"is_end": true
},
"documents": [
{
"place_name": "카카오프렌즈 코엑스점",
"distance": "418",
"place_url": "http://place.map.kakao.com/26338954",
"category_name": "가정,생활 > 문구,사무용품 > 디자인문구 > 카카오프렌즈",
"address_name": "서울 강남구 삼성동 159",
"road_address_name": "서울 강남구 영동대로 513",
"id": "26338954",
"phone": "02-6002-1880",
"category_group_code": "",
"category_group_name": "",
"x": "127.05902969025047",
"y": "37.51207412593136"
}
// ...
]
}
메서드URL인증 방식
GEThttps://dapi.kakao.com/v2/local/search/category.${FORMAT}REST API 키

요청한 카테고리 코드에 해당하는 장소 검색 결과를 지정한 정렬 기준으로 반환합니다.

이름설명필수
AuthorizationAuthorization: KakaoAK ${REST_API_KEY}
인증 방식, REST API 키로 인증 요청
O
이름타입설명필수
FORMATString응답 형식, 아래 중 하나
  • JSON(기본값)
  • XML
X
이름타입설명필수
category_group_codeCategoryGroupCode카테고리 그룹 코드O
xString검색할 중심 좌표의 X값, 경도(Longitude)

참고: radius와 함께 사용해 중심 좌표와 반경 검색 가능
X
yString검색할 중심 좌표의 Y값, 위도(Latitude)

참고: radius와 함께 사용해 중심 좌표와 반경 검색 가능
X
radiusInteger중심 좌표부터의 검색 반경 거리(최소: 0, 최대: 20000, 단위: 미터(m))

중요: 중심 좌표값(x, y) 지정 필수
X
rectString사각형의 검색 범위 지정 좌표, 지도 화면 내 검색 등 범위 제한이 필요한 경우 사용(형식: 좌측 X 좌표, 좌측 Y 좌표, 우측 X 좌표, 우측 Y 좌표)X
pageInteger결과 페이지 번호(최소: 1, 최대: 45, 기본값: 1)X
sizeInteger한 페이지로 표시할 장소의 개수(최소: 1, 최대: 15, 기본값: 15)X
sortString결과 정렬 순서, 아래 중 하나
  • distance: 중심 좌표로부터의 거리
  • accuracy: 정확도(기본값)

중요: distance 정렬 사용 시 중심 좌표값(x, y) 포함 필수
X
* 중심 좌표와 반경 검색 조합(x, y, radius) 또는 사각형 범위 검색(rect) 파라미터를 포함해 검색 범위를 지정할 수 있습니다.
이름설명필수
Content-Type응답 데이터 타입, 아래 중 하나
  • content-type: application/json;charset=UTF-8
  • content-type: text/xml;charset=UTF-8
O
이름타입설명
metaMeta조회 결과 메타 정보
documentsDocument[]카테고리 검색 결과 장소 목록
이름타입설명
total_countInteger검색된 장소 수
pageable_countIntegertotal_count 중 노출 가능 장소 수
is_endBoolean현재 페이지가 마지막 페이지인지 여부, 값이 false인 경우 다음 요청 시 page 값을 증가시켜 다음 페이지 요청 가능
same_nameSameName지역 및 키워드 분석 정보, 없을 경우 null
이름타입설명
regionString[]인식된 지역 목록(예: 중앙로 맛집에서 중앙로에 해당하는 지역 목록)
keywordString지역 정보를 제외한 키워드(예: 중앙로 맛집에서 맛집)
selected_regionString인식된 지역 목록 중 현재 검색에 사용된 지역 정보
이름타입설명
idString장소 ID
place_nameString장소명, 업체명
category_nameString카테고리 이름
category_group_codeString요청한 카테고리 그룹 코드
category_group_nameString요청한 카테고리 그룹명
phoneString전화번호
address_nameString전체 지번 주소
road_address_nameString전체 도로명 주소
xStringX 좌표값, 경도(Longitude)
yStringY 좌표값, 위도(Latitude)
place_urlString장소 상세 페이지 URL
distanceString중심 좌표까지의 거리, 중심 좌표값(x, y)을 요청에 포함한 경우만 응답에 포함(단위: 미터(m))
curl -v -G GET "https://dapi.kakao.com/v2/local/search/category.json" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
-d "category_group_code=PM9" \
-d "y=37.514322572335935" \
-d "x=127.06283102249932" \
-d "radius=20000"
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"meta": {
"same_name": null,
"pageable_count": 11,
"total_count": 11,
"is_end": true
},
"documents": [
{
"place_name": "장생당약국",
"distance": "",
"place_url": "http://place.map.kakao.com/16618597",
"category_name": "의료,건강 > 약국",
"address_name": "서울 강남구 대치동 943-16",
"road_address_name": "서울 강남구 테헤란로84길 17",
"id": "16618597",
"phone": "02-558-5476",
"category_group_code": "PM9",
"category_group_name": "약국",
"x": "127.05897078335246",
"y": "37.506051888130386"
}
// ...
]
}
메서드URL인증 방식
GEThttps://dapi.kakao.com/v2/routing/publictrafficREST API 키

지정한 출발지와 도착지 좌표의 대중교통 경로를 조회합니다.

이름설명필수
AuthorizationAuthorization: KakaoAK ${REST_API_KEY}
인증 방식, REST API 키로 인증 요청
O
이름타입설명필수
start_xString출발지 X 좌표O
start_yString출발지 Y 좌표O
s_nameString출발지 명칭(기본값: 출발)X
end_xString도착지 X 좌표O
end_yString도착지 Y 좌표O
e_nameString도착지 명칭(기본값: 도착)X
input_coordString입력 좌표계, 아래 중 하나
  • WGS84(기본값)
  • WTM
  • TM
  • WCONGNAMUL
X
output_coordString출력 좌표계, 아래 중 하나
  • WGS84(기본값)
  • WTM
  • TM
  • WCONGNAMUL
X
이름타입설명
statusString대중교통 경로 탐색 결과 코드, 아래 중 하나
  • OK: 조회 성공
  • STARTNODES_NULL: 출발지 노드 없음
  • ENDNODES_NULL: 도착지 노드 없음
  • EQUAL_POINTS: 출발지와 도착지가 동일
  • INVALID_REQUEST: 잘못된 요청
  • NO_RESULTS: 결과 없음
propertiesProperties경로 조회 결과 속성
routesRoute[]대중교통 경로 목록

중요: statusOK인 경우에만 응답에 포함
이름타입설명
totalInteger전체 경로 수
busInteger버스 경로 수
subwayInteger지하철 경로 수
busAndSubwayInteger버스와 지하철을 이용하는 경로 수
landingURLString카카오맵 길찾기 화면 랜딩 URL
이름타입설명
propertiesRouteProperties대중교통 경로 속성
stepsStep[]대중교통 경로 단계 목록
이름타입설명
typeString대중교통 경로 타입, 아래 중 하나
  • BUS: 버스
  • SUBWAY: 지하철
  • BUS_AND_SUBWAY: 버스와 지하철
totalDistanceInteger대중교통 경로 거리(단위: 미터(m))
totalTimeInteger대중교통 경로 소요 시간(단위: 초(s))
transfersInteger대중교통 경로 환승 횟수
fareFare대중교통 경로 요금 정보
이름타입설명
valueInteger요금(단위: 원)
minInteger최소 요금
maxInteger최대 요금
이름타입설명
propertiesStepProperties대중교통 경로 단계 속성
pathPath대중교통 경로 단계 좌표 정보
이름타입설명
guidanceString대중교통 경로 단계 안내 문구
typeString대중교통 경로 단계 타입, 아래 중 하나
  • BUS: 버스
  • SUBWAY: 지하철
  • WALKING: 도보
distanceInteger대중교통 경로 단계 거리(단위: 미터(m))
timeInteger대중교통 경로 단계 소요 시간(단위: 초(s))
stopsStop[]대중교통 경로 단계 정류장 목록
vehiclesVehicle[]대중교통 경로 단계 차량 목록
이름타입설명
nameString정류장명
이름타입설명
typeString버스 또는 지하철의 세부 타입 명칭, 아래 중 하나
간선, 지선, 광역, 순환, 공항, 일반, 좌석, 급행, 마을, 직행, 외곽, 시외, 농어촌, 한강리버, 청소년, 투어, 직통, ITX청춘, 특급

중요: 세부 타입 명칭은 추가, 변경, 삭제될 수 있음
nameString차량 이름
이름타입설명
pointsDouble[][]대중교통 경로 단계 좌표 목록, 내부 배열은 [x, y] 형식의 좌표 쌍
(예: [[127.02700693, 37.49864277], [127.02698289, 37.49863151]])
curl -v -G GET "https://dapi.kakao.com/v2/routing/publictraffic" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
--data-urlencode "start_x=127.11119217" \
--data-urlencode "start_y=37.39477123" \
--data-urlencode "end_x=127.12628814" \
--data-urlencode "end_y=37.41993056"
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"status": "OK",
"properties": {
"total": 15,
"bus": 9,
"subway": 1,
"busAndSubway": 5,
"landingURL": "https://map.kakao.com/link/by/traffic/%EC%B6%9C%EB%B0%9C,37.39477123,127.11119217/%EB%8F%84%EC%B0%A9,37.41993056,127.12628814"
},
"routes": [
{
"properties": {
"type": "BUS",
"totalDistance": 5013,
"totalTime": 2115,
"transfers": 0,
"fare": {
"value": 1350
}
},
"steps": [
{
"properties": {
"guidance": "마을 76 (판교역동편 > 성남시청전면)",
"type": "BUS",
"distance": 4127,
"time": 1158,
"stops": [
{ "name": "판교역동편" },
{ "name": "봇들마을7.8단지.롯데마트판교점" }
// ...
],
"vehicles": [
{ "name": "76", "type": "마을" }
// ...
]
},
"path": {
"points": [
[127.11316378, 37.3948816],
[127.11312974, 37.39488161]
// ...
]
}
}
// ...
]
}
// ...
]
}
메서드URL인증 방식
GEThttps://dapi.kakao.com/v2/routing/walkREST API 키

지정한 출발지와 도착지 좌표의 도보 경로를 조회합니다.

이름설명필수
AuthorizationAuthorization: KakaoAK ${REST_API_KEY}
인증 방식, REST API 키로 인증 요청
O
이름타입설명필수
start_xString출발지 X 좌표O
start_yString출발지 Y 좌표O
via_xString경유지 X 좌표(최대 5개, 쉼표(,)로 구분)X
via_yString경유지 Y 좌표(최대 5개, 쉼표(,)로 구분)X
end_xString도착지 X 좌표O
end_yString도착지 Y 좌표O
s_nameString출발지 명칭(기본값: 출발)X
v_nameString경유지 명칭(최대 5개, 쉼표(,)로 구분)X
e_nameString도착지 명칭(기본값: 도착)X
input_coordString입력 좌표계, 아래 중 하나
  • WGS84(기본값)
  • WTM
  • TM
  • WCONGNAMUL
X
output_coordString출력 좌표계, 아래 중 하나
  • WGS84(기본값)
  • WTM
  • TM
  • WCONGNAMUL
X
route_modeString탐색 옵션, 아래 중 하나
  • BROAD_FIRST: 넓은 길 우선(기본값)
  • SHORTEST: 최단 경로
  • ACCESSIBLE: 편안한 길
X
이름타입설명
statusString경로 탐색 결과 상태값, 아래 중 하나
  • OK: 조회 성공
  • SAME_POINT: 출발지와 도착지가 동일
  • START_LINK_NOT_FOUND: 출발지 주변 도로를 찾을 수 없음
  • END_LINK_NOT_FOUND: 도착지 주변 도로를 찾을 수 없음
  • TOO_MANY_SEARCH_LINK: 너무 많은 링크를 탐색함
  • TOO_FAR_AWAY: 출발지와 도착지가 너무 멀리 떨어져 있음
  • ROUTE_RESULT_NOT_FOUND: 결과 없음
routeRoute전체 경로 정보

중요: statusOK인 경우에만 응답에 포함
이름타입설명
propertiesRouteProperties전체 경로 속성
legsLeg[]경로 구간 목록
이름타입설명
totalDistanceInteger전체 경로 거리(단위: 미터(m))
totalTimeInteger전체 경로 소요 시간(단위: 초(s))
landingUrlString카카오맵 길찾기 화면 랜딩 URL
이름타입설명
propertiesLegProperties경로 구간 속성
stepsStep[]경로 구간 단계 목록
이름타입설명
distanceInteger경로 구간 거리(단위: 미터(m))
timeInteger경로 구간 소요 시간(단위: 초(s))
이름타입설명
propertiesStepProperties경로 단계 속성
pathPath경로 단계 좌표 정보
이름타입설명
distanceInteger경로 단계 거리(단위: 미터(m))
guidanceString경로 단계 안내 문구
timeInteger경로 단계 소요 시간(단위: 초(s))
xDouble경로 단계 시작점 X 좌표
yDouble경로 단계 시작점 Y 좌표
이름타입설명
pointsDouble[][]경로 단계 좌표 목록, 내부 배열은 [x, y] 형식의 좌표 쌍
(예: [[127.02700693, 37.49864277], [127.02698289, 37.49863151]])
curl -v -G GET "https://dapi.kakao.com/v2/routing/walk" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
--data-urlencode "start_x=127.11119669891646" \
--data-urlencode "start_y=37.394776627382875" \
--data-urlencode "end_x=127.12629039752096" \
--data-urlencode "end_y=37.4199323570413"
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"route": {
"properties": {
"totalDistance": 4025,
"totalTime": 3914,
"landingUrl": "https://map.kakao.com/link/by/walk/%EC%B6%9C%EB%B0%9C,37.394776627382875,127.11119669891646/%EB%8F%84%EC%B0%A9,37.4199323570413,127.12629039752096"
},
"legs": [
{
"properties": {
"distance": 4025,
"time": 3914
},
"steps": [
{
"properties": {
"distance": 93,
"guidance": "판교역 1번 출구까지 역사 내 이동",
"time": 84,
"x": 127.11119783,
"y": 37.39477573
},
"path": {
"points": [
[127.11119783, 37.39477573],
[127.11119779, 37.39474869],
[127.1114835, 37.39474572],
[127.11148211, 37.39533499]
// ...
]
}
}
// ...
]
}
// ...
]
},
"status": "OK"
}
메서드URL인증 방식
GEThttps://dapi.kakao.com/v2/routing/bicycleREST API 키

지정한 출발지와 도착지 좌표의 자전거 경로를 조회합니다.

이름설명필수
AuthorizationAuthorization: KakaoAK ${REST_API_KEY}
인증 방식, REST API 키로 인증 요청
O
이름타입설명필수
start_xString출발지 X 좌표O
start_yString출발지 Y 좌표O
via_xString경유지 X 좌표(최대 5개, 쉼표(,)로 구분)X
via_yString경유지 Y 좌표(최대 5개, 쉼표(,)로 구분)X
end_xString도착지 X 좌표O
end_yString도착지 Y 좌표O
s_nameString출발지 명칭(기본값: 출발)X
v_nameString경유지 명칭(최대 5개, 쉼표(,)로 구분)X
e_nameString도착지 명칭(기본값: 도착)X
input_coordString입력 좌표계, 아래 중 하나
  • WGS84(기본값)
  • WTM
  • TM
  • WCONGNAMUL
X
output_coordString출력 좌표계, 아래 중 하나
  • WGS84(기본값)
  • WTM
  • TM
  • WCONGNAMUL
X
route_modeString탐색 옵션, 아래 중 하나
  • BIKE_ONLY(기본값): 자전거도로 우선
  • SHORTEST: 최단 경로
  • ACCESSIBLE: 편안한길
X

자전거 경로 조회 API의 응답은 도보 경로 조회 API 응답과 같습니다.

curl -v -G GET "https://dapi.kakao.com/v2/routing/bicycle" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
--data-urlencode "start_x=127.11119669891646" \
--data-urlencode "start_y=37.394776627382875" \
--data-urlencode "end_x=127.12629039752096" \
--data-urlencode "end_y=37.4199323570413"
// HTTP/1.1 200 OK
// Content-Type: application/json;charset=UTF-8
{
"route": {
"properties": {
"totalDistance": 4155,
"totalTime": 1242,
"landingUrl": "https://map.kakao.com/link/by/bicycle/%EC%B6%9C%EB%B0%9C,37.394776627382875,127.11119669891646/%EB%8F%84%EC%B0%A9,37.4199323570413,127.12629039752096"
},
"legs": [
{
"properties": {
"distance": 4155,
"time": 1242
},
"steps": [
{
"properties": {
"distance": 76,
"guidance": "76m 이동",
"time": 12,
"x": 127.11143401,
"y": 37.39488363
},
"path": {
"points": [
[127.11143401, 37.39488363],
[127.11145558, 37.39495569],
[127.11145156, 37.39529448],
[127.11150469, 37.39532596]
// ...
]
}
}
// ...
]
}
// ...
]
},
"status": "OK"
}
메서드URL인증 방식
GEThttps://dapi.kakao.com/v2/maps/staticmapREST API 키

지정한 좌표와 옵션을 반영한 정적 지도 이미지를 생성해 반환합니다.

응답 이미지에는 카카오 CI 로고가 포함됩니다. logo_pos 파라미터로 위치를 조정할 수 있으나 제거할 수 없습니다.

이름설명필수
AuthorizationAuthorization: KakaoAK ${REST_API_KEY}
인증 방식, REST API 키로 인증 요청
O
이름타입설명필수
centerString지도 중심 좌표, 쉼표(,)로 구분한 X,Y 형식(예: 127.1105,37.3955)

중요: center 또는 markers 중 하나 이상 필수, 두 파라미터 모두 생략 시 지도 중심 결정 불가로 인한 에러 반환
X
markersString마커 정보, 마커 구성 방법은 markers 내부 파라미터 확인

중요: center 또는 markers 중 하나 이상 필수, 두 파라미터 모두 생략 시 지도 중심 결정 불가로 인한 에러 반환
X
sizeString이미지 크기, {WIDTH}x{HEIGHT} 형식(최대: 2048x1024)O
formatString응답 이미지 포맷, 아래 중 하나
  • png(기본값)
  • jpg
X
logo_posString카카오 CI 로고 위치, 아래 중 하나
  • BOTTOM_LEFT(기본값)
  • BOTTOM_RIGHT
  • TOP_LEFT
  • TOP_RIGHT
X
scaleInteger이미지 배율, 아래 중 하나
  • 1
  • 2(기본값)

참고: scale2인 경우 응답 이미지는 size의 2배 크기
X
lvInteger지도 줌 레벨(최소: 1, 최대: 15, 기본값: 3)X
coordString요청에 적용할 좌표계, 아래 중 하나
  • WGS84(기본값)
  • WCONGNAMUL
  • WTM
  • TM
X

markers의 값은 콜론(:)으로 키와 값을 구분하고, 파라미터는 파이프(|)로 연결합니다. 각 마커간 연결은 앰퍼샌드(&)로 연결하며, 최대 5개까지 연결할 수 있습니다. 아래 파라미터 표와 예제를 참고합니다.

이름타입설명필수
locationString마커 좌표, 쉼표(,)로 구분한 X,Y 형식
(예: 127.1105,37.3955)
O
optionBoolean지도 영역(center, lv) 자동 계산 시 마커 제외 여부
  • true: 영역 계산에서 제외
  • false: 영역 계산에 포함(기본값)
X
markers=location:127.1105,37.3955|option:false&markers=location:127.1120,37.3970|option:false
  • 정적 지도 이미지 바이너리 데이터
curl -v -G GET "https://dapi.kakao.com/v2/maps/staticmap" \
-H "Authorization: KakaoAK ${REST_API_KEY}" \
--data-urlencode "center=127.1105,37.3955" \
--data-urlencode "size=640x480" \
--data-urlencode "markers=location:127.1105,37.3955|option:false"
// HTTP/1.1 200 OK
// Content-Type: image/png (요청 이미지 포맷이 jpg인 경우 image/jpeg)
<binary image data>

도움이 되었나요?

    카카오맵 > REST API - 카카오디벨로퍼스 | 문서