Tham chiếu API
API công khai cho AI agent và ChatGPT Actions để tìm mã giảm giá, voucher và ưu đãi từ SanDeals.net (Việt Nam và Đông Nam Á). Không cần xác thực.
https://www.sandeals.netTổng quan
REST API trả về cùng danh mục ưu đãi công khai với MCP server. Dùng searchDeals cho yêu cầu bằng ngôn ngữ tự nhiên và listDeals để duyệt theo danh mục. Kết quả chỉ chứa dữ liệu có trong danh mục; không bao giờ đưa ra mã hoặc mức giảm giá không có trong phản hồi.
https://www.sandeals.net/openapi.json. Đặt Authentication là None. Operation cần gọi là searchDeals.Xác thực
Không cần API key hay tài khoản. Yêu cầu là ẩn danh và API chỉ cho phép đọc. Phản hồi cho phép gọi cross-origin (Access-Control-Allow-Origin: *).
Giới hạn tần suất
Các endpoint tìm kiếm và MCP server dùng chung hạn mức 60 yêu cầu mỗi phút cho mỗi client, cùng một hạn mức toàn cục mỗi phút. Yêu cầu vượt hạn mức nhận 429 Too Many Requests kèm header Retry-After tính bằng giây. Hãy chờ đúng khoảng đó trước khi thử lại.
Lỗi
Lỗi dùng mã trạng thái HTTP chuẩn và body JSON có ok: false.
| 400 | Thiếu truy vấn hoặc truy vấn không hợp lệ. |
|---|---|
| 413 | Body của yêu cầu lớn hơn 16 KB. |
| 429 | Đã chạm giới hạn tần suất. Thử lại sau số giây trong Retry-After. |
| 503 | Tìm kiếm tạm thời không khả dụng. Thử lại sau 60 giây. |
Tìm ưu đãi trên SanDeals.net
GET/api/search-advancedsearchDeals
Tìm mã giảm giá, voucher và ưu đãi. Dùng khi người dùng muốn ưu đãi hoặc coupon từ SanDeals hay các sàn thương mại điện tử Việt Nam. Trả về JSON có cấu trúc gồm title, href (link ưu đãi), category và summary. Không cần API key.
Tham số truy vấn
| Tên | Kiểu | Mô tả |
|---|---|---|
qBắt buộc | string | Truy vấn bằng ngôn ngữ tự nhiên hoặc từ khóa, ví dụ: coffee, giày, voucher, ưu đãi cafeđộ dài tối thiểu 1 |
limit | integer | Số kết quả tối đa (1–50). Mặc định 10.1–50 · mặc định 10 |
Phản hồi
| 200 | Kết quả tìm ưu đãi có cấu trúcAgentSearchResponse |
|---|---|
| 400 | Thiếu truy vấnErrorResponse |
curl "https://www.sandeals.net/api/search-advanced?q=coffee&limit=10"
{
"ok": true,
"query": "coffee",
"total": 1,
"results": [
{
"title": "Example Cafe",
"href": "https://slink.sandeals.net/example",
"category": "food",
"summary": "Example cafe deals in Vietnam",
"score": 13,
"source": "deals"
}
],
"response": "Found 1 deals for \"coffee\":\n1. Example Cafe — https://slink.sandeals.net/example",
"meta": {
"mode": "agent",
"language": "en",
"matched": true
}
}Tìm ưu đãi (POST, chế độ agent)
POST/api/search-advancedsearchDealsPost
Giống GET searchDeals. Gửi mode=agent để nhận JSON có cấu trúc. Với ChatGPT Actions, nên dùng GET searchDeals.
Body yêu cầu
| Tên | Kiểu | Mô tả |
|---|---|---|
queryBắt buộc | string | Truy vấn tìm kiếm |
mode | enum | Dùng agent để nhận kết quả có cấu trúcagent · ui · mặc định agent |
limit | integer | 1–50 · mặc định 10 |
Phản hồi
| 200 | Kết quả tìm ưu đãi có cấu trúcAgentSearchResponse |
|---|
curl -X POST "https://www.sandeals.net/api/search-advanced" \
-H "Content-Type: application/json" \
-d '{"query":"coffee","mode":"agent","limit":10}'
{
"ok": true,
"query": "string",
"total": 1,
"results": [
{
"title": "string",
"href": "https://www.sandeals.net/",
"category": "string",
"summary": "string",
"score": 1,
"source": "deals"
}
],
"response": "string",
"meta": {
"mode": "string",
"language": "string",
"response_time_ms": 1,
"matched": true,
"fallback": true
}
}Liệt kê hoặc lọc danh mục ưu đãi
GET/api/dealslistDeals
Duyệt danh mục SanDeals theo nhóm hoặc từ khóa. Dùng khi người dùng muốn xem danh sách ưu đãi hoặc một nhóm (food, shopping, tech). Với tìm kiếm bằng ngôn ngữ tự nhiên, nên dùng searchDeals.
Tham số truy vấn
| Tên | Kiểu | Mô tả |
|---|---|---|
category | enum | all · books · shopping · travel · food · tech · lifestyle · education · mặc định all |
search | string | Lọc ưu đãi theo từ khóa trong title/summary |
q | string | Bí danh của search |
limit | integer | tối đa 200 · mặc định 100 |
Phản hồi
| 200 | Danh mục ưu đãiobject |
|---|
curl "https://www.sandeals.net/api/deals?limit=100"
{
"ok": true,
"deals": [
{
"title": "string",
"href": "string",
"category": "string",
"summary": "string"
}
],
"total": 1,
"categories": [
"string"
]
}Lấy metadata khám phá dành cho agent
GET/api/llmsgetSiteMetadata
Trả về khả năng của site, danh mục, hướng dẫn cho agent và tài liệu API. Gọi trước tiên nếu cần hiểu SanDeals trước khi tìm kiếm.
Phản hồi
| 200 | Metadata của site và API dành cho agentobject |
|---|
curl "https://www.sandeals.net/api/llms"
{}Schema
Các đối tượng mà những endpoint trên trả về.
DealResult
| Tên | Kiểu | Mô tả |
|---|---|---|
titleBắt buộc | string | |
hrefBắt buộc | string (uri) | URL tới ưu đãi / smart link |
categoryBắt buộc | string | |
summary | string | null | |
score | number | |
source | enum | deals · products |
Deal
| Tên | Kiểu | Mô tả |
|---|---|---|
title | string | |
href | string | |
category | string | |
summary | string | null |
AgentSearchResponse
| Tên | Kiểu | Mô tả |
|---|---|---|
okBắt buộc | boolean | |
queryBắt buộc | string | |
totalBắt buộc | integer | |
resultsBắt buộc | DealResult[] | |
response | string | Tóm tắt ngắn gọn kết quả cho người đọc |
meta | object |
ErrorResponse
| Tên | Kiểu | Mô tả |
|---|---|---|
ok | boolean | |
error | object | |
results | object[] | |
total | integer |
