Belgeler
Ctrl+K Arama Alt+[Alt+] Kılavuzlar
API anahtarını al

API

TikTok Shop · Details & Aggregates

Detail endpoints return deep data for a single entity (shop, product, creator, video) by id. WinningHunter mostly proxies the upstream TikTok Shop v2 API and may add small fields (for example başarı, is_favorite, WinningHunter deep links).

Examples below are trimmed from live responses (extra upstream keys may appear). Metric envelopes are usually { "data": {…}, "meta": {…} } — not always wrapped in başarı.

Use an keşfet route first to find an id if you only have a name.

Shop details

YAYIN/api/v1/tiktok-shop/shop-detail

Core profile for a single shop (upstream shop object + is_favorite).

Send X-API-Anahtarı on every request.

Body parameters

  • iddizerequired

    Shop id.

  • ülkedize

    Market the shop sells in.

Talep
curl -sS \
  -X POST \
  -H "X-API-Key: $WH_API_KEY" \
  -H "Content-Type: application/json" \
  "{origin}/api/v1/tiktok-shop/shop-detail" \
  -d '{"id":"7495514739648989419","country":"US"}'
const res = await fetch(`${ORIGIN}/api/v1/tiktok-shop/shop-detail`, {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "id": "7495514739648989419",
      "country": "US"
  }),
});
const data = await res.json();
import os, requests

res = requests.post(
    f"{ORIGIN}/api/v1/tiktok-shop/shop-detail",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
    json={
        "id": "7495514739648989419",
        "country": "US"
    },
)
data = res.json()
Yanıt
{
    "success": true,
    "data": {
        "id": "7495514739648989419",
        "shop_id": "7495514739648989419",
        "shop_name": "medicube US Store",
        "name": "medicube US Store",
        "handle": "medicubeusstore",
        "shop_image": "https://media.winninghunter.com/tiktok-shop/shops/7495514739648989419.png",
        "seller_type": "BRAND",
        "product_count": 128,
        "video_count": 2298,
        "creator_count": 1235,
        "revenue": {
            "yesterday": 614739.8,
            "7d": 4475897.55,
            "30d": 19625456.71,
            "90d": 63143369.2,
            "lifetime": 276222723.33,
            "current": 19625456.71
        },
        "sales": {
            "sold_count_30_days": 703153,
            "sold_count_lifetime": 7320313,
            "unit_price": 27.91
        },
        "revenue_30_days": 19625456.71,
        "sold_count_30_days": 703153
    },
    "meta": {
        "total": 0,
        "page": 1,
        "limit": 20,
        "period": "30d"
    },
    "is_favorite": false
}
{
    "success": false,
    "error": "Unauthorized"
}
{
    "success": false,
    "error": "No API credits remaining. Buy an add-on pack or wait until next monthly reset.",
    "credits": {
        "used": 20000,
        "limit": 20000,
        "remaining": 0,
        "addon_remaining": 0,
        "total_remaining": 0
    },
    "purchase": {
        "url": "https://…/checkout-api-credits?credits=…"
    }
}

is_favorite is added at the top level. Additional upstream shop keys may appear.

YAYIN/api/v1/tiktok-shop/shop-detail/total

Shop metrics for a period (upstream passthrough).

Send X-API-Anahtarı on every request.

Body parameters

  • iddizerequired
  • dönemtamsayı

    Days: 1, 7, 30, or 90.

Talep
curl -sS \
  -X POST \
  -H "X-API-Key: $WH_API_KEY" \
  -H "Content-Type: application/json" \
  "{origin}/api/v1/tiktok-shop/shop-detail/total" \
  -d '{"id":"7495514739648989419","period":30}'
const res = await fetch(`${ORIGIN}/api/v1/tiktok-shop/shop-detail/total`, {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "id": "7495514739648989419",
      "period": 30
  }),
});
const data = await res.json();
import os, requests

