Langsung ke konten
starproxy
Mulai

API StarProxy

Sebagian besar fungsi dashboard bisa diakses lewat kode. Cek saldo, lihat harga, buat pesanan dari saldo, dan ambil username proxy dengan opsi, semuanya lewat satu REST API.

Mulai dari mana?

  1. 1Daftar dengan username dan masuk ke dashboard.
  2. 2Buat kunci API di tab Connect. Kunci lengkap hanya ditampilkan sekali, saat Anda membuatnya, jadi langsung simpan di tempat yang aman.
  3. 3Kirim kunci di header Authorization pada setiap permintaan yang memerlukannya.
  4. 4Panggil /account dulu untuk mengecek bahwa kunci berfungsi, lalu buat pesanan dengan /orders.

Autentikasi

Permintaan tentang akun Anda sendiri (account, orders, proxy-user) memerlukan kunci API, dikirim di header sebagai Authorization: Bearer spk_... Harga, negara, dan penawaran bersifat publik dan bisa dipakai tanpa kunci.

StarProxy hanya menyimpan hash dari setiap kunci, bukan kuncinya. Jika kunci hilang, buat yang baru di dashboard. Kunci lama langsung berhenti berfungsi saat itu. Simpan kunci hanya di kode server. Jangan pernah menaruhnya di kode yang berjalan di browser atau di repositori publik.

HTTP header
Authorization: Bearer spk_your_api_key

Base URL dan format data

Base URL
https://starproxy.shop/api/v1
Body permintaan dan respons
application/json
Jumlah uang
USD sebagai angka, misalnya 1047.70
Timestamp
ISO 8601 (UTC)

Apakah ada batas jumlah panggilan?

Satu kunci API bisa melakukan hingga 60 panggilan per menit. Endpoint publik tanpa kunci mengizinkan 60 panggilan per menit per IP. Jika melewati batas, Anda mendapat HTTP 429, jadi tunggu satu menit lalu kirim lagi.

Seperti apa bentuk error?

Kode status HTTP, ditambah body JSON berisi kode error singkat dan pesan.

Contoh
{
  "error": {
    "code": "insufficient_balance",
    "message": "Your balance is too low for this order. Top up in the dashboard."
  }
}
code
bad_requestHTTP 400Nilai wajib tidak ada, atau nilainya tidak valid untuk produk ini.
unauthorizedHTTP 401Kunci API tidak ada atau tidak cocok.
insufficient_balanceHTTP 402Saldo Anda lebih kecil dari total pesanan. Tidak ada yang dipotong.
not_foundHTTP 404Tidak ada pesanan dengan id ini di akun Anda.
rate_limitedHTTP 429Terlalu banyak permintaan dalam satu menit.
server_errorHTTP 500Server tidak bisa menyelesaikan permintaan. Tidak ada yang dipotong.

Endpoint

Ambil data akun

GET/api/v1/accountPerlu kunci API

Mengembalikan saldo, host dan port proxy, username dan kata sandi proxy, serta Allowed IPs Anda.

Permintaan
curl https://starproxy.shop/api/v1/account \
  -H "Authorization: Bearer spk_your_api_key"
Respons
{
  "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"
  ]
}

Ambil produk dan harga

GET/api/v1/productsTanpa kunci

Mengembalikan rentang pesanan tiap produk, harga per tingkatan jumlah, dan diskon durasi, dari tabel harga yang sama dengan halaman harga.

Permintaan
curl https://starproxy.shop/api/v1/products
Respons
{
  "currency": "USD",
  "prices_as_of": "2026-10-31",
  "products": [
    {
      "id": "unlimited",
      "unit": "day",
      "quantity": {
        "meaning": "days",
        "min": 1,
        "max": 365
      },
      "...": "..."
    },
    {
      "id": "residential",
      "unit": "gb",
      "...": "..."
    }
  ]
}

Daftar negara dan kota

GET/api/v1/countriesTanpa kunci

Mengembalikan negara yang didukung tiap produk, beserta nilai kota untuk opsi username -city-.

