Sàn Cam Product Data API
& bộ API dữ liệu thương mại điện tử

Lấy thông tin sản phẩm Sàn Cam kèm chi tiết hoa hồng (commission), lịch sử giá, flash sale — cùng các API cho Sàn Xanh và Dịch vụ giao đồ ăn (Sàn Cam). Chuẩn hóa đầu vào, cache thông minh, có cơ chế fallback.

Sàn Cam Product Data API trên Unikorn.vn

Miễn phí cho mục đích học tập, nghiên cứu và công cụ nội bộ — không dùng cho mục đích thương mại.

Tính năng chính

Được thiết kế để tích hợp nhanh vào công cụ kiểm tra hoa hồng, dashboard phân tích sản phẩm trending, công cụ chọn sản phẩm cho KOL/KOC và các công cụ nội bộ.

🔗

Chuẩn hóa đầu vào

Nhận item_id hoặc URL sản phẩm — hỗ trợ link đầy đủ, link rút gọn s.shopee.vn, vn.shp.ee.

💰

Chi tiết hoa hồng

Trả về hoa hồng đã xử lý: seller commission, Sàn Cam commission (cap 40.000đ, khai cap nếu tài khoản bạn khác), cờ Xtra, giá và thống kê.

⚡

Cache thông minh

Dữ liệu được cache khoảng 3 giờ để giảm độ trễ và tăng giới hạn request cho nguồn cache.

🛟

Cơ chế fallback

Khi API nguồn gặp lỗi, hệ thống trả về bản cache gần nhất kèm cảnh báo — không làm gãy công cụ của bạn.

Các API có sẵn

Tất cả trả về JSON (UTF-8), bật CORS Access-Control-Allow-Origin: *, gọi được từ trình duyệt lẫn server.

🛒

Sàn Cam Product Data

Thông tin sản phẩm + hoa hồng chi tiết theo item_id hoặc URL.

Trang Sàn Cam →
🧺

Sàn Cam Product Data Batch

Tới 100 sản phẩm trong 1 request — ưu tiên trả từ cache, chỉ sản phẩm chưa có mới gọi nguồn.

Trang Sàn Cam →
🔍

Sàn Cam Market Search

Gõ tên sản phẩm, nhận toàn cảnh thị trường: tổng doanh thu, số shop, mức cạnh tranh, top sản phẩm. Không tiêu quota nguồn.

Trang Sàn Cam →
📈

Price Tracking

Lịch sử giá sản phẩm Sàn Cam theo ngày, tùy chọn số ngày và đơn vị tiền tệ.

Xem tài liệu ↓
📊

Price & Commission History

Lịch sử giá và hoa hồng nhiều sản phẩm/1 request, lọc được chỉ các mốc đổi giá.

Xem tài liệu ↓
🎁

Sàn Cam Offers

Bộ 3 API: ưu đãi/chiến dịch, danh sách sản phẩm có hoa hồng, shop/brand — cache DB 30 phút.

Trang Sàn Cam →
🧧

Sàn Xanh Product Feed

Thông tin sản phẩm Sàn Xanh theo danh sách ID, kèm offer type MM/DM và cache DB.

Trang giới thiệu →
🍜

Dịch vụ giao đồ ăn (Sàn Cam) Store

Thông tin quán/nhà hàng Dịch vụ giao đồ ăn (Sàn Cam) theo restaurant_id, hỗ trợ nhiều ID.

Trang giới thiệu →
🎵

Sàn Đen Shop Affiliate

Hướng dẫn tích hợp RioHub API: tạo link affiliate kèm sub_id, deep link mở app, đơn hàng & hoa hồng.

Xem hướng dẫn →
🔒

Sync API (nội bộ)

Các endpoint nạp dữ liệu (flash sale, giá, offer) yêu cầu chữ ký HMAC-SHA256 — chỉ dành cho hệ thống nội bộ.

🤖 Dành cho AI / LLM

Copy toàn bộ hướng dẫn API dạng text rồi dán vào ChatGPT / Claude / Gemini — AI sẽ hiểu ngay cách tích hợp và viết code giúp bạn.

🛒 Tài liệu Sàn Cam Product Data API và Sàn Cam Offers API đã chuyển sang trang riêng: data.addlivetag.com/shopee/

📈 Price Tracking API

Tra cứu lịch sử giá của sản phẩm Sàn Cam theo ngày.

GET https://data.addlivetag.com/price-tracking/check.php
Tham sốBắt buộcMô tả
item_idBắt buộcID sản phẩm Sàn Cam.
dayTùy chọnSố ngày lịch sử muốn lấy. Mặc định 90.
currencyTùy chọnĐơn vị tiền tệ. Mặc định VND.
GET https://data.addlivetag.com/price-tracking/check.php?item_id=1589295236&day=90

{
  "success": true,
  "data": {
    "item_id": "1589295236",
    "prices": [
      { "date": "2026-04-18", "price": "175000.0000" },
      ...
    ]
  }
}

📊 Price & Commission History API