res = requests.post(
    f"{ORIGIN}/api/v1/tiktok-shop/shop-detail/total",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
    json={
        "id": "7495514739648989419",
        "period": 30
    },
)
data = res.json()
Yanıt
{
    "success": true,
    "data": {
        "revenue": {
            "1d": 614739.8,
            "7d": 4475897.55,
            "30d": 19625456.71,
            "90d": 63143369.2,
            "180d": 110615459.59,
            "lifetime": 276222723.33,
            "growth_rate": -12.46
        },
        "sales": {
            "sold_count": 703153,
            "sold_count_lifetime": 7320313,
            "unit_price": 27.91
        },
        "counts": {
            "creators": 1235,
            "videos": 2298,
            "products": 128,
            "shops": 0
        },
        "affiliate_percentage": 0,
        "self_promotion_percentage": 0,
        "original_revenue": 19625456.71
    },
    "meta": {
        "total": 0,
        "page": 1,
        "limit": 20,
        "period": "30d"
    }
}
{
    "success": false,
    "error": "Unauthorized"
}
YAYIN/api/v1/tiktok-shop/shop-detail/product/queryList

Products sold by a shop.

Send X-API-Anahtarı on every request.

Body parameters

  • iddizerequired
  • pageNotamsayı
  • pageSizetamsayı
  • dönemtamsayı
  • sıralamaarray

    Upstream sort array, e.g. [{ "field": "revenue", "type": "DESC" }].

Talep
curl -sS \
  -X POST \
  -H "X-API-Key: $WH_API_KEY" \
  -H "Content-Type: application/json" \
  "{origin}/api/v1/tiktok-shop/shop-detail/product/queryList" \
  -d '{"id":"7495514739648989419","pageNo":1,"pageSize":20,"period":30,"sort":[]}'
const res = await fetch(`${ORIGIN}/api/v1/tiktok-shop/shop-detail/product/queryList`, {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "id": "7495514739648989419",
      "pageNo": 1,
      "pageSize": 20,
      "period": 30,
      "sort": []
  }),
});
const data = await res.json();
import os, requests

res = requests.post(
    f"{ORIGIN}/api/v1/tiktok-shop/shop-detail/product/queryList",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
    json={
        "id": "7495514739648989419",
        "pageNo": 1,
        "pageSize": 20,
        "period": 30,
        "sort": []
    },
)
data = res.json()
Yanıt
{
    "success": true,
    "data": [
        {
            "id": "1729508370969629931",
            "product_id": "1729508370969629931",
            "product_title": "[medicube] PDRN Pink Collagen Volume Multi Balm …",
            "product_image": "https://p16-oec-general-useast5.ttcdn-us.com/…",
            "price": 36,
            "unit_price": 36,
            "revenue": 1907335.86,
            "revenue_30_days": 1907335.86,
            "sold_count": 101159,
            "sold_count_30_days": 101159,
            "rating": 4.2
        }
    ],
    "meta": {
        "total": 129,
        "page": 1,
        "limit": 20,
        "period": "30d"
    }
}
{
    "success": false,
    "error": "Unauthorized"
}

Prefer dashboard Network-tab field names (pageNo / pageSize / sort[0].field) over invented sayfa / sınır aliases. Live payloads may also echo sayfa / total at the top level depending on upstream.

Product details

Product detail returns { data, meta } (no top-level başarı). Identify the product with data.id (not product_id).

AL/api/v1/tiktok-shop/product-detail/{id}

Full profile of a single product (upstream passthrough + WH URLs).

Send X-API-Anahtarı on every request.

Path parameters

  • iddizerequired
Talep
curl -sS \
  -H "X-API-Key: $WH_API_KEY" \
  "{origin}/api/v1/tiktok-shop/product-detail/1729448464509734958"
const res = await fetch(`${ORIGIN}/api/v1/tiktok-shop/product-detail/1729448464509734958`, {
  method: 'GET',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
  },
});
const data = await res.json();
import os, requests

res = requests.get(
    f"{ORIGIN}/api/v1/tiktok-shop/product-detail/1729448464509734958",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
)
data = res.json()
Yanıt
{
    "data": {
        "id": "1729448464509734958",
        "product_title": "Toplux Magnesium Complex 8 Essential Magnesium Supplement",
        "product_image": "https://media.winninghunter.com/tiktok-shop/products/1729448464509734958_0.webp",
        "unit_price": "$14.97",
        "revenue": "$2.57m",
        "revenue_lifetime": 29785853.91,
        "sold_count": "161803",
        "sold_count_lifetime": 1989703,
        "creator_num": 16,
        "ctr": "4.1%",
        "product_score": "4.5",
        "product_review_cnt": "153825",
        "avg_unit_price": 14.97,
        "launch_date": "2026-02-26",
        "winninghunter_product_url": "https://app.winninghunter.com/tiktok-shop/product/1729448464509734958?period=30",
        "tiktok_shop_product_url": "https://app.winninghunter.com/tiktok-shop/product/1729448464509734958?period=30"
    },
    "meta": {
        "limit": 20,
        "page": 1,
        "period": "30d",
        "total": 0
    }
}
{
    "success": false,
    "error": "Unauthorized"
}
YAYIN/api/v1/tiktok-shop/product-detail/total

