Dành cho nhà phát triển
Tài liệu tham khảo API
Tích hợp khả năng tối ưu AI cho ba nền tảng của DEXUN AdWhiz vào công cụ, script hoặc backend của bạn qua REST.
Base URL
Mọi yêu cầu API đều gửi đến địa chỉ gốc này:
https://www.7275.com/api/v1Bắt buộc dùng HTTPS. Yêu cầu HTTP sẽ bị từ chối (không chuyển hướng).
Xác thực
Mọi yêu cầu cần Bearer token trong header Authorization. Tạo token tại bảng điều khiển → Cài đặt → API Keys. Key có hai loại live và test, mỗi loại chỉ truy cập được môi trường của riêng nó.
curl https://www.7275.com/api/v1/accounts \
-H "Authorization: Bearer dxk_live_...your-key..."- Định dạng key live: bắt đầu bằng dxk_live_, 64 ký tự
- Định dạng key test: bắt đầu bằng dxk_test_, chỉ dùng cho tài khoản sandbox
- Không bao giờ dùng key trong mã front-end — hãy đi qua backend của bạn làm proxy
- Nếu key bị lộ, hãy thu hồi và tạo lại ngay trên bảng điều khiển
Dùng trực tiếp từ Claude Desktop / Cursor (máy chủ MCP)
Chúng tôi cung cấp máy chủ Model Context Protocol không phụ thuộc thư viện nào, để các ứng dụng MCP như Claude Desktop và Cursor đọc trực tiếp trạng thái AdWhiz của bạn. Không cần viết code — sao chép khối cấu hình, dán API key và khởi động lại ứng dụng.
- Năm công cụ chỉ đọc: liệt kê tài khoản quảng cáo, xem đề xuất của AI, xem khoản tiết kiệm tháng này, xem hoạt động gần đây, kiểm tra hạn mức API
- Các công cụ ghi (apply / pause) cố ý chưa được mở — chờ bộ tối ưu thoát shadow mode và có đủ bằng chứng hiệu chỉnh để kiểm soát chúng
- Một script Node 18+ duy nhất. Không cần npm install. Chạy tốt trên máy offline / cách ly mạng (airgapped)
- API key không bao giờ rời khỏi máy của bạn. Mọi yêu cầu đi thẳng qua HTTPS đến www.7275.com
Thêm đoạn này vào claude_desktop_config.json của Claude Desktop (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\):
{
"mcpServers": {
"adwhiz": {
"command": "node",
"args": ["/path/to/mcp-server/src/index.mjs"],
"env": {
"ADWHIZ_API_KEY": "dxk_live_..."
}
}
}
}Hướng dẫn cài đặt đầy đủ, cấu hình Cursor và khắc phục sự cố trên GitHub: github.com/dexun-inc/adwhiz/mcp-server.
Endpoint
API v1 cung cấp 13 endpoint cốt lõi, bao gồm định danh, đọc tài khoản, tạo đề xuất (áp dụng chưa khả dụng), nhật ký kiểm tra, quản lý API key, tra cứu hạn mức và nguồn changelog.
| Phương thức | Đường dẫn | Mô tả |
|---|---|---|
| GET | /me | Trả về chủ sở hữu token đang gọi + hạn mức rate limit còn lại (whoami) |
| GET | /accounts | Liệt kê mọi tài khoản quảng cáo mà người dùng hiện tại đã kết nối (trên cả ba nền tảng) |
| GET | /accounts/{id}/campaigns | Liệt kê chiến dịch, nhóm quảng cáo, từ khóa và chỉ số 7/30 ngày của một tài khoản |
| POST | /recommendations/generate | Yêu cầu AI tạo một loạt đề xuất tối ưu mới |
| GET | /recommendations | Liệt kê mọi đề xuất đang chờ / đã áp dụng / đã bỏ qua |
| POST | /recommendations/{id}/apply | Áp dụng một đề xuất — chưa khả dụng: trả về 501 not_supported và không thay đổi gì |
| POST | /recommendations/{id}/dismiss | Bỏ qua một đề xuất — chưa khả dụng: trả về 501 not_supported và không thay đổi gì |
| POST | /changes/{id}/rollback | Hoàn tác một thay đổi đã áp dụng — chưa khả dụng: trả về 501 not_supported và không thay đổi gì |
| GET | /audit-log | (Đã ngừng khuyến nghị, dừng hoạt động ngày 2027-05-23) Nhật ký kiểm tra đầy đủ. Hãy dùng /audit-events thay thế — dựa trên bảng audit_events thật, hỗ trợ lọc ?kind |
| GET | /audit-events | Luồng sự kiện kiểm tra bảo mật (đăng nhập / mật khẩu / OAuth / gói đăng ký), hỗ trợ lọc ?since + ?kind |
| GET | /api-keys | Liệt kê API key của bên gọi (gồm lastUsedAt + active); không bao giờ trả về hashedKey |
| GET | /usage | Đọc tier hiện tại, giới hạn RPM, phần còn lại và reset_at mà không cần yêu cầu thăm dò |
| GET | /changelog | Nguồn JSON changelog sản phẩm (công khai, không cần xác thực) với ETag + ?lang + ?limit (1..50) + ?since=YYYY-MM-DD — dạng chuẩn để truy vấn tăng dần |
Ví dụ yêu cầu
Tạo đề xuất tối ưu mới cho cả ba nền tảng:
curl -X POST https://www.7275.com/api/v1/recommendations/generate \
-H "Authorization: Bearer dxk_live_..." \
-H "Content-Type: application/json" \
-d '{
"account_id": "ga-548-203-7184",
"platforms": ["google_ads", "meta_ads", "tiktok_ads"],
"window": "7d"
}'Ví dụ phản hồi:
{
"summary": "Pausing 3 high-CPA keywords and reallocating budget...",
"recommendations": [
{
"id": "rec_001",
"type": "pause_keyword",
"target": { "accountId": "ga-548-203-7184", "keywordText": "wool socks" },
"title": "Pause broad-match 'wool socks'",
"reason": "7-day CPA $45.82 vs target $8",
"expectedImpact": "Save ~$412/week",
"confidence": "high"
}
]
}Truy vấn tăng dần /changelog
/api/v1/changelog là endpoint công khai (không cần API key) với bốn cách tiết kiệm băng thông: ETag + If-None-Match, Last-Modified + If-Modified-Since (curl -z), ?since=YYYY-MM-DD để lọc theo ngày và ?limit=N để giới hạn kích thước. SDK và script cron có thể kết hợp chúng để truy vấn thường xuyên mà không tải lại cùng một JSON.
# 1. First call — store the ETag (or Last-Modified) you get back.
curl -i 'https://www.7275.com/api/v1/changelog?limit=10'
# 2. Subsequent calls — pass the stored ETag.
# Server returns 304 with empty body if nothing has shipped.
curl -i 'https://www.7275.com/api/v1/changelog?limit=10' \
-H 'If-None-Match: "abc123..."'
# 3. Or anchor on a date instead of an ETag.
# Only entries whose `date >= since` come back; pair with ?limit
# to cap the response size.
curl 'https://www.7275.com/api/v1/changelog?since=2026-01-01&limit=20'
# 4. curl -z for Last-Modified-style conditional GET (no ETag needed):
curl -z 'Mon, 20 May 2026 00:00:00 GMT' \
'https://www.7275.com/api/v1/changelog'Giới hạn tần suất
Phân cấp theo gói đăng ký để tránh gây quá tải hạn mức API upstream của Google / Meta / TikTok:
- Professional: 120 yêu cầu/phút
- Business: 600 yêu cầu/phút
- Enterprise: tùy chỉnh (thường là 3.000 yêu cầu/phút)
- Vượt giới hạn sẽ trả về 429 + header retry-after — nên dùng exponential backoff
Mã lỗi
Mọi lỗi đều trả về JSON gồm error.code, error.message và error.request_id:
| Trạng thái HTTP | Ý nghĩa |
|---|---|
401 | Thiếu API key hoặc API key không hợp lệ |
403 | Tài khoản không có quyền với tài nguyên này (thiếu OAuth scope) |
404 | Không tìm thấy tài nguyên hoặc tài nguyên đã bị xóa |
422 | Tham số yêu cầu không hợp lệ |
429 | Vượt giới hạn tần suất — chờ theo header retry-after |
500 | Lỗi máy chủ — đã tự động báo cáo |
503 | API của nền tảng upstream tạm thời không khả dụng (Google / Meta / TikTok) |