Đọc lịch sử giá và lịch sử hoa hồng của nhiều sản phẩm trong một request, tuỳ chọn theo từng loại. Khai thác thẳng kho dữ liệu lịch sử đã tích luỹ — không gọi API nguồn lần nào, nên không đụng tới quota Sàn Cam và chịu được tần suất cao.

GETPOST https://data.addlivetag.com/price-tracking/history.php
Độ phân giải của lịch sử là NGÀY (mỗi sản phẩm 1 dòng/ngày). Giá đổi nhiều lần trong cùng một ngày thì chỉ còn lại lần ghi cuối của ngày đó.
Tham sốBắt buộcMô tả
item_idsBắt buộcDanh sách item_id — mảng JSON, item_ids[]=…, hoặc chuỗi ngăn bằng dấu phẩy/xuống dòng. Nhận cả URL sản phẩm. Alias: ids, item_id, urls. Tối đa 50 sản phẩm/request.
typeTùy chọnprice (mặc định) · commission · both. Nhận alias tiếng Việt: gia, hoahong, all.
daysTùy chọnSố ngày gần nhất. Mặc định 90, tối đa 730.
from · toTùy chọnKhoảng ngày cụ thể (YYYY-MM-DD). Có from/to thì bỏ qua days. Đảo ngược thứ tự cũng tự sửa.
changes_onlyTùy chọn1 = chỉ trả những ngày giá (hoặc % hoa hồng) THAY ĐỔI. Đa số sản phẩm đứng giá hàng tuần nên cờ này thường cắt hơn 85% dung lượng mà không mất thông tin — giá giữa hai mốc chính là giá của mốc trước.
base_rate · capTùy chọnTier tài khoản affiliate của bạn. Bắt buộc nếu muốn đọc chuỗi hoa hồng cho đúng — xem cảnh báo bên dưới.
formatTùy chọnchart = trả mảng song song labels[]/data[] thay cho mảng object, cắm thẳng vào Chart.js. Nhẹ hơn ~82%.
no_productTùy chọn1 = bỏ khối product (tên, ảnh, link) cho response gọn hơn.

Ví dụ request

# Lịch sử giá 90 ngày của 1 sản phẩm
GET https://data.addlivetag.com/price-tracking/history.php?item_ids=1589295236&days=90

# Chỉ các mốc ĐỔI GIÁ — nhẹ hơn nhiều
GET https://data.addlivetag.com/price-tracking/history.php?item_ids=1589295236&days=90&changes_only=1

# Lịch sử hoa hồng
GET https://data.addlivetag.com/price-tracking/history.php?item_ids=45703342049&days=60&type=commission

# Cả giá lẫn hoa hồng, nhiều sản phẩm, khoảng ngày cụ thể (POST)
POST https://data.addlivetag.com/price-tracking/history.php
Content-Type: application/json

{"item_ids": [1589295236, 45703342049], "type": "both",
 "from": "2026-07-01", "to": "2026-09-22", "changes_only": 1}

Ví dụ response

{
  "status": "success",
  "type": "both",
  "requested": 2, "returned": 2,
  "range": { "from": "2026-06-25", "to": "2026-09-22", "days": 90 },
  "changesOnly": true,
  "summary": { "withData": 2, "noData": 0, "invalid": 0 },
  "limits": { "maxItems": 50, "maxDays": 730, "maxPoints": 20000,
              "pointsReturned": 27, "truncated": false, "remaining": 598 },
  "items": [
    {
      "input": "1589295236", "itemId": 1589295236, "status": "success",
      "product": { "productName": "...", "productLink": "...", "imageUrl": "...", "rating": "4.80", "sales": 990 },
      "price": {
        "count": 5,
        "points": [
          { "date": "2026-06-25", "price": 175000, "originalPrice": 175000, "discountPercent": 0,
            "currency": "VND", "flashSale": false, "stockAvailable": 0, "changed": false,
            "recordedTime": "2026-08-31 20:15:02" },
          { "date": "2026-06-30", "price": 115100, "changed": true, ... }
        ],
        "stats": { "min": 115100, "max": 250000, "avg": 193785.56, "first": 175000, "last": 175000,
                   "minDate": "2026-06-30", "maxDate": "2026-07-07",
                   "changeCount": 4, "change": 0, "changePercent": 0,
                   "isLowest": false, "isHighest": false, "dayCount": 90 },
        "allTime": { "currentPrice": 175000, "minPrice": 114000, "maxPrice": 250000,
                     "avgPrice": 179279.19, "priceChange7d": 0, "priceChange30d": 0,
                     "lowestPriceDate": null, "highestPriceDate": null,
                     "lastPriceUpdate": "2026-09-22" }
      },
      "commission": {
        "count": 15,
        "points": [
          { "date": "2026-09-20", "sellerRate": 0.02, "shopeeRate": 0.04,
            "sellerRatePercent": 2, "shopeeRatePercent": 4, "totalRatePercent": 6,
            "sellerComFinal": 12234, "shopeeComFinal": 24468, "commission": 36702,
            "isXtra": true, "isCapped": false, "priceSnapshot": 611712, "changed": true }
        ],
        "stats": { "minTotalRatePercent": 2, "maxTotalRatePercent": 10,
                   "firstTotalRatePercent": 5.5, "lastTotalRatePercent": 6,
                   "minCommission": 12234, "maxCommission": 61171, "lastCommission": 36702,
                   "changeCount": 14, "dayCount": 56 }
      }
    }
  ]
}