Product metrics (upstream passthrough).

Send X-API-Anahtarı on every request.

Body parameters

  • iddizerequired
  • dönemtamsayı
Talep
curl -sS \
  -X POST \
  -H "X-API-Key: $WH_API_KEY" \
  -H "Content-Type: application/json" \
  "{origin}/api/v1/tiktok-shop/product-detail/total" \
  -d '{"id":"1729448464509734958","period":30}'
const res = await fetch(`${ORIGIN}/api/v1/tiktok-shop/product-detail/total`, {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "id": "1729448464509734958",
      "period": 30
  }),
});
const data = await res.json();
import os, requests

res = requests.post(
    f"{ORIGIN}/api/v1/tiktok-shop/product-detail/total",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
    json={
        "id": "1729448464509734958",
        "period": 30
    },
)
data = res.json()
Yanıt
{
    "data": {
        "revenue": {
            "1d": 77409.87,
            "7d": 576410.87,
            "30d": 2574394.91,
            "90d": 8383451.39,
            "lifetime": 29785853.91,
            "growth_rate": -6.26
        },
        "sales": {
            "sold_count": 161803,
            "sold_count_lifetime": 1989703,
            "unit_price": 14.97
        },
        "counts": {
            "creators": 16,
            "videos": 24,
            "products": 0,
            "shops": 0
        },
        "product_score": "4.5",
        "product_review_count": 153825,
        "avg_unit_price": 14.97,
        "ctr": "4.1%"
    },
    "meta": {
        "total": 0,
        "page": 1,
        "limit": 20,
        "period": "30d"
    }
}
{
    "success": false,
    "error": "Unauthorized"
}
YAYIN/api/v1/tiktok-shop/product-detail/history

Product time series (upstream passthrough).

Send X-API-Anahtarı on every request.

Body parameters

  • iddizerequired
  • dönemtamsayı
Talep
curl -sS \
  -X POST \
  -H "X-API-Key: $WH_API_KEY" \
  -H "Content-Type: application/json" \
  "{origin}/api/v1/tiktok-shop/product-detail/history" \
  -d '{"id":"1729448464509734958","period":30}'
const res = await fetch(`${ORIGIN}/api/v1/tiktok-shop/product-detail/history`, {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "id": "1729448464509734958",
      "period": 30
  }),
});
const data = await res.json();
import os, requests

res = requests.post(
    f"{ORIGIN}/api/v1/tiktok-shop/product-detail/history",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
    json={
        "id": "1729448464509734958",
        "period": 30
    },
)
data = res.json()
Yanıt
{
    "data": [
        {
            "product_id": "1729448464509734958",
            "recorded_at": "2026-08-26T00:02:27.264Z",
            "sold_count": "1989703",
            "sold_today": 4843,
            "avg_unit_price": 14.97,
            "daily_revenue": 72499.71,
            "revenue_lifetime": 29785853.91,
            "creator_count": 16,
            "video_count": 24,
            "country": "US"
        }
    ],
    "meta": {
        "total": 30,
        "page": 1,
        "limit": 20,
        "period": "30d"
    }
}
{
    "success": false,
    "error": "Unauthorized"
}

History is an array of daily rows (daily_revenue, sold_today, …). meta.total is the number of days returned for the period.

Creator details

YAYIN/api/v1/tiktok-shop/creator-detail/total

Creator metrics (upstream passthrough).

Send X-API-Anahtarı on every request.

Body parameters

  • iddizerequired
  • dönemtamsayı
Talep
curl -sS \
  -X POST \
  -H "X-API-Key: $WH_API_KEY" \
  -H "Content-Type: application/json" \
  "{origin}/api/v1/tiktok-shop/creator-detail/total" \
  -d '{"id":"6737412251941389318","period":30}'
const res = await fetch(`${ORIGIN}/api/v1/tiktok-shop/creator-detail/total`, {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "id": "6737412251941389318",
      "period": 30
  }),
});
const data = await res.json();
import os, requests

