API
쿠팡 API: 상품과 가격을 JSON으로
쿠팡에는 개발자용 공개 API가 없습니다. 여기서 돌려주는 것은 쿠팡이 공개적으로 보여 주는 내용입니다. 한 가지를 먼저 분명히 해 두겠습니다. 쿠팡의 상품 상세 페이지는 인증되지 않은 클라이언트에게 닫혀 있어서, 상품 조회는 쿠팡 자신의 검색 색인에 묻는 방식으로 답합니다. 그래서 받을 수 있는 필드가 정확히 정해져 있고, 무엇을 받을 수 없는지도 아래에 그대로 적어 두었습니다.
엔드포인트
| endpoint | 무엇이 반환되는가 | 필수 |
|---|---|---|
| search | 한국어 또는 영어 키워드 검색. 가격대와 로켓배송 재고로 좁힐 수 있고 가격, 최신순, 판매량으로 정렬됩니다. 각 행에 상품 id, 제목, 원화 가격, 정가와 할인율, 평점과 리뷰 수가 들어 있습니다. | query |
| product | 상품 id로 한 건을 조회합니다. 검색 카드 수준의 필드를 완전하게 돌려줍니다. 하나의 상품 id 아래 서로 다른 가격의 판매 단위가 여러 개 있을 수 있어 전부 items[]로 돌려주고, 쿠팡이 먼저 노출하는 것을 item으로 표시합니다. | product_id |
호출마다 크레딧이 차감됩니다. 실패하거나 차단된 호출은 무료입니다.
동작하는 예제
같은 상품 id 아래 포장 단위가 다른 여러 품목이 들어 있고 가격도 제각각입니다. 실제로 한 커피 상품에서 4,010원부터 8,550원까지 측정되었습니다. 최저가가 필요하면 item이 아니라 items[]를 보셔야 합니다.
요청
curl -X POST https://api.reefapi.com/coupang/v1/search \
-H "x-api-key: 발급받은_키" \
-H "content-type: application/json" \
-d '{"query": "무선 이어폰", "rocket_only": true}'응답 (요약)
{
"ok": true,
"data": {
"results": [
{
"product_id": "...",
"title": "...",
"price": 49900,
"list_price": 79000,
"discount_percent": 37,
"rating": 4.6,
"review_count": 12043
}
]
},
"meta": { "record_count": 36, "cache_hit": false, "mode": "live" }
}직접 크롤러를 만드는 대신
쿠팡 크롤러는 첫날에는 대개 동작합니다. 문제는 그다음입니다. 목록 구조가 바뀌면 파서는 오류를 내지 않고 빈 배열을 돌려주고, 봇 차단이 걸리면 요청이 조용히 막힙니다. 두 경우 모두 여러분 쪽에서는 '상품이 없다'와 똑같아 보입니다.
여기서는 유지보수가 저희 몫입니다. 구조가 바뀌면 저희가 고치고, 차단되면 명확한 오류 코드가 돌아오며 그 호출은 과금되지 않습니다.
한 번만 돌릴 작업이라면 직접 만든 스크립트가 더 쌉니다. 솔직히 그렇습니다. 매일 돌아가야 하는 가격 모니터링이라면 비용은 코드가 아니라 아무도 알아채지 못한 고장에 쌓입니다.
제한과 솔직한 메모
- 쿠팡의 공식 API가 아니며 쿠팡과 제휴 관계도 없습니다.
- 🔴 상품 조회로 받을 수 있는 것: 제목, 원화 가격(숫자), 정가와 할인율, 통화, 재고 여부, 평점과 리뷰 수, 썸네일, 배송 조건과 도착 예정일, 품목 및 판매자 품목 id.
- 🔴 받을 수 없는 것: 상품 설명, 사양 표, 이미지 갤러리(썸네일 한 장만), 판매자 이름, 옵션 속성 목록, 재고 수량, 카테고리 경로, 리뷰 본문. 쿠팡이 공개 영역에 내놓지 않는 항목들입니다.
- 존재하지 않는 id는 추천 상품으로 대체되지 않고 NOT_FOUND로 돌아옵니다.
- 캐시는 없습니다. 모든 호출이 조회 시점의 상태를 보여 줍니다.