⚠️ Chuỗi hoa hồng: phải khai base_rate mới đọc đúng

% HH Sàn ghi trong lịch sử là của TÀI KHOẢN đã lấy dữ liệu ngày hôm đó, không phải thuộc tính cố định của sản phẩm. Hệ thống xoay vòng nhiều tài khoản affiliate để chia tải, mỗi tài khoản một tier khác nhau (3,5% / 5% / 8%…) — nên chuỗi có thể nhảy dù sàn chẳng đổi gì.

Đo trên sản phẩm 45703342049, giá đứng yên suốt 56 ngày:

Không khai tierKhai base_rate=8&cap=20000
Số lần "đổi" hoa hồng154
% HH Sàn3,5 → 5,5 → 3 → 0 → 2,5 → 8 → 4 → 2,58 suốt (trừ ngày dữ liệu hỏng)

11 trong 15 lần đổi đó là giả. Khai base_rate (và cap) thì toàn chuỗi được tính lại theo đúng một tier, mỗi điểm vẫn giữ khối recorded chứa số gốc để đối chiếu, và response có normalized: true.

Không khai thì endpoint tự tố cáo thay vì im lặng: có notice ở cấp response, commission.warning ở từng sản phẩm, và stats.sellerRateChangeCount — số lần đổi của % HH seller, thứ không phụ thuộc tier nên đáng tin. So nó với stats.shopeeRateRecordedChangeCount là biết chuỗi nhiễu cỡ nào.

Ngày nào có rate = 0 lẻ loi giữa chuỗi toàn rate > 0 thì điểm đó bị đánh suspect: true. Gần như chắc chắn là dữ liệu hỏng — nhưng endpoint không tự sửa số liệu, chỉ đánh dấu để bạn tự quyết.

📈 format=chart — cắm thẳng vào thư viện biểu đồ

Chart.js và hầu hết thư viện khác nhận labels[] + data[] riêng. Thêm format=chart để nhận sẵn dạng đó thay cho points — cùng một yêu cầu 90 ngày cả hai loại: 47,5 KB xuống 8,7 KB.

"price": {
  "count": 5,
  "chart": {
    "labels":          ["2026-06-25", "2026-06-30", "2026-07-07", "2026-08-04", "2026-08-06"],
    "price":           [175000, 115100, 250000, 180000, 175000],
    "originalPrice":   [175000, 115100, 250000, 180000, 175000],
    "discountPercent": [0, 0, 0, 0, 0]
  },
  "stats": { ... }, "allTime": { ... }
}

// commission.chart: labels, totalRatePercent, sellerRatePercent, shopeeRatePercent,
//                   commission, sellerComFinal, shopeeComFinal
const r = await fetch(url + '&format=chart&base_rate=8').then(r => r.json());
const c = r.items[0].price.chart;
new Chart(ctx, {
  type: 'line',
  data: { labels: c.labels, datasets: [{ label: 'Giá', data: c.price, stepped: true }] }
});

Dùng kèm changes_only=1 thì chuỗi thưa — đặt stepped: true để đường biểu diễn đúng ý nghĩa "giá giữ nguyên tới mốc sau".

Vài điểm cần nhớ

  • stats tính trên toàn bộ ngày trong khoảng hỏi, kể cả khi bật changes_only — bật cờ chỉ làm gọn points, không làm sai thống kê.
  • allTime lấy từ bảng thống kê đã tính sẵn nên là toàn thời gian, rộng hơn khoảng ngày đang hỏi.
  • Với hoa hồng, "thay đổi" tính theo tổng % hoa hồng, không theo số tiền — số tiền phụ thuộc giá nên nhúc nhích gần như mỗi ngày.
  • Giá và priceSnapshot trả về đơn vị VNĐ; số tiền hoa hồng cũng là VNĐ.
  • items giữ đúng thứ tự gửi. Mỗi mục có status: success · no_data (không có lịch sử trong khoảng) · error (đầu vào hỏng).
  • Trần 20.000 điểm mỗi response. Chạm trần thì cắt bớt, đặt limits.truncated = true và kèm warning — không bao giờ cắt âm thầm.
  • Rate limit 600 sản phẩm/phút theo IP (đếm theo số sản phẩm, không theo số request).
Cần giá và hoa hồng hiện tại (không phải lịch sử) cho nhiều sản phẩm? Dùng Product Data Batch API.

Bắt đầu trong 3 bước

1 Lấy item_id hoặc URL sản phẩm
2 Gọi endpoint bằng GET/POST
3 Nhận JSON — tích hợp vào công cụ của bạn