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로 돌아옵니다.
  • 캐시는 없습니다. 모든 호출이 조회 시점의 상태를 보여 줍니다.