API ProxyWorld

Apa yang Anda lakukan di dashboard juga bisa dilakukan lewat kode. Baca saldo, cek harga, pesan dari saldo, dan dapatkan username proxy dengan opsi, semuanya lewat satu REST API.

Baru di sini? Ikuti langkah berikut

  1. 1Daftar dengan email dan kata sandi, atau dengan token, lalu buka dashboard.
  2. 2Buat kunci API di tab Connect. Kunci lengkap hanya tampil sekali, saat Anda membuatnya, jadi langsung simpan.
  3. 3Masukkan kunci ke header Authorization di setiap permintaan yang memerlukannya.
  4. 4Panggil /account dulu untuk memastikan kunci diterima, lalu buat pesanan dengan /orders.

Bagaimana cara kerja autentikasi?

Permintaan yang menyangkut akun Anda sendiri (account, orders, proxy-user) memerlukan kunci API. Kirim di header sebagai Authorization: Bearer pwk_... Harga, negara, dan penawaran terbuka untuk semua orang dan bisa dipanggil tanpa kunci.

Server ProxyWorld tidak pernah menyimpan kuncinya, hanya hash-nya. Jika kunci hilang, buat yang baru di dashboard, dan kunci lama langsung diblokir. Simpan kunci hanya di kode sisi server. Jika kunci masuk ke kode yang berjalan di browser atau di repositori publik, orang lain bisa memakainya.

HTTP header
Authorization: Bearer pwk_your_api_key

Base URL dan format data

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

Berapa banyak panggilan yang boleh saya lakukan?

Setiap kunci API bisa melakukan 60 panggilan per menit. Endpoint publik yang dipanggil tanpa kunci mengizinkan 60 panggilan per menit untuk tiap IP. Jika melebihi itu, Anda mendapat HTTP 429. Tunggu sekitar satu menit, lalu coba lagi.

Apa yang dikembalikan jika terjadi kegagalan?

Anda mendapat kode status HTTP dan body JSON berisi kode error singkat beserta penjelasannya.

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 ada nilai yang dikirim yang tidak diterima produk ini.
unauthorizedHTTP 401Kunci API tidak ada atau tidak valid.
insufficient_balanceHTTP 402Saldo Anda kurang dari total pesanan. Saldo tidak terpotong.
not_foundHTTP 404Akun Anda tidak punya pesanan dengan nomor ini.
rate_limitedHTTP 429Anda melebihi jumlah panggilan yang diizinkan per menit.
server_errorHTTP 500Server tidak bisa menyelesaikan permintaan. Saldo tidak terpotong.

Endpoint

Lihat akun Anda

GET/api/v1/accountPerlu kunci API

Mengembalikan cara Anda masuk (login: email atau token), email, saldo, host dan port proxy, username dan kata sandi proxy, serta Allowed IPs. Untuk akun yang dibuat dengan token, email bernilai null.

Permintaan
curl https://proxyworld.shop/api/v1/account \
  -H "Authorization: Bearer pwk_your_api_key"
Respons
{
  "login": "email",
  "email": "you@example.com",
  "balance_usd": 1300,
  "proxy": {
    "host": "gate.proxyworld.shop",
    "http_port": 6100,
    "socks5_port": 6200,
    "username": "pwexample1",
    "password": "your_password"
  },
  "allowed_ips": [
    "203.0.113.10"
  ]
}

Lihat produk dan harga

GET/api/v1/productsBisa tanpa kunci

Mengembalikan rentang pesanan tiap produk, harga satuan untuk tiap tingkatan jumlah, dan diskon durasi. Memakai tabel harga yang sama dengan halaman harga.

Permintaan
curl https://proxyworld.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",
      "...": "..."
    }
  ]
}

Negara dan kota

GET/api/v1/countriesBisa tanpa kunci

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

NamaArti
productOpsionalSalah satu dari unlimited, residential, isp, datacenter. Jika dikosongkan, residential yang dipakai.
Permintaan
curl "https://proxyworld.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/quoteBisa tanpa kunci

Menghitung total pesanan tanpa menyentuh saldo Anda. Kirim body yang sama seperti saat membuat pesanan.

NamaArti
productWajibSalah satu dari unlimited, residential, isp, datacenter.
quantityWajibJumlah yang dipesan: hari untuk unlimited (1~365), GB untuk residential (5~5,000), jumlah IP untuk isp (1~1,000) atau datacenter (5~5,000).
concurrencyOpsionalKhusus unlimited. Pilih 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. Nilai yang diterima tercantum di /countries.
Permintaan
curl -X POST https://proxyworld.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.05,
  "unit": "day",
  "total_usd": 241.5
}

