Di mana saya bermula?
- 1Daftar dengan nama pengguna dan log masuk ke dashboard.
- 2Cipta kunci API di tab Connect. Kunci penuh dipaparkan sekali sahaja, semasa anda menciptanya, jadi terus simpan di tempat yang selamat.
- 3Hantar kunci dalam header Authorization bersama setiap permintaan yang memerlukannya.
- 4Panggil /account dahulu untuk memastikan kunci berfungsi, kemudian buat pesanan dengan /orders.
Pengesahan
Permintaan tentang akaun anda sendiri (account, orders, proxy-user) memerlukan kunci API, dihantar dalam header sebagai Authorization: Bearer spk_... Harga, negara dan sebut harga adalah awam dan berfungsi tanpa kunci.
StarProxy hanya menyimpan hash setiap kunci, bukan kunci itu sendiri. Jika anda kehilangan kunci, cipta yang baharu di dashboard. Kunci lama berhenti berfungsi pada saat itu. Simpan kunci dalam kod pelayan sahaja. Jangan sekali-kali letakkan dalam kod yang berjalan di pelayar atau dalam repositori awam.
Authorization: Bearer spk_your_api_key
URL asas dan format data
- URL asas
- https://starproxy.shop/api/v1
- Badan permintaan dan respons
- application/json
- Jumlah
- USD sebagai nombor, cth. 1047.70
- Cap masa
- ISO 8601 (UTC)
Adakah had kadar panggilan?
Satu kunci API boleh membuat sehingga 60 panggilan seminit. Endpoint awam tanpa kunci membenarkan 60 panggilan seminit bagi setiap IP. Melebihi had, anda menerima HTTP 429, jadi tunggu seminit dan hantar semula.
Bagaimana rupa ralat?
Kod status HTTP, serta badan JSON dengan kod ralat ringkas dan mesej.
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low for this order. Top up in the dashboard."
}
}| HTTP | code | Maksud |
|---|---|---|
| bad_requestHTTP 400Nilai wajib tiada, atau nilai tidak sah untuk produk ini. | Nilai wajib tiada, atau nilai tidak sah untuk produk ini. | |
| unauthorizedHTTP 401Kunci API tiada atau tidak sepadan. | Kunci API tiada atau tidak sepadan. | |
| insufficient_balanceHTTP 402Baki anda lebih rendah daripada jumlah pesanan. Tiada apa-apa ditolak. | Baki anda lebih rendah daripada jumlah pesanan. Tiada apa-apa ditolak. | |
| not_foundHTTP 404Tiada pesanan dengan id ini dalam akaun anda. | Tiada pesanan dengan id ini dalam akaun anda. | |
| rate_limitedHTTP 429Terlalu banyak permintaan dalam satu minit. | Terlalu banyak permintaan dalam satu minit. | |
| server_errorHTTP 500Pelayan tidak dapat menyelesaikan permintaan. Tiada apa-apa ditolak. | Pelayan tidak dapat menyelesaikan permintaan. Tiada apa-apa ditolak. |
Endpoint
Dapatkan akaun
GET/api/v1/accountKunci API diperlukan
Mengembalikan baki, hos dan port proxy, nama pengguna dan kata laluan proxy, serta IP Dibenarkan anda.
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"
]
}Dapatkan produk dan harga
GET/api/v1/productsTidak perlu kunci
Mengembalikan julat pesanan setiap produk, harga bagi setiap tahap kuantiti dan diskaun tempoh, daripada jadual harga yang sama seperti halaman harga.
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",
"...": "..."
}
]
}Senarai negara dan bandar
GET/api/v1/countriesTidak perlu kunci
Mengembalikan negara yang disokong setiap produk, serta nilai bandar untuk pilihan nama pengguna -city-.
| Medan | Jenis | Maksud |
|---|---|---|
productPilihan | string | Salah satu daripada unlimited, residential, isp, datacenter. Lalai: 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"
}
]
}
]
}Dapatkan sebut harga
POST/api/v1/quoteTidak perlu kunci
Mengira jumlah pesanan tanpa menyentuh baki anda. Hantar badan yang sama seperti untuk pesanan.
| Medan | Jenis | Maksud |
|---|---|---|
productWajib | string | Salah satu daripada unlimited, residential, isp, datacenter. |
quantityWajib | integer | Hari untuk unlimited (1~365), GB untuk residential (5~5,000), bilangan IP untuk isp (1~1,000) atau datacenter (5~5,000). |
concurrencyPilihan | integer | Untuk unlimited sahaja. Salah satu daripada 200, 500, 1000, 2000. |
bandwidthPilihan | integer | Untuk unlimited sahaja, dalam Mbps. Salah satu daripada 100, 200, 500, 1000. |
monthsPilihan | integer | Untuk isp dan datacenter sahaja. Salah satu daripada 1, 3, 6, 12. |
countryPilihan | string | Untuk isp dan datacenter sahaja. Kod negara dua huruf seperti jp. Lihat /countries untuk nilai yang sah. |
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
}Cipta pesanan
POST/api/v1/ordersKunci API diperlukan
Menolak jumlah dari baki anda dan mencipta pesanan. Status bermula sebagai pending (sedang diaktifkan) dan bertukar kepada active apabila pesanan sedia. Jika tidak dapat diaktifkan, ia menjadi refunded dan jumlah penuh dikembalikan ke baki anda. Baki rendah mengembalikan 402.
| Medan | Jenis | Maksud |
|---|---|---|
productWajib | string | Salah satu daripada unlimited, residential, isp, datacenter. |
quantityWajib | integer | Hari untuk unlimited (1~365), GB untuk residential (5~5,000), bilangan IP untuk isp (1~1,000) atau datacenter (5~5,000). |
concurrencyPilihan | integer | Untuk unlimited sahaja. Salah satu daripada 200, 500, 1000, 2000. |
bandwidthPilihan | integer | Untuk unlimited sahaja, dalam Mbps. Salah satu daripada 100, 200, 500, 1000. |
monthsPilihan | integer | Untuk isp dan datacenter sahaja. Salah satu daripada 1, 3, 6, 12. |
countryPilihan | string | Untuk isp dan datacenter sahaja. Kod negara dua huruf seperti jp. Lihat /countries untuk nilai yang sah. |
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
}Senarai pesanan
GET/api/v1/ordersKunci API diperlukan
Mengembalikan sehingga 100 pesanan, terbaharu dahulu.
| Medan | Jenis | Maksud |
|---|---|---|
statusPilihan | string | Salah satu daripada pending, active, refunded. Biarkan kosong untuk semua status. |
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"
}
]
}Dapatkan pesanan
GET/api/v1/orders/{id}Kunci API diperlukan
Mengembalikan satu pesanan mengikut id. Gunakan untuk melihat sama ada pengaktifan sudah selesai.
| Medan | Jenis | Maksud |
|---|---|---|
idWajib | string | Id pesanan, contohnya 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"
}
}Jana nama pengguna proxy
GET/api/v1/proxy-userKunci API diperlukan
Mengembalikan nama pengguna proxy dengan pilihan anda, serta URL HTTP dan SOCKS5 sedia untuk ditampal. Tanpa session, setiap permintaan mendapat IP baharu.
| Medan | Jenis | Maksud |
|---|---|---|
productPilihan | string | Salah satu daripada unlimited, residential, isp, datacenter. Lalai: unlimited. |
countryPilihan | string | Kod negara dua huruf seperti jp. |
cityPilihan | string | Nilai bandar daripada /countries, seperti tokyo. Memerlukan country. |
sessionPilihan | string | 1~32 huruf atau digit. Permintaan dengan session yang sama berkongsi satu IP. |
ttlPilihan | integer | Minit untuk mengekalkan IP sesi, 1~60. Lalai: 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"
}Contoh penuh
Satu skrip yang mendapatkan sebut harga, membuat pesanan dari baki anda dan bersambung melalui IP Jepun.
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);Pesanan API diproses sama seperti pesanan di dashboard dan dipaparkan di tab Sejarah. Gantikan spk_your_api_key dalam contoh dengan kunci anda sendiri.