할인항공권 검색 API
여행 API는 더이상 추가 지원을 하지 않습니다. 향후 다른 API로 교체할 예정이며 더이상 신규 사용을 추천하지 않습니다. 2009년 상반기에 사용을 중지할 예정입니다.
할인항공권 검색 API는 Daum여행의 항공 예약 엔진 ‘해모수’ 가 보유하고 있는 각 항공사별 주요도시로 취항하는 항공요금에 대한 검색 결과를 외부 개발자 및 사용자에게
RSS, JSON, XML 형식으로 제공하는 API 서비스 입니다. 이제 Daum여행의 뛰어난 항공검색엔진을 자신의 블로그나 자사 웹 서비스에 제공할 수 있게 해 줍니다.
인증 요청 변수 (Request Parameters) #
공통 인증 변수: 모든 API 서비스 요청시 공통적으로 넣어야 할 변수는 아래와 같습니다.
인증 파라미터 #
- 인증에 사용되는 공통 파라미터를 설명합니다.
| 요청 변수 | 값 | 설명 |
| apikey | 40 byte hexadecimal string (필수) | 모든 오픈 API 호출에 공통으로 사용되는 인증키 입니다. Daum 회원이면, apikey를 발급 받을 수 있습니다. 오픈 API는 검색, UCC, 디앤샵 API로 구분됩니다. 나중에 다른 API가 추가될 수 도 있습니다. 각 API별로 Daum 회원은 하나의 apikey 만을 발급받을 수 있습니다. 그리고, 이 apikey로는 허가된 API만 호출 할 수 있습니다. 예) apikey=4125603e35da5d8820b07dc7b19050dbc838336b |
| apid | 20 byte hexadecimal string | 오픈 API를 이용하여 어플리케이션 이나 웹 사이트를 작성한 개발자 분들은 프로그램 등록을 할 수 있습니다. apid 는 등록된 프로그램에 대해서 오픈 API 인증 시스템에서 제공한 프로그램 아이디 입니다. 일부 오픈 API는 apid 파라미터를 필수로 요구하는 경우가 있습니다. 등록된 프로그램은 이 DNA 사이트를 통해서 홍보되며, 개발자 본인의 의사에 따라 다른 사용자가 다운받아 설치할 수 있게 됩니다. 예) apid=ba8c53ab7970189d93a7 |
서명 인증 파라미터 #
- 서명된 오픈 API는 인증키가 다른 사용자에 의해서 도용 되는 것을 보호해 줍니다.
- 서명은 필수적인 파라미터가 아닙니다. 그러나, 일부 오픈 API는 반드시 서명을 요구합니다.
- 서명에 사용되는 파라미터를 설명합니다.
| 이름 | 값 | 설명 |
| ts | YYYYMMDDhhmmss | 오픈 API를 호출하는 시간. UTC Time 으로 변환되서 전달되어야 합니다. 서명 값(sig)을 전달할 때 반드시 포함되어야 합니다. 예, ts=20060501153010 |
| nonce | 16 byte hexadecimal string | 랜덤한 8byte binary 값. ts 와 함께 서명의 재 사용여부를 확인하는데 사용됩니다. 서명 값(sig)을 전달할 때 반드시 포함되어야 합니다. 예, nonce=bd149ae021feb132 |
| sigalg | "hmacsha1" | 서명에 사용하는 알고리즘 이름. "hmacsha1" 으로 고정되어 있습니다. 실제 사용하는 알고리즘은 RFC 2014 에 정의되어 있는 HMACSHA-1 입니다. 서명 값(sig)을 전달할 때 반드시 포함되어야 합니다. |
| sig | 40 byte hexadecimal string | 오픈 API 호출 URL 전체에 대해서 서명키로 서명한 값. 예) sig=b45de8a31aed6e58b831dd72087bb4ed71fcaf98 |
- 서명 값 만들기 & 소스 예제 코드 : HowToSign
서비스 인증 변수 #
본 서비스에서 사용되는 변수는 아래와 같습니다.
* 샘플 URL
| 요청 변수 | 값 | 설명 |
| query | string (필수) | 검색을 원하는 질의 |
| output | string : rss(기본값), xml, json | 결과형식 |
* 샘플 URL
http://apis.daum.net/tour/Airline?apikey=46a39b162562cb71c07dbefb330ebcab15baf81a&query=일본&output=xml
출력 방식 (Response Method) #
- JSON방식으로 제공 가능합니다.
- XML방식으로 제공 가능합니다.
출력 결과 (Response Elements) #
- 출력 결과
| 출력 변수 | 값 | 설명 |
| title | string | 검색 제목 |
| totalCount | Integer | 총 검색결과 수 |
| arean | string | 지역명 |
| adult | string | 성인구분(성인/학생/유아) |
| cost | Integer | 요금 |
| direct | string | 경로구분(직항/경유) |
| condition | string | 출발조건 |
| link | string | 링크값 |
| begin_date | string | 항공권 유효기간 시작일 |
| end_date | string | 항공권 유효기간 종료일 |
| regdate | string | 요금 기준일 |
출력 결과 샘플 페이지 #
* XML 출력결과
<?xml version="1.0" encoding="EUC-KR" ?> - <list> <title>주요도시 할인 항공요금 검색</title> <totalCount>380</totalCount> - <item> <arean>나고야</arean> <adult>Y</adult> <expiration>14일</expiration> <nation>일본</nation> - <condition> :OPEN (귀국일 미지정) 불가 <br /> 환불 규정:첫구간 사용후 환불불가 <br /> <br /> <br /> <br /> <br /> 환불 규정:환불소요기간-항공사와의 확인및 보고 절차로인하여 30~50일정도 소요됨. <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> <br /> </condition> <direct>왕복</direct> <airline>일본항공</airline> <cost>251100</cost> <begin_date>20070201</begin_date> <end_date>20070215</end_date> <category>여행</category> <author>tourexpress</author> <pubDate>Wed, 21 Feb 2007 14:44:24 JST</pubDate> </item>
오류 메시지 #
- 공통 오류 메시지는 다음과 같습니다.
오류는 다음과 같은 XML로 전달됩니다.
<?xml version="1.0" encoding="UTF-8"?>
<apierror>
<code></code>
<message></message>
<dcode></code>
<dmessage></dmessage>
</apierror>
오류 XML의 각 항목은 아래와 같은 값을 가집니다.
| 오류 코드 (code|dcode) | 오류(message) | 상세 오류(dmessage) | 설명 |
| 10 | | invalid request | 오픈 API 호출이 공통 호출 규약에 맞지 않은 경우에 전달된다. | |
| 10 | 11 | invalid request | apikey missing | apikey 파라미터가 없음 |
| 10 | 12 | invalid request | Missing auth parameter 'ts'. | ts 파라미터가 없음 |
| 10 | 13 | invalid request | Missing auth parameter 'nonce'. | nonce 파라미터가 없음 |
| 10 | 14 | invalid request | Missing auth parameter 'sigalg'. | sigalg 파라미터가 없음 |
| 10 | 15 | invalid request | Missing auth parameter 'sig'. | sig 파라미터가 없음 |
| 10 | 18 | invalid request | Missing parameter 'apid'. | apid 파라미터가 없음 |
| 20 | | unknown ap instance | 프로그램 인증 실패. | |
| 20 | 21 | unknown ap instance | invalid apikey | 유효하지 않은 apikey |
| 20 | 22 | unknown ap instance | unregistered apikey | 등록되지 않은 apikey |
| 20 | 23 | unknown ap instance | unregistered apid | 등록되지 않은 apid |
| 20 | 24 | unknown ap instance | Signature sigkey is not valid. | 유효하지 않은 서명키 |
| 20 | 25 | unknown ap instance | invalid apid | 유효하지 않은 apid |
| 20 | 26 | unknown ap instance | SignatureKey is not issued to this apikey. | apikey 해당하지 않는 서명키 |
| 20 | 27 | unknown ap instance | ts, nonce are reused. | ts,nonce 재사용 오류 |
| 20 | 28 | unknown ap instance | Unsupported Sign Algorithm. | 지원하지 않는 서명 알고리즘 |
| 30 | | unknown daumuser | apikey 소유자의 Daum 인증 실패. | |
| 40 | | access denied | 서비스 접근 거부 | |
| 40 | 41 | access denied | valid api call but traffic overed | 하루 api 호출 traffic 초과 |
| 40 | 42 | access denied | apikey does not match api category | 이 apikey 로 호출할 수 있는 api 가 아님 |
| 40 | 43 | access denied | unsigned call | 서명되지 않은 호출 |
| 40 | 44 | access denied | unregistered ip | 등록되지 않은 IP 주소 |
| 40 | 45 | access denied | apid doesnot use api | 프로그램이 이 api를 사용하고 있지 않음 |
| 404 | no such api | 해당 오픈 API 서비스가 없음 | |
| 500 | system error | 오픈 API 서비스 내부 시스템 에러. | |
| 504 | service timeout | 오픈 API 서비스 연결 실패. 서비스 시스템 과부하 또는 장애로 인한 서비스 연결 실패. | |
| 100 | | service api runtime error | 오픈 API 서비스 실행 오류. 101~299 값을 가지며, 각 API 에서 정의함. |
- 이 서비스의 오류 메시지는 다음과 같습니다.
| 오류 코드(dcode) | 오류 설명(dmessage) |
| 101 : Required parameter | 필수 Parameter를 요청하지 않았습니다. 필수 Parameter 가 dummy일 경우 '...&dummy=&'와 같이 값을 입력하지 않았거나 Parameter를 name자체를 입력하지 않았을 경우에 해당 에러메세지를 발생합니다. |
| 111 : Exceeded maximum value | Parameter의 값이 integer일 경우, 입력된 값이 최대값을 초과하면 해당 에러 메세지를 발생합니다. |
| 112 : Belowed minimum value | Parameter의 값이 integer일 경우, 입력된 값이 최소값의 미만이면 해당 에러 메세지를 발생합니다. |
| 121 : Invalid value | Parameter의 type이 잘못 입력되었습니다. parameter 값이 integer일 경우 string값으로 입력되면 해당 에러 메세지를 발생합니다. |
| 122 : Not allowed value | Parameter에 허용되지 않은 값이 입력되었습니다. Parameter에 제한된 값이 있을 경우 허용되지 않은 값이 입력되면 해당 에러 메세지를 발생합니다. |
| 131 : System error | System의 오류가 있을시 해당 에러 메세지를 발생합니다. |
트래픽 제한 #
- 오픈 API는 하나의 apikey에 대해서 하루 5,000 회의 호출 만을 허용합니다.
- 트래픽 제어는 보안 및 어뷰징을 제한하기 위해 사용합니다.
- 일 5,000회 이상의 요청을 원하는 경우 freewill@daumcorp.com, tadoli2@daumcorp.com으로 요청 메일을 보내주시기 바랍니다.
샘플 코드 #
- PHP 코드
- JavaScript 코드


