Bắt đầu từ đâu?
- 1Đăng ký bằng tên đăng nhập và đăng nhập vào bảng điều khiển.
- 2Tạo khóa API ở tab Kết nối. Khóa đầy đủ chỉ hiện một lần, lúc bạn tạo, nên hãy cất ở nơi an toàn ngay.
- 3Gửi khóa trong header Authorization với mọi yêu cầu cần đến nó.
- 4Gọi /account trước để kiểm tra khóa hoạt động, sau đó đặt hàng bằng /orders.
Xác thực
Các yêu cầu về tài khoản của bạn (account, orders, proxy-user) cần khóa API, gửi trong header dạng Authorization: Bearer spk_... Giá, quốc gia và báo giá là công khai và dùng được không cần khóa.
StarProxy chỉ lưu hash của mỗi khóa, không lưu khóa. Nếu mất khóa, hãy tạo khóa mới trong bảng điều khiển. Khóa cũ ngừng hoạt động ngay lúc đó. Chỉ để khóa trong code phía máy chủ. Không bao giờ đặt khóa trong code chạy trên trình duyệt hoặc trong repository công khai.
Authorization: Bearer spk_your_api_key
Base URL và định dạng dữ liệu
- Base URL
- https://starproxy.shop/api/v1
- Nội dung yêu cầu và phản hồi
- application/json
- Số tiền
- USD dạng số, ví dụ 1047.70
- Thời gian
- ISO 8601 (UTC)
Có giới hạn tần suất gọi không?
Một khóa API được gọi tối đa 60 lần mỗi phút. Endpoint công khai không cần khóa cho phép 60 lần mỗi phút cho mỗi IP. Vượt giới hạn sẽ nhận HTTP 429, hãy chờ một phút rồi gửi lại.
Lỗi trông như thế nào?
Một mã trạng thái HTTP, kèm nội dung JSON gồm mã lỗi ngắn và thông báo.
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low for this order. Top up in the dashboard."
}
}| HTTP | code | Ý nghĩa |
|---|---|---|
| bad_requestHTTP 400Thiếu một giá trị bắt buộc, hoặc giá trị không hợp lệ với sản phẩm này. | Thiếu một giá trị bắt buộc, hoặc giá trị không hợp lệ với sản phẩm này. | |
| unauthorizedHTTP 401Thiếu khóa API hoặc khóa không khớp. | Thiếu khóa API hoặc khóa không khớp. | |
| insufficient_balanceHTTP 402Số dư thấp hơn tổng đơn hàng. Không có khoản nào bị trừ. | Số dư thấp hơn tổng đơn hàng. Không có khoản nào bị trừ. | |
| not_foundHTTP 404Tài khoản của bạn không có đơn hàng với id này. | Tài khoản của bạn không có đơn hàng với id này. | |
| rate_limitedHTTP 429Quá nhiều yêu cầu trong một phút. | Quá nhiều yêu cầu trong một phút. | |
| server_errorHTTP 500Máy chủ không hoàn tất được yêu cầu. Không có khoản nào bị trừ. | Máy chủ không hoàn tất được yêu cầu. Không có khoản nào bị trừ. |
Endpoint
Lấy thông tin tài khoản
GET/api/v1/accountCần khóa API
Trả về số dư, host và cổng proxy, tên người dùng và mật khẩu proxy, và các IP được cho phép.
curl https://starproxy.shop/api/v1/account \ -H "Authorization: Bearer spk_your_api_key"
{
"username": "star_user01",
"balance_usd": 1300,
"proxy": {
"host": "gate.starproxy.shop",
"http_port": 6100,
"socks5_port": 6200,
"username": "spexample1",
"password": "your_password"
},
"allowed_ips": [
"203.0.113.10"
]
}Lấy sản phẩm và giá
GET/api/v1/productsKhông cần khóa
Trả về phạm vi đặt hàng, giá theo từng mức số lượng và giảm giá theo thời hạn của mỗi sản phẩm, từ cùng bảng giá với trang bảng giá.
curl https://starproxy.shop/api/v1/products
{
"currency": "USD",
"prices_as_of": "2026-10-31",
"products": [
{
"id": "unlimited",
"unit": "day",
"quantity": {
"meaning": "days",
"min": 1,
"max": 365
},
"...": "..."
},
{
"id": "residential",
"unit": "gb",
"...": "..."
}
]
}Danh sách quốc gia và thành phố
GET/api/v1/countriesKhông cần khóa
Trả về các quốc gia mỗi sản phẩm hỗ trợ, kèm giá trị thành phố cho tùy chọn -city- của tên người dùng.
| Trường | Kiểu | Ý nghĩa |
|---|---|---|
productKhông bắt buộc | string | Một trong unlimited, residential, isp, datacenter. Mặc định là residential. |
curl "https://starproxy.shop/api/v1/countries?product=datacenter"
{
"product": "datacenter",
"countries": [
{
"code": "us",
"name": "United States",
"region": "americas",
"datacenter": true,
"cities": [
{
"name": "New York",
"value": "new_york"
},
{
"name": "Los Angeles",
"value": "los_angeles"
}
]
}
]
}Lấy báo giá
POST/api/v1/quoteKhông cần khóa
Tính tổng đơn hàng và không đụng đến số dư. Gửi đúng nội dung bạn sẽ dùng khi đặt hàng.
| Trường | Kiểu | Ý nghĩa |
|---|---|---|
productBắt buộc | string | Một trong unlimited, residential, isp, datacenter. |
quantityBắt buộc | integer | Số ngày cho unlimited (1~365), GB cho residential (5~5,000), số IP cho isp (1~1,000) hoặc datacenter (5~5,000). |
concurrencyKhông bắt buộc | integer | Chỉ cho unlimited. Một trong 200, 500, 1000, 2000. |
bandwidthKhông bắt buộc | integer | Chỉ cho unlimited, tính bằng Mbps. Một trong 100, 200, 500, 1000. |
monthsKhông bắt buộc | integer | Chỉ cho isp và datacenter. Một trong 1, 3, 6, 12. |
countryKhông bắt buộc | string | Chỉ cho isp và datacenter. Mã quốc gia hai chữ cái, ví dụ jp. Xem /countries để biết giá trị hợp lệ. |
curl -X POST https://starproxy.shop/api/v1/quote \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"product": "unlimited",
"quantity": 30,
"unit_price_usd": 8.41,
"unit": "day",
"total_usd": 252.3
}Tạo đơn hàng
POST/api/v1/ordersCần khóa API
Trừ tổng tiền từ số dư và tạo đơn hàng. Trạng thái bắt đầu là pending (đang kích hoạt) và chuyển sang active khi đơn sẵn sàng. Nếu không kích hoạt được, đơn thành refunded và toàn bộ số tiền về lại số dư. Số dư không đủ sẽ trả về 402.
| Trường | Kiểu | Ý nghĩa |
|---|---|---|
productBắt buộc | string | Một trong unlimited, residential, isp, datacenter. |
quantityBắt buộc | integer | Số ngày cho unlimited (1~365), GB cho residential (5~5,000), số IP cho isp (1~1,000) hoặc datacenter (5~5,000). |
concurrencyKhông bắt buộc | integer | Chỉ cho unlimited. Một trong 200, 500, 1000, 2000. |
bandwidthKhông bắt buộc | integer | Chỉ cho unlimited, tính bằng Mbps. Một trong 100, 200, 500, 1000. |
monthsKhông bắt buộc | integer | Chỉ cho isp và datacenter. Một trong 1, 3, 6, 12. |
countryKhông bắt buộc | string | Chỉ cho isp và datacenter. Mã quốc gia hai chữ cái, ví dụ jp. Xem /countries để biết giá trị hợp lệ. |
curl -X POST https://starproxy.shop/api/v1/orders \
-H "Authorization: Bearer spk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"order": {
"id": "SP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.41,
"total_usd": 252.3,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
},
"balance_usd": 1047.7
}Danh sách đơn hàng
GET/api/v1/ordersCần khóa API
Trả về tối đa 100 đơn hàng, mới nhất trước.
| Trường | Kiểu | Ý nghĩa |
|---|---|---|
statusKhông bắt buộc | string | Một trong pending, active, refunded. Để trống để lấy mọi trạng thái. |
curl "https://starproxy.shop/api/v1/orders?status=pending" \ -H "Authorization: Bearer spk_your_api_key"
{
"orders": [
{
"id": "SP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.41,
"total_usd": 252.3,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
}
]
}Lấy một đơn hàng
GET/api/v1/orders/{id}Cần khóa API
Trả về một đơn hàng theo id. Dùng để xem đã kích hoạt xong chưa.
| Trường | Kiểu | Ý nghĩa |
|---|---|---|
idBắt buộc | string | Id đơn hàng, ví dụ SP-7KQ2M-X4HTD. |
curl https://starproxy.shop/api/v1/orders/SP-7KQ2M-X4HTD \ -H "Authorization: Bearer spk_your_api_key"
{
"order": {
"id": "SP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.41,
"total_usd": 252.3,
"status": "active",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:40:02.511Z"
}
}Tạo tên người dùng proxy
GET/api/v1/proxy-userCần khóa API
Trả về tên người dùng proxy đã gắn sẵn tùy chọn của bạn, kèm URL HTTP và SOCKS5 sẵn để dán. Không có session thì mỗi yêu cầu nhận một IP mới.
| Trường | Kiểu | Ý nghĩa |
|---|---|---|
productKhông bắt buộc | string | Một trong unlimited, residential, isp, datacenter. Mặc định là unlimited. |
countryKhông bắt buộc | string | Mã quốc gia hai chữ cái, ví dụ jp. |
cityKhông bắt buộc | string | Giá trị thành phố trong /countries, ví dụ tokyo. Cần gửi kèm country. |
sessionKhông bắt buộc | string | 1~32 chữ cái hoặc chữ số. Các yêu cầu cùng session dùng chung một IP. |
ttlKhông bắt buộc | integer | Số phút giữ IP của phiên, 1~60. Mặc định là 30. |
curl "https://starproxy.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \ -H "Authorization: Bearer spk_your_api_key"
{
"username": "spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
"password": "your_password",
"http": "http://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6100",
"socks5": "socks5h://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6200"
}Ví dụ đầy đủ
Một script lấy báo giá, đặt hàng từ số dư và kết nối qua IP Nhật Bản.
import requests
API = "https://starproxy.shop/api/v1"
HEAD = {"Authorization": "Bearer spk_your_api_key"}
# 1) Check the price first
plan = {"product": "residential", "quantity": 100}
print(requests.post(f"{API}/quote", json=plan).json())
# 2) Order from your balance
r = requests.post(f"{API}/orders", json=plan, headers=HEAD)
order = r.json()["order"]
print(order["id"], order["status"])
# 3) Get a username for Japanese IPs
u = requests.get(f"{API}/proxy-user", headers=HEAD,
params={"product": "residential", "country": "jp"}).json()
proxies = {"http": u["http"], "https": u["http"]}
print(requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30).json())const API = "https://starproxy.shop/api/v1";
const HEAD = { Authorization: "Bearer spk_your_api_key", "Content-Type": "application/json" };
// Check the balance
const acc = await fetch(`${API}/account`, { headers: HEAD }).then((r) => r.json());
console.log(acc.balance_usd);
// Order 7 days of unlimited
const res = await fetch(`${API}/orders`, {
method: "POST",
headers: HEAD,
body: JSON.stringify({ product: "unlimited", quantity: 7, concurrency: 500, bandwidth: 100 }),
});
if (res.status === 402) console.log("Top up first");
else console.log((await res.json()).order.id);Đơn đặt qua API được xử lý giống đơn trong bảng điều khiển và hiện ở tab Lịch sử. Thay spk_your_api_key trong ví dụ bằng khóa của bạn.