FieldArti
productOpsionalSalah satu dari unlimited, residential, isp, datacenter. Default-nya residential.
Permintaan
curl "https://starproxy.shop/api/v1/countries?product=datacenter"
Respons
{
  "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 penawaran harga

POST/api/v1/quoteTanpa kunci

Menghitung total pesanan tanpa mengubah saldo Anda. Kirim body yang sama dengan yang dipakai untuk pesanan.

FieldArti
productWajibSalah satu dari unlimited, residential, isp, datacenter.
quantityWajibHari untuk unlimited (1~365), GB untuk residential (5~5,000), jumlah IP untuk isp (1~1,000) atau datacenter (5~5,000).
concurrencyOpsionalKhusus unlimited. Salah satu dari 200, 500, 1000, 2000.
bandwidthOpsionalKhusus unlimited, dalam Mbps. Salah satu dari 100, 200, 500, 1000.
monthsOpsionalKhusus isp dan datacenter. Salah satu dari 1, 3, 6, 12.
countryOpsionalKhusus isp dan datacenter. Kode negara dua huruf seperti jp. Lihat /countries untuk nilai yang valid.
Permintaan
curl -X POST https://starproxy.shop/api/v1/quote \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Respons
{
  "product": "unlimited",
  "quantity": 30,
  "unit_price_usd": 8.41,
  "unit": "day",
  "total_usd": 252.3
}

Buat pesanan

POST/api/v1/ordersPerlu kunci API

Memotong total dari saldo Anda dan membuat pesanan. Status dimulai dari pending (sedang diaktifkan) dan berubah menjadi active saat pesanan siap. Jika tidak bisa diaktifkan, statusnya menjadi refunded dan seluruh jumlahnya kembali ke saldo. Saldo yang kurang mengembalikan 402.

FieldArti
productWajibSalah satu dari unlimited, residential, isp, datacenter.
quantityWajibHari untuk unlimited (1~365), GB untuk residential (5~5,000), jumlah IP untuk isp (1~1,000) atau datacenter (5~5,000).
concurrencyOpsionalKhusus unlimited. Salah satu dari 200, 500, 1000, 2000.
bandwidthOpsionalKhusus unlimited, dalam Mbps. Salah satu dari 100, 200, 500, 1000.
monthsOpsionalKhusus isp dan datacenter. Salah satu dari 1, 3, 6, 12.
countryOpsionalKhusus isp dan datacenter. Kode negara dua huruf seperti jp. Lihat /countries untuk nilai yang valid.
Permintaan
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}'
Respons
{
  "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
}

Daftar pesanan

GET/api/v1/ordersPerlu kunci API

Mengembalikan hingga 100 pesanan, yang terbaru lebih dulu.

FieldArti
statusOpsionalSalah satu dari pending, active, refunded. Kosongkan untuk semua status.
Permintaan
curl "https://starproxy.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer spk_your_api_key"
Respons
{
  "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"
    }
  ]
}

Ambil satu pesanan

GET/api/v1/orders/{id}Perlu kunci API

Mengembalikan satu pesanan berdasarkan id. Gunakan untuk melihat apakah aktivasi sudah selesai.

FieldArti
idWajibId pesanan, misalnya SP-7KQ2M-X4HTD.
Permintaan
curl https://starproxy.shop/api/v1/orders/SP-7KQ2M-X4HTD \
  -H "Authorization: Bearer spk_your_api_key"
Respons
{
  "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"
  }
}

Buat username proxy

GET/api/v1/proxy-userPerlu kunci API

Mengembalikan username proxy dengan opsi Anda di dalamnya, plus URL HTTP dan SOCKS5 yang siap ditempel. Tanpa session, setiap permintaan mendapat IP baru.

FieldArti
productOpsionalSalah satu dari unlimited, residential, isp, datacenter. Default-nya unlimited.
countryOpsionalKode negara dua huruf seperti jp.
cityOpsionalNilai kota dari /countries, seperti tokyo. Wajib disertai country.
sessionOpsional1~32 huruf atau angka. Permintaan dengan session yang sama berbagi satu IP.
ttlOpsionalLama penahanan IP sesi dalam menit, 1~60. Default-nya 30.
Permintaan
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"
Respons
{
  "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 lengkap

Satu skrip yang mengambil penawaran harga, memesan dari saldo, lalu terhubung lewat IP Jepang.

Python (requests)
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())
Node.js 18+
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 lewat API diproses sama seperti pesanan dari dashboard dan muncul di tab Riwayat. Ganti spk_your_api_key di contoh dengan kunci Anda sendiri.

Pakai StarProxy langsung dari kode Anda

Daftar dengan username, buat kunci API di dashboard, dan mulai memanggil API.