Buat pesanan

POST/api/v1/ordersPerlu kunci API

Memotong total dari saldo Anda dan membuat pesanan. Statusnya mulai dari pending (sedang diaktifkan) dan berubah menjadi active setelah siap. Pesanan yang tidak bisa diaktifkan menjadi refunded, dan semua yang Anda bayar kembali ke saldo. Jika saldo tidak cukup, Anda mendapat 402.

NamaArti
productWajibSalah satu dari unlimited, residential, isp, datacenter.
quantityWajibJumlah yang dipesan: hari untuk unlimited (1~365), GB untuk residential (5~5,000), jumlah IP untuk isp (1~1,000) atau datacenter (5~5,000).
concurrencyOpsionalKhusus unlimited. Pilih 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. Nilai yang diterima tercantum di /countries.
Permintaan
curl -X POST https://proxyworld.shop/api/v1/orders \
  -H "Authorization: Bearer pwk_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'
Respons
{
  "order": {
    "id": "PW-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.05,
    "total_usd": 241.5,
    "status": "pending",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:12:44.120Z"
  },
  "balance_usd": 1058.5
}

Lihat pesanan Anda

GET/api/v1/ordersPerlu kunci API

Menampilkan hingga 100 pesanan, mulai dari yang terbaru.

NamaArti
statusOpsionalSalah satu dari pending, active, refunded. Kosongkan untuk mendapat pesanan dengan status apa pun.
Permintaan
curl "https://proxyworld.shop/api/v1/orders?status=pending" \
  -H "Authorization: Bearer pwk_your_api_key"
Respons
{
  "orders": [
    {
      "id": "PW-7KQ2M-X4HTD",
      "product": "unlimited",
      "quantity": 30,
      "months": null,
      "concurrency": 1000,
      "bandwidth_mbps": 200,
      "country": null,
      "unit_price_usd": 8.05,
      "total_usd": 241.5,
      "status": "pending",
      "created_at": "2026-10-31T09:12:44.120Z",
      "updated_at": "2026-10-31T09:12:44.120Z"
    }
  ]
}

Lihat satu pesanan

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

Mengembalikan pesanan yang cocok dengan nomor pesanan. Berguna untuk mengecek apakah aktivasi sudah selesai.

NamaArti
idWajibNomor pesanan, misalnya PW-7KQ2M-X4HTD.
Permintaan
curl https://proxyworld.shop/api/v1/orders/PW-7KQ2M-X4HTD \
  -H "Authorization: Bearer pwk_your_api_key"
Respons
{
  "order": {
    "id": "PW-7KQ2M-X4HTD",
    "product": "unlimited",
    "quantity": 30,
    "months": null,
    "concurrency": 1000,
    "bandwidth_mbps": 200,
    "country": null,
    "unit_price_usd": 8.05,
    "total_usd": 241.5,
    "status": "active",
    "created_at": "2026-10-31T09:12:44.120Z",
    "updated_at": "2026-10-31T09:40:02.511Z"
  }
}

Susun username proxy

GET/api/v1/proxy-userPerlu kunci API

Mengembalikan username proxy dengan opsi Anda, plus URL HTTP dan SOCKS5 yang bisa langsung ditempel. Jika Anda tidak mengirim session, IP berganti di setiap permintaan.

NamaArti
productOpsionalSalah satu dari unlimited, residential, isp, datacenter. Jika dikosongkan, unlimited yang dipakai.
countryOpsionalKode negara dua huruf, misalnya jp.
cityOpsionalNilai kota yang tercantum di /countries, misalnya tokyo. Kirim country bersamanya.
sessionOpsional1~32 huruf dan angka. Permintaan dengan session yang sama memakai IP yang sama.
ttlOpsionalBerapa lama sesi menahan IP-nya, 1~60 menit. Jika dikosongkan, 30 menit.
Permintaan
curl "https://proxyworld.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \
  -H "Authorization: Bearer pwk_your_api_key"
Respons
{
  "username": "pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
  "password": "your_password",
  "http": "http://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6100",
  "socks5": "socks5h://pwexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyworld.shop:6200"
}

Contoh dari awal sampai akhir

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

Python (requests)
import requests

API = "https://proxyworld.shop/api/v1"
HEAD = {"Authorization": "Bearer pwk_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://proxyworld.shop/api/v1";
const HEAD = { Authorization: "Bearer pwk_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 bersama yang lain. Ganti pwk_your_api_key di contoh dengan kunci API Anda sendiri.

Hubungkan ProxyWorld ke kode Anda

Daftar dengan email atau token, buat kunci API di dashboard, dan Anda bisa langsung mulai memanggil API.