Request 링크 복사
요청 호출 방식과 각 요청 헤더에 포함될 내용을 안내합니다. 요청이 실패할 경우 문제 해결하기에서 에러에 대한 상세 내용을 확인하세요.
호출 방식 링크 복사
표 1
호출 방식
Method | URL |
---|---|
GET | https://apis-navi.kakaomobility.com/v1/directions |
요청 헤더(Header) 링크 복사
표 2
요청 헤더
Parameter | Description |
---|---|
Authorization | KakaoAK ${REST_API_KEY} {REST_API_KEY}: 카카오디벨로퍼스에서 발급 받은 REST API 키 |
Content-Type | application/json |
요청 코드 예제 링크 복사
curl -v -X GET "https://apis-navi.kakaomobility.com/v1/directions?origin=127.11015314141542,37.39472714688412&destination=127.10824367964793,37.401937080111644&waypoints=&priority=RECOMMEND&car_fuel=GASOLINE&car_hipass=false&alternatives=false&road_details=false" \
-H "Authorization: KakaoAK ${REST_API_KEY}" // 카카오디벨로퍼스에서 발급 받은 API 키 값
curl -v -X GET "https://apis-navi.kakaomobility.com/v1/directions?origin=127.11015314141542,37.39472714688412&destination=127.10824367964793,37.401937080111644&waypoints=&priority=RECOMMEND&car_fuel=GASOLINE&car_hipass=false&alternatives=false&road_details=false" \
-H "Authorization: KakaoAK ${REST_API_KEY}" // 카카오디벨로퍼스에서 발급 받은 API 키 값
코드가 숨겨졌습니다.
요청에 대한 파라미터는 다음과 같습니다.
표 3
요청 파라미터
Name | Type | Description | Required |
---|---|---|---|
origin | String | 출발지 다음 중 하나의 형식으로 요청: ${X좌표},${Y좌표},name=${출발지명} 또는${X좌표},${Y좌표} (예: " 127.111202,37.394912,name=판교역 " 또는 " 127.111202,37.394912 ") | 필수 |
destination | String | 목적지 다음 중 하나의 형식으로 요청: ${X좌표},${Y좌표},name=${목적지명} 또는${X좌표},${Y좌표} (예: " 127.111202,37.394912,name=판교역 " 또는 " 127.111202,37.394912 ") | 필수 |
waypoints | String | 경유지, 최대 5개까지 허용 경유지 수만큼 ${X좌표},${Y좌표},name=${경유지명} 또는 ${X좌표},${Y좌표} 를 | (또는 인코딩 된 문자인 %7C )로 연결하여 입력(예: " 127.111202,37.394912,name=판교역 | 127.112275,37.392815 ") | 선택 |
priority | String | 경로 탐색 우선순위 옵션 다음 중 하나: RECOMMEND : 추천 경로TIME : 최단 시간DISTANCE : 최단 경로(기본값: RECOMMEND ) | 선택 |
avoid | String | 경로 탐색 제한 옵션 다음 값 사용 가능: ferries : 페리 항로toll : 유료 도로motorway : 자동차 전용 도로schoolzone : 어린이 보호 구역uturn : 유턴(기본값: null )여러 개의 제한 옵션을 사용하려면 | (또는 인코딩 된 문자인 %7C )로 연결(예: avoid=motorway|ferries ) | 선택 |
roadevent | Int | 유고(교통사고, 행사, 재난, 도로 공사 등의 교통 장애)로 인한 도로 통제 정보 반영 옵션0 : 도로 전면 통제 정보 반영1 : 출발지 및 목적지 주변의 도로 전면 통제 정보 반영 안 함2 : 모든 도로 전면 통제 정보 반영 안 함(기본값: 0 ) | 선택 |
alternatives | Boolean | 대안 경로 제공 여부true : 대안 경로 제공false : 대안 경로 미제공(기본값: false ) | 선택 |
road_details | Boolean | 상세 도로 정보 제공 여부true : 상세 도로 정보 제공false : 상세 도로 정보 미제공(기본값: false ) | 선택 |
car_type | Int | 차종 (기본값: 1 ) | 선택 |
car_fuel | String | 차량 유종 정보 다음 중 하나: GASOLINE : 휘발유DIESEL : 경유LPG : LPG(기본값: GASOLINE ) | 선택 |
car_hipass | Boolean | 하이패스 장착 여부true : 하이패스 장착false : 하이패스 미장착(기본값: false ) | 선택 |
summary | Boolean | 요약 정보 제공 여부true : 요약 정보 제공false : 요약 정보 미제공(기본값: false ) | 선택 |
Response 링크 복사
응답 성공 시 요청에 대한 성공 여부를 HTTP 상태 코드로, 요청 본문은 JSON
포맷으로 전달합니다.
응답 코드 예제 링크 복사
{
"trans_id": "c9d60cbabdd44deeafb1e78feb8c8b86",
"routes": [
{
"result_code": 0,
"result_msg": "길찾기 성공",
"summary": {
"origin": {
"name": "",
"x": 127.11015051307636,
"y": 37.394725518530834
},
"destination": {
"name": "",
"x": 127.10823557165544,
"y": 37.401928707331656
},
"waypoints": [],
"priority": "RECOMMEND",
"bound": {
"min_x": 127.10833536148644,
"min_y": 37.39445954360996,
"max_x": 127.1098222529551,
"max_y": 37.40242724407785
},
"fare": {
"taxi": 3800,
"toll": 0
},
"distance": 1033,
"duration": 349
},
"sections": [
{
"distance": 1033,
"duration": 349,
"bound": {
"min_x": 127.10824109988312,
"min_y": 37.394469584427156,
"max_x": 127.10991634747967,
"max_y": 37.40242613861426
},
"roads": [
{
"name": "",
"distance": 22,
"duration": 5,
"traffic_speed": 16,
"traffic_state": 0,
"vertexes": [
127.10991634747967,
37.39447145478345,
127.10966790676201,
37.394469584427156
]
},
{
"name": "판교역로",
"distance": 883,
"duration": 279,
"traffic_speed": 9,
"traffic_state": 1,
"vertexes": [
127.10966790676201,
37.394469584427156,
127.10967141980313,
37.39512739646385,
127.10968100356395,
37.396226781360426,
127.10967417816033,
37.39775855885587,
127.10968323318781,
37.39794785293074,
127.10967534594126,
37.39861458950405,
127.10967214334856,
37.399840028043634,
127.1096931266438,
37.40093048716485,
127.10967543155922,
37.40242613861426
]
},
{
"name": "판교역로241번길",
"distance": 128,
"duration": 65,
"traffic_speed": 15,
"traffic_state": 2,
"vertexes": [
127.10967543155922,
37.40242613861426,
127.10860261294675,
37.40240904474889,
127.10824109988312,
37.402415329497174
]
}
],
"guides": [
{
"name": "출발지",
"x": 127.10991634747967,
"y": 37.39447145478345,
"distance": 0,
"duration": 0,
"type": 100,
"guidance": "출발지",
"road_index": 0
},
{
"name": "",
"x": 127.10966790676201,
"y": 37.394469584427156,
"distance": 22,
"duration": 5,
"type": 2,
"guidance": "우회전",
"road_index": 1
},
{
"name": "",
"x": 127.10967543155922,
"y": 37.40242613861426,
"distance": 883,
"duration": 279,
"type": 1,
"guidance": "좌회전",
"road_index": 2
},
{
"name": "목적지",
"x": 127.10824109988312,
"y": 37.402415329497174,
"distance": 128,
"duration": 65,
"type": 101,
"guidance": "목적지",
"road_index": -1
}
]
}
]
}
]
}
{
"trans_id": "c9d60cbabdd44deeafb1e78feb8c8b86",
"routes": [
{
"result_code": 0,
"result_msg": "길찾기 성공",
"summary": {
"origin": {
"name": "",
"x": 127.11015051307636,
"y": 37.394725518530834
},
"destination": {
"name": "",
"x": 127.10823557165544,
"y": 37.401928707331656
},
"waypoints": [],
"priority": "RECOMMEND",
"bound": {
"min_x": 127.10833536148644,
"min_y": 37.39445954360996,
"max_x": 127.1098222529551,
"max_y": 37.40242724407785
},
"fare": {
"taxi": 3800,
"toll": 0
},
"distance": 1033,
"duration": 349
},
"sections": [
{
"distance": 1033,
"duration": 349,
"bound": {
"min_x": 127.10824109988312,
"min_y": 37.394469584427156,
"max_x": 127.10991634747967,
"max_y": 37.40242613861426
},
"roads": [
{
"name": "",
"distance": 22,
"duration": 5,
"traffic_speed": 16,
"traffic_state": 0,
"vertexes": [
127.10991634747967,
37.39447145478345,
127.10966790676201,
37.394469584427156
]
},
{
"name": "판교역로",
"distance": 883,
"duration": 279,
"traffic_speed": 9,
"traffic_state": 1,
"vertexes": [
127.10966790676201,
37.394469584427156,
127.10967141980313,
37.39512739646385,
127.10968100356395,
37.396226781360426,
127.10967417816033,
37.39775855885587,
127.10968323318781,
37.39794785293074,
127.10967534594126,
37.39861458950405,
127.10967214334856,
37.399840028043634,
127.1096931266438,
37.40093048716485,
127.10967543155922,
37.40242613861426
]
},
{
"name": "판교역로241번길",
"distance": 128,
"duration": 65,
"traffic_speed": 15,
"traffic_state": 2,
"vertexes": [
127.10967543155922,
37.40242613861426,
127.10860261294675,
37.40240904474889,
127.10824109988312,
37.402415329497174
]
}
],
"guides": [
{
"name": "출발지",
"x": 127.10991634747967,
"y": 37.39447145478345,
"distance": 0,
"duration": 0,
"type": 100,
"guidance": "출발지",
"road_index": 0
},
{
"name": "",
"x": 127.10966790676201,
"y": 37.394469584427156,
"distance": 22,
"duration": 5,
"type": 2,
"guidance": "우회전",
"road_index": 1
},
{
"name": "",
"x": 127.10967543155922,
"y": 37.40242613861426,
"distance": 883,
"duration": 279,
"type": 1,
"guidance": "좌회전",
"road_index": 2
},
{
"name": "목적지",
"x": 127.10824109988312,
"y": 37.402415329497174,
"distance": 128,
"duration": 65,
"type": 101,
"guidance": "목적지",
"road_index": -1
}
]
}
]
}
]
}
코드가 숨겨졌습니다.
요청 응답에 대한 객체 정보는 다음과 같습니다.
표 4
응답 객체
Name | Type | Description | Required |
---|---|---|---|
trans_id | String | 경로 요청 ID | 필수 |
routes | Object[] | 경로 정보alternatives 가 true 인 경우 한 개 이상의 경로 제공 가능 | 필수 |
result_code | Int | 경로 탐색 결과 코드 | 필수 |
result_msg | String | 경로 탐색 결과 메시지 | 필수 |
summary | Object | 경로 요약 정보 | 필수 |
origin | Object | 출발지 정보 | 필수 |
name | String | 출발지 이름 | 필수 |
x | Double | X 좌표(경도) | 필수 |
y | Double | Y 좌표(위도) | 필수 |
destination | Object | 목적지 정보 | 필수 |
name | String | 목적지 이름 | 필수 |
x | Double | X 좌표(경도) | 필수 |
y | Double | Y 좌표(위도) | 필수 |
waypoints | Object[] | 경유지 정보 | 필수 |
name | String | 경유지 이름 | 필수 |
x | Double | X 좌표(경도) | 필수 |
y | Double | Y 좌표(위도) | 필수 |
priority | String | 경로 탐색 우선순위 옵션 | 필수 |
bound | Object | 모든 경로를 포함하는 사각형의 바운딩 박스(Bounding box) | 선택 |
min_x | Double | 바운딩 박스 왼쪽 하단의 X 좌표 | 필수 |
min_y | Double | 바운딩 박스 왼쪽 하단의 Y 좌표 | 필수 |
max_x | Double | 바운딩 박스 오른쪽 상단의 X 좌표 | 필수 |
max_y | Double | 바운딩 박스 오른쪽 상단의 Y 좌표 | 필수 |
fare | Object | 요금 정보 | 필수 |
taxi | Int | 택시 요금(원) | 필수 |
toll | Int | 통행 요금(원) | 필수 |
distance | Int | 전체 검색 결과 거리(미터) | 필수 |
duration | Int | 목적지까지 소요 시간(초) | 필수 |
sections | Object[] | 구간별 경로 정보 경유지가 존재할 경우 {경유지 수 + 1} 만큼의 섹션(경로 구간) 생성 (예: 경유지 수가 2개인 경우 총 3개의 섹션 정보가 생성, section1: 출발지 → 경유지 1 section2: 경유지 1 → 경유지 2 section3: 경유지 2 → 목적지) | 필수 |
distance | Int | 섹션 거리(미터) | 필수 |
duration | Int | 전체 검색 결과 이동 시간(초) | 필수 |
bound | Object | 모든 경로를 포함하는 사각형의 바운딩 박스(Bounding box) summary 가 false 인 경우에만 제공 | 선택 |
min_x | Double | 바운딩 박스 왼쪽 하단의 X 좌표 | 필수 |
min_y | Double | 바운딩 박스 왼쪽 하단의 Y 좌표 | 필수 |
max_x | Double | 바운딩 박스 오른쪽 상단의 X 좌표 | 필수 |
max_y | Double | 바운딩 박스 오른쪽 상단의 Y 좌표 | 필수 |
roads | Object[] | 도로 정보summary 가 false 인 경우에만 제공 | 선택 |
name | String | 도로명 | 필수 |
distance | Int | 도로 길이(미터) | 필수 |
duration | Int | 예상 이동 시간(초) 현재 예상 이동 시간 및 실제 이동 시간은 동일한 값으로 설정 | 필수 |
traffic_speed | Double | 현재 교통 정보 속도(km/h) | 필수 |
traffic_state | Int | 현재 교통 정보 상태 | 필수 |
vertexes | Double[] | X, Y 좌표로 구성된 1차원 배열 (예: [127.10966790676201, 37.394469584427156, 127.10967141980313, 37.39512739646385] ) | 필수 |
guides | Object[] | 안내 정보summary 가 false 인 경우에만 제공 | 선택 |
name | String | 명칭 | 필수 |
x | Double | X 좌표(경도) | 필수 |
y | Double | Y 좌표(위도) | 필수 |
distance | Int | 이전 가이드 지점부터 현재 가이드 지점까지 거리(미터) | 필수 |
duration | Int | 이전 가이드 지점부터 현재 가이드 지점까지 시간(초) | 필수 |
type | Int | 안내 타입 | 필수 |
guidance | String | 안내 문구 | 필수 |
road_index | Int | 현재 가이드에 대한 링크 인덱스 | 필수 |