Xác thực¶
Mọi request cần hai header — giống nhau ở mọi nền tảng. Không có OAuth, không có token phải làm mới, không có chữ ký HMAC.
Đây là điểm khác biệt lớn nhất khi bạn dùng nhiều nền tảng
Gọi thẳng, mỗi nền tảng một cơ chế: TikTok Ads gắn header, TikTok Shop và Shopee ký HMAC-SHA256 từng request, Shopee và Google Ads còn phải làm mới token trước khi hết hạn. Qua Logidata, mọi nền tảng dùng đúng hai header dưới đây. Xem chi tiết từng nền tảng.
| Header | Bắt buộc | Giá trị |
|---|---|---|
X-API-Key |
luôn luôn | Key của bạn, dạng ld_live_… |
X-Account-Id |
khi key có nhiều kết nối | Định danh kết nối, dạng ldc_… |
curl -H "X-API-Key: ld_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "X-Account-Id: ldc_9fK2xQ7mNp3RtY8wZa1B" \
"https://api.logidata.vn/v1/tiktok-ads/v1.3/advertiser/info/?advertiser_ids=[\"7001\"]"
X-API-Key¶
Cấp trong portal, tại API key. Logidata chỉ lưu SHA-256 của key, nên:
- Key thật hiện đúng một lần lúc tạo. Không có đường xem lại.
- Mất key thì dùng Đổi key — cấp key mới, key cũ chết ngay lập tức.
- Nghi key bị lộ thì Thu hồi. Hiệu lực tức thì, không có độ trễ.
Đừng để key trong code phía trình duyệt
Key này gọi được toàn bộ dữ liệu quảng cáo của bạn. Chỉ dùng ở phía server: biến môi trường, secret manager, hoặc credential store của n8n. Đừng commit vào git, đừng nhúng vào frontend hay app di động.
Bạn có thể tạo nhiều key — mỗi hệ thống một key (n8n production, notebook
phân tích) để thu hồi riêng khi cần, mà không làm gãy các hệ thống còn lại.
X-Account-Id¶
Định danh của một kết nối, do portal sinh khi bạn cấp quyền. Hiện ở trang Kết nối. Tên header cố ý trung lập vì nó phục vụ mọi loại tài khoản:
| Nền tảng | 1 kết nối = |
|---|---|
tiktok-ads |
1 Business Center |
tiktok-shop |
1 shop |
shopee, shopee-ads, shopee-affiliate |
1 shop trên từng nền tảng |
google-ads |
1 tài khoản quảng cáo |
Shopee: mỗi app là một kết nối riêng
shopee, shopee-ads và shopee-affiliate là ba partner app khác nhau
của Shopee, cấp quyền riêng, và mỗi lượt cấp quyền tạo một kết nối
riêng trong hạn mức gói — cùng một shop dùng cả ba tính 3 kết nối,
không phải 1. X-Account-Id của ba kết nối này giống nhau về giá trị
(cùng shop_id) nhưng vẫn là ba kết nối tách biệt.
- Key chỉ có một kết nối → được phép bỏ qua header này.
- Key có nhiều kết nối → bắt buộc, nếu thiếu sẽ nhận
400 missing_account_id. - Gửi
X-Account-Idkhông thuộc key của bạn →403 account_not_allowed.
Giá trị này ổn định qua các lần cấp lại quyền
Khi token bị thu hồi phía nền tảng, bạn bấm Cấp lại quyền trên kết nối đó.
X-Account-Id không đổi — code đang chạy của bạn không phải sửa gì.
Giới hạn theo IP (tuỳ chọn)¶
Nếu hệ thống của bạn gọi từ một dải IP cố định, báo Logidata để bật allowlist IP
cho key. Request từ IP ngoài danh sách nhận 403 ip_not_allowed.
Kiểm tra key đang có quyền gì¶
{
"key_id": "ld_live_ab12cd34",
"customer_id": "acme",
"plan": "trial",
"providers": ["tiktok-ads"],
"accounts": [{"provider": "tiktok-ads", "account_id": "ldc_9fK2xQ..."}],
"connections": 1,
"rate_limit_rps": 2,
"monthly_quota": 2000,
"quota_used": 153,
"overage_mode": "block"
}
Endpoint này không tính vào hạn mức tháng — dùng thoải mái để kiểm tra cấu hình.
providers là danh sách nền tảng gói của bạn được phép gọi, accounts là các
kết nối kèm nền tảng tương ứng. Gọi một nền tảng không có trong providers →
403 provider_not_in_plan.