상품 검색 API
상품 검색 API는 디앤샵(D&Shop) 쇼핑 서비스에 대한 상품 검색 결과를 외부 개발자 및 사용자에게 XML 형식으로 전달하는 API 서비스입니다.
인증 요청 변수 #
- 공통 인증 변수: 모든 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
서비스 요청 변수 #
- 서비스 인증 변수: 본 서비스에서 사용되는 변수는 아래와 같습니다.
| 요청 변수 | 값 | 설명 |
| key | string (필수) | 검색 키워드 |
| display | string | 페이지당 보여지는 검색결과 수 (예:display=20) |
| pageNo | string | 요청페이지번호 (기본 1페이지) (예:pageNo=1) |
| orderBy | string | 검색결과순서 기준 salecostdesc(가격높은순).salecostasc(가격낮은순). regdt(신상품순) (예:orderBy=regdt) |
| output | string | 출력형식 xml / json |
| jsoncallback | string | output=json 일때 callback method 명 |
- 샘플 URL
http://apis.daum.net/dnshop/product/search?key=%eb%82%98%ec%9d%b4%ed%82%a4&pageNo=1&display=10&orderBy=regdt
출력 방식 (Response Method) #
- XML방식으로 제공 가능합니다.
출력 결과 (Response Elements) #
- XML 출력 결과
| 출력 변수 | 값 | 설명 |
| title | string | 검색 결과 제목 |
| description | string | 검색 결과 상세정보 |
| total | string | 검색 결과 총 개수 |
| pageno | string | 현재 페이지 |
| display | string | 현재 페이지의 보여지는 개수 |
| id | string | 상품아이디 |
| name | string | 상품이름 |
| salecost | string | 판매가격 |
| image | string | 이미지 url |
| link | string | 링크 url |
출력 결과 샘플 페이지 #
<?xml version="1.0" encoding="UTF-8"?>
<result>
<title>상품검색</title>
<description>상품정보를 검색하는 Open Api</description>
<total>4648</total>
<pageno>1</pageno>
<display>20</display>
<item>
<id>C718_200038736625</id>
<name><![CDATA[나이키모자/나이키티/캡모자/골프모자/야구모자/ck/티/나이키에어/신발/나이키운동화/아틀란티스]]></name>
<salecost>14900</salecost>
<image><![CDATA[http://image.onket.com/product/2006/08/21/middle/5660771_200037804748.gif]]></image>
<link><![CDATA[http://openmarket.dnshop.daum.net/front/product/omProductDetail?noProd=200038736625]]></link>
</item>
<item>
<id>B112_312626041</id>
<name><![CDATA[[나이키 베스트상품][정품 나이키]나이키 에어맥스 스터 2종 택1 (A형-여성용312626041/ B형-남성용312622161) 정상가:129,000원]]></name>
<salecost>89000</salecost>
<image><![CDATA[http://shopimage.hanmail.net/m_productimages//B112/73/B112_312626041_120.jpg]]></image>
<link><![CDATA[http://dnshop.daum.net/front/product/ProductDetail?PID=B112_312626041]]></link>
</item>
</result>
오류 메시지 #
- 공통 오류 메시지는 다음과 같습니다.
오류는 다음과 같은 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 : invalid url | 잘못된 url일때 발생합니다. |
| 103 : missing parameter 'key' | key parameter 검색키워드가 없을때 발생합니다. |
트래픽 제한 #
- 오픈 API는 하나의 apikey에 대해서 하루 5,000 회의 호출 만을 허용합니다.
- 트래픽 제어는 보안 및 어뷰징을 제한하기 위해 사용합니다.
- 일 5,000회 이상의 요청을 원하는 경우 freewill@daumcorp.com, tadoli2@daumcorp.com으로 요청 메일을 보내주시기 바랍니다.
샘플 코드 #
- PHP 코드
- JavaScript 코드


