틱톡샵 API, 상점 상품 52개를 3크레딧에
틱톡샵 API로 Goli Nutrition 상점 상품 52개를 3페이지·3크레딧에 받았어요. 리뷰는 60개·6페이지, 검색과 목록은 같은 상품 객체예요.
틱톡샵 API로 Goli Nutrition 상점을 치면 상품 52개가 3페이지, 3크레딧에 다 와요. 리뷰는 서로 다른 60개가 6페이지·6크레딧이고, 1페이지가 보고한 전체는 1,125개예요. 6페이지에서도 has_more는 true라서 여기서 끊었어요. 검색과 상점 목록은 같은 상품 객체를 줘요. 측정일은 2026-09-08, 이번 런은 13크레딧이에요.
헤더는 x-api-key예요. 경로는 GET /v1/tiktokshop/*예요. 공식 TikTok Shop Partner API는 인가받은 자기 상점만 읽어요. Research Tools는 상업 사용자 자격이 없고, 제품 페이지 지역 목록에 한국이 없어요. 영어 질의 tiktok shop api로 찾아도 이 숫자는 없어요.
틱톡샵 상품 API로 상점 전체 목록을 받을 수 있나요?
받을 수 있어요. 틱톡샵 상품 API에 공개 상점 URL을 넣고 pagination.next_cursor를 cursor로 넘기면 돼요. 2026-09-08에 Goli Nutrition 상점 7495794203056835079를 쳤고, 고유 상품 52개가 3페이지에 다 왔어요. data.total은 페이지마다 52, dropped는 0, 크레딧은 3이에요. 예전엔 이 호출이 20에서 멈추고 그걸 상점 전체처럼 보고했어요. 그 라벨은 2026-09-07 틱톡샵 업데이트예요. 오늘 그 예전 값을 다시 잰 건 아니에요.
| 페이지 | 항목 | data.total | dropped | has_more | 크레딧 |
|---|---|---|---|---|---|
| 1 | 20 | 52 | 0 | true | 1 |
| 2 | 20 | 52 | 0 | true | 1 |
| 3 | 12 | 52 | 0 | false | 1 |
| 전체 | 52 | 52 | 0 | 종료 | 3 |
모든 행의 판매자는 "Goli Nutrition"이에요. 1페이지 첫 상품 id는 1729527313880355335, 가격은 current 14.98 / original 19 USD, 평점은 4.5 / 94,634예요. 틱톡샵 상품 API 목록 행에는 긴 설명·재고·배송·SKU가 없어요. description, brand, availability는 null이었어요. 그건 아래 상세 호출에 있어요. 틱톡샵 스크래퍼를 상점마다 돌릴 필요는 없어요.
curl -sS "https://www.socialcrawl.dev/v1/tiktokshop/products?url=https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079" \
-H "x-api-key: $SOCIALCRAWL_API_KEY"1페이지에서 자른 응답이에요. items는 20행인데 첫 상품만 남겼어요.
{
"credits_used": 1,
"data": {
"total": 52,
"dropped": 0,
"items": [
{
"product": {
"id": "1729527313880355335",
"url": "https://www.tiktok.com/shop/pdp/1729527313880355335",
"title": "Goli Ashwagandha & Vitamin D Gummy - Mixed Berry, KSM-66, Vegan, Plant Based, Non-GMO, Gluten-Free & Gelatin Free. America's #1 Ashwagandha Brand",
"description": null,
"seller": "Goli Nutrition",
"brand": null,
"price": { "current": 14.98, "original": 19, "currency": "USD" },
"rating": { "average": 4.5, "count": 94634 },
"availability": null,
"reviews_count": 94634,
"ext": {
"sold_count": 1301493,
"tiktokshop": {
"shop_name": "Goli Nutrition",
"shop_rating": 4.6,
"shop_region": "US",
"shop_followers": 598046,
"shop_products_count": 52,
"shop_sold_count": 5726901
}
}
}
}
]
},
"pagination": { "has_more": true, "page_size": 20 }
}다음 페이지는 pagination.next_cursor를 cursor로 넣으면 돼요. has_more가 false가 되면 멈춰요. 이 숫자는 미국 상점 한 곳의 틱톡샵 상품 목록이에요. 모든 상점이 상품 52개인 건 아니에요.
같은 호출을 파이썬으로 세면 이래요. 2026-09-08 그 결과는 고유 52, data.total도 52였어요.
import os
import requests
base = "https://www.socialcrawl.dev/v1/tiktokshop/products"
params = {
"url": "https://www.tiktok.com/shop/store/goli-nutrition/7495794203056835079"
}
headers = {"x-api-key": os.environ["SOCIALCRAWL_API_KEY"]}
ids = []
while True:
body = requests.get(base, params=params, headers=headers).json()
ids += [row["product"]["id"] for row in body["data"]["items"]]
page = body.get("pagination") or {}
if not page.get("has_more"):
break
params["cursor"] = page["next_cursor"]
print(len(set(ids)), body["data"]["total"])
틱톡샵 리뷰 API는 한 페이지에서 멈추나요?
안 멈춰요. 틱톡샵 리뷰 API는 페이지당 10개고, next_cursor로 이어져요. 공식 Research 리뷰도 page_size 최대 10이라, 네 자리 리뷰는 한 화면에 안 담겨요. 리뷰 개수만 주고 본문을 안 주는 글이 많아요. 이번 런은 Potaroma 고양이 발톱깎이 1731578642912612516을 쳤어요.
| 페이지 | 항목 | 고유 (누적) | data.total | has_more | 크레딧 |
|---|---|---|---|---|---|
| 1 | 10 | 10 | 1,125 | true | 1 |
| 2 | 10 | 20 | 1,120 | true | 1 |
| 3 | 10 | 30 | 924 | true | 1 |
| 4 | 10 | 40 | 1,124 | true | 1 |
| 5 | 10 | 50 | 1,125 | true | 1 |
| 6 | 10 | 60 | 1,125 | true | 1 |
| 전체 | 60 | 고유 60, 중복 0 | 1페이지 보고값 1,125 | 소진 안 함 | 6 |
서로 다른 리뷰 60개, 6페이지, 6크레딧이에요. 6페이지에서도 has_more가 true라서 여기서 끊었어요. 1,125개를 다 받은 건 아니에요. data.total은 페이지마다 움직였어요. 1125, 1120, 924, 1124, 1125, 1125. 1페이지 보고값은 1,125예요. 고정 정수인 척하면 안 돼요.
받은 60개는 language·original_language가 둘 다 null이고, author.location은 "US", verified는 true예요. 국가는 작성자 위치예요. language에 구매자 국가를 넣지 않아요.
curl -sS "https://www.socialcrawl.dev/v1/tiktokshop/product/reviews?url=https://www.tiktok.com/shop/pdp/cat-nail-clipper-by-potaroma-adjustable-sizes-built-in-file-safe-for-kittens-cats/1731578642912612516" \
-H "x-api-key: $SOCIALCRAWL_API_KEY"1페이지 첫 리뷰를 자른 값이에요. id 7667988866325907213, 평점 5/5, 작성자 Ash, published_at 2026-07-29.
{
"credits_used": 1,
"data": {
"total": 1125,
"dropped": 0,
"items": [
{
"review": {
"id": "7667988866325907213",
"entity_id": "1731578642912612516",
"text": "These nail clippers are really nice and work great.",
"rating": { "value": 5, "max": 5 },
"author": { "name": "Ash", "location": "US" },
"verified": true,
"language": null,
"original_language": null,
"published_at": "2026-07-29T16:33:12.322Z"
}
}
]
},
"pagination": { "has_more": true, "page_size": 10 }
}본문은 336자예요. JSON에는 첫 문장만 남겼어요. 모든 상품이 리뷰 1,125개인 건 아니에요. 이 상품 하나예요.
틱톡샵 데이터 API는 검색과 목록이 같은 객체를 주나요?
같은 상품 객체를 줘요. 틱톡샵 데이터 API에서 키워드 검색과 상점 목록은 키 이름과 타입이 같아요. id, url, title, description, seller, brand, price, rating, image_urls, availability, reviews_count, ext. 채워진 필드는 검색이랑 상점 목록이 달라요. 모든 필드가 양쪽에서 다 찬다고 쓰면 안 돼요.
검색과 상점 목록이 같은 id를 주나요?
상품은 Goli Ashwagandha 3병, id 1729587769570529799예요. 상점 목록 1페이지와 GET /v1/tiktokshop/search?query=goli ashwagandha(11건, 1크레딧)에 둘 다 나왔어요.
| 필드 | 상점 목록 | 검색 히트 |
|---|---|---|
id | 1729587769570529799 | 같음 |
title | 3 Bottles of Goli Ashwagandha & Vitamin D Gummy… | 같은 문자열 |
seller | Goli Nutrition | Goli Nutrition |
price | current 44.98 / original 57 USD | 같음 |
rating.average | 4.7 | 4.7 |
rating.count | 71730 | null |
reviews_count | 71730 | null |
ext.sold_count | 864108 | 864108 |
ext.sku_id | 1729587788239049223 | null |
검색만 있는 ext.tiktokshop | — | trust_label, promotion_labels, category_breadcrumb, video_url |
상점만 있는 ext.tiktokshop | shop id/name/url/rating/region/followers | — |
객체 모양은 같아요. 검색은 프로모 라벨을 더 넣고, 상점 목록은 상점 프로필을 더 넣어요. 리뷰 수는 이번 검색 히트에서 null이었어요. 틱톡샵 데이터 API는 검색 히트의 id를 그대로 상세·리뷰에 넘기면 돼요.
curl -sS "https://www.socialcrawl.dev/v1/tiktokshop/search?query=goli%20ashwagandha" \
-H "x-api-key: $SOCIALCRAWL_API_KEY"검색 히트를 자른 값이에요. 상점 행과 같은 id·가격·판매자예요. reviews_count는 null이었어요.
{
"credits_used": 1,
"data": {
"items": [
{
"product": {
"id": "1729587769570529799",
"title": "3 Bottles of Goli Ashwagandha & Vitamin D Gummy - Mixed Berry, KSM-66, Vegan, Plant Based, Non-GMO, Gluten & Gelatin Free",
"description": null,
"seller": "Goli Nutrition",
"brand": null,
"price": { "current": 44.98, "original": 57, "currency": "USD" },
"rating": { "average": 4.7, "count": null },
"availability": null,
"reviews_count": null,
"ext": {
"sold_count": 864108,
"sku_id": null,
"tiktokshop": {
"trust_label": "blue_v",
"promotion_labels": ["Free shipping"],
"discount_percent": 21
}
}
}
}
]
},
"pagination": { "has_more": true, "page_size": 11 }
}페이지 크기를 보려면 query=phone case를 치면 돼요. 34개, has_more true, 1크레딧이었어요. 첫 판매자는 "TECHGODAS", 첫 가격은 current 11.99 / original 21.99 USD예요. 키 이름은 상점 목록과 같아요.
판매자가 쓴 설명은 목록에 없나요?
없어요. 목록·검색 행의 description은 null이었어요. 판매자가 쓴 카피, 재고, 배송, SKU는 상세에만 있어요. url 없이 product_id만 넣어도 200이 와요.
curl -sS "https://www.socialcrawl.dev/v1/tiktokshop/product?product_id=1729587769570529799" \
-H "x-api-key: $SOCIALCRAWL_API_KEY"설명은 1,288자(184단어, 8줄)예요. 카테고리 한 단어가 아니에요. ext.tiktokshop.category는 따로 "Health"로 남아 있어요. availability는 in_stock이에요. 할인은 21%, 배송비는 0, 배송은 "Sep 11 - Sep 14"예요. variations SKU는 1개, specifications는 8개(Brand, Container type, Flavor, Product form, Region of origin, Age warning, Manufacturer, Ingredients)예요. 판매자 위치는 United States of America, 판매자 평점 4.6, 누적 판매 5,726,901이에요. 1크레딧, 4.54초였어요.
{
"credits_used": 1,
"data": {
"product": {
"id": "1729587769570529799",
"url": "https://www.tiktok.com/shop/pdp/1729587769570529799",
"title": "3 Bottles of Goli Ashwagandha & Vitamin D Gummy - Mixed Berry, KSM-66, Vegan, Plant Based, Non-GMO, Gluten & Gelatin Free",
"description": "Goli Nutrition has sold over 90 Million bottles of gummy vitamins.",
"seller": "Goli Nutrition",
"brand": "Goli",
"price": { "current": 44.98, "original": 57, "currency": "USD" },
"rating": { "average": 4.7, "count": 71730 },
"availability": "in_stock",
"reviews_count": 71730,
"variations": [
{
"id": "1729587788239049223",
"title": "Specifications: Default"
}
],
"ext": {
"sold_count": 864108,
"tiktokshop": {
"category": "Health",
"discount_percent": 21,
"stock": 237896,
"shipping_fee": 0,
"delivery_estimate": "Sep 11 - Sep 14",
"seller_location": "United States of America",
"seller_rating": 4.6,
"seller_sold_count": 5726901
}
}
}
}
}설명 JSON은 첫 줄만 남겼어요. 전체는 1,288자예요. 이 상품의 SKU는 1개예요. 옵션이 많은 상품처럼 읽으면 안 돼요. 목록만 받으면 1,288자 카피는 안 와요.
어떻게 시작하나요?
가입하면 키가 와요. 헤더는 x-api-key고, 값은 환경 변수 $SOCIALCRAWL_API_KEY에 넣으면 돼요. 팩 단가는 이 글에서 안 다뤄요. 가격과 크레딧이 빠지는 순간만 보면 돼요. 같은 키로 아래 경로를 호출하면 돼요.
틱톡샵 상품 목록은 product_id로도 조회되나요?
조회돼요. 위 상세 호출이 최소 재현이에요. URL 없이도 200, 1크레딧이었어요. 틱톡샵 상품 목록을 먼저 받은 뒤, 그 product.id로 상세를 치면 설명·재고·배송이 붙어요.
curl -sS "https://www.socialcrawl.dev/v1/tiktokshop/product?product_id=1729587769570529799" \
-H "x-api-key: $SOCIALCRAWL_API_KEY"코드 한 줄 쓰기 전에 데이터를 먼저 확인해 보세요. 그다음은 틱톡샵 엔드포인트예요.
없는 핸들·잘못된 region은 크레딧이 빠지나요?
안 빠져요. 없는 핸들은 빈 200이 아니에요.
| 호출 | HTTP | 지연 | 크레딧 |
|---|---|---|---|
GET /v1/tiktokshop/user/showcase?handle=this-handle-should-not-exist-xyz123 | 404 RESOURCE_NOT_FOUND | 1.21초 | 0 |
리뷰에 region=ZZ | 400 INVALID_REQUEST | 66ms | 0 |
상품 상세에 url도 product_id도 없음 | 400 INVALID_REQUEST | 0.32초 | 0 |
없는 핸들 메시지 원문이에요. The requested resource was not found on the platform.
{
"success": false,
"error": {
"type": "RESOURCE_NOT_FOUND",
"message": "The requested resource was not found on the platform.",
"status": 404
},
"credits_used": 0,
"request_id": "req-5inAB63a9hVESzZr"
}region=ZZ는 과금 전에 거절해요. 허용 값은 메시지에 16개가 적혀 있어요. US, GB, DE, FR, IT, ID, MY, MX, PH, SG, ES, TH, VN, BR, JP, IE.
같은 쇼케이스 경로에 실제 핸들 mrtiktokreviews를 넣으면 20개, has_more true, 1크레딧이에요. 모양은 post와 computed 키를 가진 PostList예요. 검색·상점의 Product 객체가 아니에요. 상품 정보는 post.ext.commerce에 있어요. 첫 상품 가격은 current 15 / original 30 USD, 평점 4.4 / 35,223, 판매 524,359이었어요. 한 페이지만 쳤고 더 받지 않았어요.
자주 묻는 질문
틱톡샵 API로 상점 상품을 전부 받을 수 있나요?
Goli Nutrition은 52/52, 3페이지, 3크레딧이에요. has_more가 false일 때까지 next_cursor예요. 상점 1곳이지 모든 상점 52개가 아니에요. 틱톡샵 크롤링 대신 이 호출이면 돼요.
틱톡샵 리뷰 API는 페이지당 몇 개인가요?
페이지당 10개예요. 이번 런은 6페이지, 고유 60, 6크레딧이었어요. 1페이지 보고값은 1,125이고, 6페이지에서도 has_more는 true예요. 끝까지 안 가져왔어요.
틱톡샵 상품 검색과 상점 목록이 같은 객체를 주나요?
같은 상품 객체를 줘요. id 1729587769570529799, 키·타입, 가격·판매자가 같아요. 채워진 필드는 검색이랑 상점 목록이 달라요. 상세의 1,288자 설명은 목록·검색 행에 없어요.
없는 핸들을 치면 크레딧이 빠지나요?
404, 0크레딧, 1.21초예요. 잘못된 region은 400, 66ms, 0크레딧이에요. 실제 핸들 쇼케이스는 1크레딧이 빠져요.
틱톡샵 API와 틱톡 API는 다른가요?
이번 글은 상점 목록·리뷰·상품 객체예요. 영상·팔로워·댓글 밀도는 틱톡 API 1크레딧에 팔로워 150명, 댓글 48개에 따로 적었어요.
여러분 키로 Goli 상점 URL에 next_cursor를 붙이면 같은 숫자가 나와요. 2026-09-08 그 호출은 52/52, 3크레딧이었어요. 상품 카탈로그 쪽 형제는 홈디포 API, 검색과 재고예요. 엔드포인트 표는 틱톡샵 플랫폼에 있어요.
함께 읽으면 좋은 글
구글 트렌드 API, 관심도 0이면 404·0크레딧
관심도 0이면 404·0크레딧, 적용 불가 필터는 무료 400. SocialCrawl 구글 트렌드 API의 라이브 curl·크레딧 영수증을 그대로 보여 드려요.
두 배 빨라진 구글 트렌드 API — 한국 로케이션 실측
구글 트렌드 API가 프로덕션 22건 기준 약 9초에서 약 4.6초로 줄었어요. 한국 로케이션 아이폰 53주·블랙핑크/뉴진스 비교·급상승 25행 라이브 JSON과 관심도 없음 0크레딧 404를 스키마 그대로 보여 드려요. 이번 세션 캐시 미스 과금 3건은 평균 6,203ms예요.
인스타그램 데이터 API, about이 다시 200을 줘요
인스타그램 데이터 API, 죽은 about이 다시 200이에요. 릴스 12개와 공유 5,122는 라이브고, 잘못된 경로 3건은 0원이에요. 측정 2026-09-08.
