코스트코 코리아의 상품 가격을 API로 조회하려면 https://api.scavio.dev/api/v1/costco/search에 {"query": "커피", "country": "kr"}를 POST로 보내면 됩니다. 응답에는 costco.co.kr 상품이 원화 가격, 평점, 리뷰 수, 재고 상태, 영문 상품명과 함께 들어 있습니다. 호출당 1크레딧이고, page_size를 100으로 주면 한 번에 최대 100개 상품을 받을 수 있습니다. 코스트코는 공개 API가 없으니, 크롤러를 직접 만들고 유지하지 않고 가격을 JSON으로 받는 가장 빠른 방법입니다.
이 글의 응답은 모두 2026년 11월 2일에 실제로 받은 것입니다.
준비물
- Scavio API 키. 가입하면 50크레딧을 무료로 받습니다. 카드도, 코스트코 회원권도 필요 없습니다.
- HTTP 요청을 보낼 수 있는 언어. 예제는 cURL과 Python입니다.
1단계: costco.co.kr 검색하기
curl -X POST 'https://api.scavio.dev/api/v1/costco/search' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk_live_your_key' \
-d '{"query": "커피", "country": "kr", "page_size": 100}'이 검색은 전체 181개 중 100개를 6.2초에 돌려줬습니다. 그중 한 줄을 값은 그대로 두고 보여 드립니다.
{
"data": {
"country": "kr",
"query": "커피",
"corrected_query": null,
"total_results": 181,
"page": 1,
"page_size": 100,
"total_pages": 2,
"count": 100,
"results": [
{
"position": 29,
"product_id": "598439",
"title": "테라로사 올데이 블렌드 1.13kg",
"english_title": "Terarosa All Day Blend 1.13kg",
"url": "https://www.costco.co.kr/Foods/CoffeeTeaDrink/Whole-BeansGround-Coffee/Terarosa-All-Day-Blend-113kg/p/598439",
"image": "https://www.costco.co.kr/medias/sys_master/images/h2b/h49/448854188425246.jpg",
"price": 38990,
"price_hidden": false,
"price_formatted": "38,990원",
"currency": "KRW",
"rating": 4.7,
"reviews_count": 478,
"availability": "in_stock",
"member_only": false,
"max_order_quantity": 500
}
]
},
"credits_used": 1
}자주 쓰는 필드는 다음과 같습니다.
| 필드 | 내용 |
|---|---|
product_id | costco.co.kr 상품 번호. 상품 상세 조회에 씀 (예: 598439) |
title / english_title | 한국어 상품명과 사이트의 영문 표기 (없으면 null) |
price | 원화 가격(숫자). 38990은 38,990원 |
price_formatted | 사이트 표시 그대로의 가격("38,990원") |
price_hidden | 사이트가 가격을 표시하지 않는 상품은 true, 이때 price는 null |
availability | 온라인 재고 상태. in_stock 또는 out_of_stock |
rating / reviews_count | 평균 평점과 리뷰 수 |
2단계: 정렬과 페이지 이동
sort_by에는 best_match(기본값), price_low, price_high, top_rated를 쓸 수 있습니다. 다만 best_match가 아닌 정렬에서는 코스트코가 검색 범위를 넓힙니다. {"query": "원두", "country": "kr", "sort_by": "price_low", "page_size": 10}로 검색하자 1위는 삼풍 커피필터 600매(14,290원), 2위는 Hamaya 드립백 커피(14,990원), 3위는 아소부 타워 텀블러(24,990원)였고, 원두는 7위의 커피명가 올굿블렌드 1.13kg(29,990원)이 처음이었습니다. 최저가 원두를 찾으려면 받은 쪽에서 상품명과 단가로 다시 걸러야 합니다.
페이지 이동은 page로 합니다. "커피"를 "page": 2로 다시 호출하자 101위부터 181위까지 81개가 1.0초에 왔습니다. 한국에서 page_size는 최대 100이고, 생략하면 페이지당 24개입니다.
3단계: 단가 계산하기
코스트코 상품은 용량이 제각각이라 비교하려면 단가로 바꿔야 합니다. 1단계와 2페이지 결과에서 상품명의 "1.13kg" 같은 중량을 읽어 1kg당 가격을 구하는 예입니다.
import re
import requests
rows = []
for page in (1, 2):
resp = requests.post(
"https://api.scavio.dev/api/v1/costco/search",
headers={"Authorization": "Bearer sk_live_your_key"},
json={"query": "커피", "country": "kr", "page_size": 100, "page": page},
timeout=60,
)
rows += resp.json()["data"]["results"]
for p in rows:
m = re.search(r"(\d+(?:\.\d+)?)\s*kg", p["title"])
# 가격 미표시, 품절, 묶음(x 320 등) 상품은 제외
if not m or p["price"] is None or p["availability"] != "in_stock" or re.search(r"x\s*\d", p["title"]):
continue
print(f'{p["title"]}: {p["price_formatted"]} / 1kg당 {p["price"] / float(m.group(1)):,.0f}원')11월 2일 결과 중 일부입니다.
| 상품 | 가격 | 1kg당 |
|---|---|---|
| 커피명가 올굿블렌드 1.13kg | 29,990원 | 26,540원 |
| 커클랜드 시그니춰 하우스 블렌드 원두커피 1.13kg | 31,990원 | 28,310원 |
| 커클랜드 시그니춰 콜럼비아 원두커피 1.36kg | 38,990원 | 28,669원 |
| 테라로사 올데이 블렌드 1.13kg | 38,990원 | 34,504원 |
| 스타벅스 카페 베로나 홀빈 커피 1.13kg | 46,990원 | 41,584원 |
| 블루보틀 커피 밸런스 원두 1kg | 41,990원 | 41,990원 |
재고가 있는 원두만 보면 1kg당 26,540원에서 41,990원까지, 58% 차이가 났습니다. 검색 결과에는 Trefin 벨기에 커피 캔디 1.5kg처럼 중량이 kg로 적힌 원두가 아닌 상품도 섞여 있습니다(이번에는 품절이라 위 코드에서 빠졌습니다). 실제로는 카테고리나 상품명으로 한 번 더 거르세요.
4단계: 상품 상세 조회하기
설명, 전체 이미지, 상품정보 항목이 필요하면 검색 결과의 product_id를 item_id로 넘깁니다. 한국에서는 호출당 상품 1개입니다.
curl -X POST 'https://api.scavio.dev/api/v1/costco/product' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk_live_your_key' \
-d '{"item_id": "598439", "country": "kr"}'응답의 주요 부분입니다(images는 8개 중 1개, specifications는 11개 중 3개, categories는 29개 중 4개로 줄임).
{
"data": {
"country": "kr",
"product_id": "598439",
"title": "테라로사 올데이 블렌드 1.13kg",
"english_title": "Terarosa All Day Blend 1.13kg",
"price": 38990,
"price_hidden": false,
"price_formatted": "38,990원",
"currency": "KRW",
"rating": 4.7,
"reviews_count": 478,
"availability": "in_stock",
"summary": "매장 판매 상품과 가격이 다를 수 있습니다.",
"images": [
"https://www.costco.co.kr/medias/sys_master/images/he2/hd1/448854188294174.jpg"
],
"specifications": [
{
"name": "생산자 및 소재지",
"value": "㈜학산 테라로사 커피 / 강원도 강릉시 구정면 현천길 7"
},
{
"name": "제조연월일, 유통기한, 소비기한 또는 품질유지기한",
"value": "소비기한: 제조일로부터 12개월"
},
{
"name": "원재료명 및 함량",
"value": "원재료명 : 커피원두 100%<br> 원산지 : 브라질 27%, 온두라스 25%, 그 외"
}
],
"categories": [
"원두/그라운드 커피",
"그로서리",
"커피",
"테라로사커피"
]
},
"credits_used": 1
}specifications의 값에는 <br> 같은 HTML 태그가 그대로 들어 있을 수 있으니 화면에 보여 주기 전에 정리하세요. categories에는 "Lucky Chuseok Event" 같은 기획전 이름도 섞여 있습니다. product_id는 나라마다 다르므로 costco.com의 ID는 쓸 수 없고, 반드시 "country": "kr" 검색 결과에서 가져와야 합니다.
5단계: 가까운 매장 찾기
한국 매장은 위도와 경도로 찾습니다(zip은 미국 우편번호 전용입니다).
curl -X POST 'https://api.scavio.dev/api/v1/costco/warehouses' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer sk_live_your_key' \
-d '{"latitude": 37.5665, "longitude": 126.978, "country": "kr", "limit": 10}'서울시청 좌표로 10개 매장이 가까운 순으로 왔고, 1위는 양평점(8.7 Km), 10위는 송도점(36.2 Km)이었습니다. 양평점 행입니다(위도·경도는 생략, hours는 7개 중 2개만 표시).
{
"warehouse_id": "costcoKoreaWarehouse850",
"name": "양평점",
"address": {
"line1": "서울특별시 영등포구 선유로 156",
"line2": "(양평동 3가 65)",
"city": null,
"zip": "07255",
"country": "KR",
"formatted": "07255 서울특별시 영등포구 선유로 156 (양평동 3가 65)"
},
"phone": "1899-9900",
"distance": "8.7 Km",
"hours": [
"일: 오전 10:00 - 오후 10:00",
"월: 오전 10:00 - 오후 10:00"
],
"services": [
"HEARING_AIDS"
],
"url": "https://www.costco.co.kr/store/Yangpyung"
}distance는 숫자가 아니라 "8.7 Km" 같은 문자열이고, phone은 10개 매장 모두 대표번호 1899-9900이었습니다. 주유소 가격은 한국에서는 받을 수 없습니다.
6단계: 정기적으로 기록해 변화 보기
모든 호출은 그 시점의 costco.co.kr을 읽기 때문에, 가격 추이를 보려면 검색 결과를 매일 정해진 시각에 저장해 전날과 비교하면 됩니다. product_id를 키로 price와 availability의 변화를 보면 가격 인하와 품절을 잡아낼 수 있습니다. price_hidden이 true인 상품은 가격 비교에서 빼세요.
한국에서 쓸 수 있는 엔드포인트
| 엔드포인트 | 내용 | 크레딧 |
|---|---|---|
POST /api/v1/costco/search | 키워드 검색. 정렬, 페이지 이동, 한 번에 최대 100개 | 1 |
POST /api/v1/costco/product | 상품 1개의 상세. 설명, 이미지, 상품정보, 카테고리 | 1 |
POST /api/v1/costco/warehouses | 위도·경도로 가까운 매장 찾기 | 1 |
매장별 가격과 재고, 주유소 가격, 쿠폰북, 할인 정보, 클리어런스, 리뷰, 카테고리, 자동완성은 미국과 캐나다 코스트코 전용이라 한국에서는 쓸 수 없습니다(쿠폰북은 미국만).
알아 둘 제한
- 한국 검색에서 쓸 수 있는 파라미터는
query,sort_by,page,page_size뿐입니다. 문서에 따르면warehouse_id, 브랜드, 가격이나 평점 필터,on_sale,in_stock을 보내거나sort_by에 newest를 넣으면 400 오류가 납니다. - 가격은 costco.co.kr의 온라인 판매가입니다. 매장 가격은 다를 수 있습니다.
- 상품 상세는 호출당 1개입니다. 최대 20개를 한 번에 받는
item_ids는 미국과 캐나다 전용입니다.
요금
한국의 검색, 상품 상세, 매장 찾기는 모두 호출당 1크레딧입니다. Growth 요금제 연간 결제 기준 1,000크레딧에 약 2달러이므로 100개 상품 검색 한 번은 약 0.002달러입니다. 키워드 50개를 매일 검색해도 한 달 약 1,500크레딧으로, 월 30달러인 Project 요금제(7,000크레딧) 안에 들어갑니다. 가입 시 받는 50크레딧으로 검색을 50번 해볼 수 있습니다. 자세한 내용은 요금 페이지를 보세요.
코스트코 코리아 API 무료로 써보기 (50크레딧, 카드 불필요). 코스트코 코리아 API 페이지에서 가입 전에 라이브 데모를 실행할 수 있습니다. 다른 API와의 비교는 코스트코 코리아 상품·가격 데이터 API 추천 4선에 정리했고, 미국과 캐나다 코스트코의 매장 가격과 재고는 영문 Costco API 페이지에서 다룹니다.
Frequently asked questions
코스트코 코리아 가격을 프로그램으로 조회하려면 어떻게 하나요?
Scavio의 코스트코 코리아 API에 키워드와 "country": "kr"을 POST로 보내면 됩니다. 한 번 호출에 최대 100개 상품이 원화 price, 표시용 price_formatted, 평점, 리뷰 수, 재고 상태와 함께 JSON으로 옵니다. 호출당 1크레딧이고, 가입하면 50크레딧을 무료로 받습니다.
코스트코 매장 가격도 API로 확인할 수 있나요?
한국에서는 안 됩니다. API가 돌려주는 것은 costco.co.kr의 온라인 판매가와 온라인 재고 상태입니다. 상품 상세의 summary에도 "매장 판매 상품과 가격이 다를 수 있습니다."라는 문구가 그대로 들어 있습니다. 매장별 가격과 재고 엔드포인트는 미국과 캐나다 코스트코 전용입니다.
가격이 null인 상품은 왜 생기나요?
costco.co.kr이 가격을 표시하지 않는 상품입니다. 이때 price와 price_formatted는 null, price_hidden은 true가 됩니다. 2026년 11월 2일 "커피" 검색에서는 181개 중 1개(일리 E.S.E. 파드 커피 머신)가 그랬습니다. 가격 비교에서는 이런 상품을 빼고 계산하세요.
매일 가격을 확인하면 비용이 얼마나 드나요?
키워드 하나를 검색하면 최대 100개 상품이 오고 호출당 1크레딧입니다. 키워드 50개를 매일 검색하면 한 달 약 1,500크레딧으로, Growth 요금제 연간 결제 기준 약 3달러이며 월 30달러인 Project 요금제(7,000크레딧) 안에 들어갑니다.