res = requests.post(
    f"{ORIGIN}/api/v1/tiktok-shop/creator-detail/total",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
    json={
        "id": "6737412251941389318",
        "period": 30
    },
)
data = res.json()
Yanıt
{
    "data": {
        "revenue": {
            "1d": 55950.99,
            "7d": 198025.52,
            "30d": 890752.76,
            "90d": 1563030.47,
            "lifetime": 37604852.16,
            "growth_rate": -29.77
        },
        "engagement": {
            "views": 62142676,
            "likes": 0,
            "shares": 0,
            "comments": 0
        },
        "follower_count": {
            "7d": 454,
            "30d": 2321,
            "total": 73148
        },
        "views": {
            "1d": 691015,
            "7d": 6936052,
            "30d": 62142676
        },
        "sales": {
            "sold_count": 0,
            "sold_count_lifetime": 0,
            "unit_price": 0
        }
    },
    "meta": {
        "total": 0,
        "page": 1,
        "limit": 20,
        "period": "30d"
    }
}
{
    "success": false,
    "error": "Unauthorized"
}
YAYIN/api/v1/tiktok-shop/creator-detail/searchProducts

Products promoted by a creator.

Send X-API-Anahtarı on every request.

Body parameters

  • iddizerequired
  • sayfatamsayı
  • sınırtamsayı
  • dönemtamsayı
Talep
curl -sS \
  -X POST \
  -H "X-API-Key: $WH_API_KEY" \
  -H "Content-Type: application/json" \
  "{origin}/api/v1/tiktok-shop/creator-detail/searchProducts" \
  -d '{"id":"6737412251941389318","page":1,"limit":20,"period":30}'
const res = await fetch(`${ORIGIN}/api/v1/tiktok-shop/creator-detail/searchProducts`, {
  method: 'POST',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
      "id": "6737412251941389318",
      "page": 1,
      "limit": 20,
      "period": 30
  }),
});
const data = await res.json();
import os, requests

res = requests.post(
    f"{ORIGIN}/api/v1/tiktok-shop/creator-detail/searchProducts",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
    json={
        "id": "6737412251941389318",
        "page": 1,
        "limit": 20,
        "period": 30
    },
)
data = res.json()
Yanıt
{
    "data": [
        {
            "id": "1732017379984117841",
            "product_title": "Mellow Sleep | MarshMellow Comforter …",
            "product_image": "https://media.winninghunter.com/tiktok-shop/products/1732017379984117841_0.webp",
            "unit_price": "$99.99",
            "revenue": "$349.54k",
            "revenue_lifetime": 13901409.72,
            "sold_count_lifetime": 139028,
            "creator_num": 14,
            "creator_name": "Hannah Bentley",
            "creator_follower_count": 73148
        }
    ],
    "meta": {
        "total": 131,
        "page": 1,
        "limit": 20,
        "period": "30d"
    }
}
{
    "success": false,
    "error": "Unauthorized"
}

Video metrics

AL/api/v1/tiktok-shop/videos/{id}/metrics

Video metrics (upstream passthrough).

Send X-API-Anahtarı on every request.

Path parameters

  • iddizerequired
Talep
curl -sS \
  -H "X-API-Key: $WH_API_KEY" \
  "{origin}/api/v1/tiktok-shop/videos/7573080707619130655/metrics"
const res = await fetch(`${ORIGIN}/api/v1/tiktok-shop/videos/7573080707619130655/metrics`, {
  method: 'GET',
  headers: {
    'X-API-Key': process.env.WH_API_KEY,
  },
});
const data = await res.json();
import os, requests

res = requests.get(
    f"{ORIGIN}/api/v1/tiktok-shop/videos/7573080707619130655/metrics",
    headers={"X-API-Key": os.environ["WH_API_KEY"]},
)
data = res.json()
Yanıt
{
    "data": {
        "revenue": {
            "1d": 0,
            "7d": 44248.99,
            "30d": 247065.08,
            "90d": 420602.79,
            "lifetime": 25372935.8,
            "growth_rate": -12.3
        },
        "engagement": {
            "views": 2538711,
            "likes": 10484,
            "shares": 595,
            "comments": 39
        },
        "sales": {
            "sold_count": 0,
            "sold_count_lifetime": 0,
            "unit_price": 0
        }
    },
    "meta": {
        "total": 0,
        "page": 1,
        "limit": 20,
        "period": "30d"
    }
}
{
    "success": false,
    "error": "Unauthorized"
}

See also