Trends API v1
Base URL: https://affibuild.com/api/trends/v1 · ส่งคีย์ใน Authorization: Bearer เท่านั้น อย่าใส่คีย์ใน URL หรือโค้ดหน้าเว็บ
| GET endpoint | ผลลัพธ์ |
|---|---|
| /products | items, pagination, meta |
| /products/123 | product, meta (123 คือ id ภายใน Trends) |
| /categories | items, meta |
| /status | meta.freshness และ score_version |
ตัวกรองสินค้า
page (1–2,500), per_page (1–48, เริ่มต้น 24), q, category (slug), sort, min_price, max_price, min_score, min_rating, min_sales, mall_only ค่า sort ใช้ตามลำดับที่ Catalog รองรับ เช่น opportunity
cURL
curl 'https://affibuild.com/api/trends/v1/products?per_page=10' \ -H "Authorization: Bearer $AFFIBUILD_TRENDS_API_KEY"
JavaScript (server-side)
const response = await fetch('https://affibuild.com/api/trends/v1/products?per_page=10', {
headers: { Authorization: 'Bearer ' + process.env.AFFIBUILD_TRENDS_API_KEY }
});
if (!response.ok) throw new Error(await response.text());
const { items, meta } = await response.json();Python
import os, requests
response = requests.get('https://affibuild.com/api/trends/v1/products',
params={'per_page': 10},
headers={'Authorization': 'Bearer ' + os.environ['AFFIBUILD_TRENDS_API_KEY']},
timeout=20)
response.raise_for_status()
data = response.json()n8n
HTTP Request node → GET → ใส่ Base URL/products → Authentication: Header Auth → Name: Authorization → Value: Bearer ตามด้วยคีย์ เก็บคีย์ใน Credentials ไม่ใส่ลงในข้อความ workflow ที่แชร์ ตั้ง Batch Size ให้ไม่เกิน 48 และหน่วงเวลาให้เหมาะกับ rate limit
โควตาและข้อผิดพลาด
นับเฉพาะคำขอสำเร็จและจำนวนแถวสินค้าที่ส่งคืนจริง การเรียกสินค้าซ้ำหักซ้ำ categories/status หักหนึ่งคำขอแต่ไม่หักแถว คำขอที่ล้มเหลวไม่หักโควตา แต่ยังนับใน burst limit ระบบจองจำนวนแถวตาม per_page ก่อนเรียก Catalog: ถ้าโควตาแถวเหลือน้อย ให้ลด per_page
401: คีย์ไม่ถูกต้อง/หมดอายุ/เพิกถอน · 403: รอบ API สิ้นสุด · 404: ไม่พบข้อมูล · 429: โควตาเต็ม/ถี่เกินไป/คำขอพร้อมกันเกิน 2 · 503: บริการไม่พร้อม ให้ตรวจ error code และ requestId รวมถึง Retry-After เมื่อได้ 429 ไม่ควร retry ต่อทันทีเมื่อ QUOTA_EXCEEDED
ความหมายของข้อมูล
product_key ใช้ shopid:itemid ทั้งสองเป็น string เพื่อไม่เสียความแม่นยำ ยอด historical_sales คือยอดสะสม ไม่ใช่ยอดต่อเดือน monthly_sales อาจเป็น null รูปภาพยังเป็น URL ของต้นทาง ลิงก์ product_url ไม่มี Sub ID ของผู้ดูแลระบบ คะแนนเป็นสัญญาณจัดอันดับภายใน ไม่รับประกันผลตอบแทน ค่าคอมมิชชั่นตรวจจากบัญชี Shopee ของคุณ
meta.freshness.is_stale แจ้งข้อมูลที่เก่ากว่าเกณฑ์ API ไม่อ้างว่าเป็นเรียลไทม์ ควรแสดงเวลาข้อมูลให้ผู้ใช้ของคุณเห็น และอย่าใช้ลิงก์เก่าจากระบบ legacy เป็น affiliate link ของลูกค้า