Baru di sini? Ikuti langkah berikut
- 1Daftar dengan email dan kata sandi, atau dengan token, lalu buka dashboard.
- 2Buat kunci API di tab Connect. Kunci lengkap hanya tampil sekali, saat Anda membuatnya, jadi langsung simpan.
- 3Masukkan kunci ke header Authorization di setiap permintaan yang memerlukannya.
- 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.
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.
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low for this order. Top up in the dashboard."
}
}| HTTP | code | Arti |
|---|---|---|
| bad_requestHTTP 400Nilai wajib tidak ada, atau ada nilai yang dikirim yang tidak diterima produk ini. | Nilai wajib tidak ada, atau ada nilai yang dikirim yang tidak diterima produk ini. | |
| unauthorizedHTTP 401Kunci API tidak ada atau tidak valid. | Kunci API tidak ada atau tidak valid. | |
| insufficient_balanceHTTP 402Saldo Anda kurang dari total pesanan. Saldo tidak terpotong. | Saldo Anda kurang dari total pesanan. Saldo tidak terpotong. | |
| not_foundHTTP 404Akun Anda tidak punya pesanan dengan nomor ini. | Akun Anda tidak punya pesanan dengan nomor ini. | |
| rate_limitedHTTP 429Anda melebihi jumlah panggilan yang diizinkan per menit. | Anda melebihi jumlah panggilan yang diizinkan per menit. | |
| server_errorHTTP 500Server tidak bisa menyelesaikan permintaan. Saldo tidak terpotong. | Server 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.
curl https://proxyworld.shop/api/v1/account \ -H "Authorization: Bearer pwk_your_api_key"
{
"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.
curl https://proxyworld.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",
"...": "..."
}
]
}Negara dan kota
GET/api/v1/countriesBisa tanpa kunci
Mengembalikan negara yang bisa dipilih untuk tiap produk, beserta nilai kota untuk opsi username -city-.
| Nama | Tipe | Arti |
|---|---|---|
productOpsional | string | Salah satu dari unlimited, residential, isp, datacenter. Jika dikosongkan, residential yang dipakai. |
curl "https://proxyworld.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 penawaran harga
POST/api/v1/quoteBisa tanpa kunci
Menghitung total pesanan tanpa menyentuh saldo Anda. Kirim body yang sama seperti saat membuat pesanan.
| Nama | Tipe | Arti |
|---|---|---|
productWajib | string | Salah satu dari unlimited, residential, isp, datacenter. |
quantityWajib | integer | Jumlah 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). |
concurrencyOpsional | integer | Khusus unlimited. Pilih salah satu dari 200, 500, 1000, 2000. |
bandwidthOpsional | integer | Khusus unlimited, dalam Mbps. Salah satu dari 100, 200, 500, 1000. |
monthsOpsional | integer | Khusus isp dan datacenter. Salah satu dari 1, 3, 6, 12. |
countryOpsional | string | Khusus isp dan datacenter. Kode negara dua huruf seperti jp. Nilai yang diterima tercantum di /countries. |
curl -X POST https://proxyworld.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.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.
| Nama | Tipe | Arti |
|---|---|---|
productWajib | string | Salah satu dari unlimited, residential, isp, datacenter. |
quantityWajib | integer | Jumlah 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). |
concurrencyOpsional | integer | Khusus unlimited. Pilih salah satu dari 200, 500, 1000, 2000. |
bandwidthOpsional | integer | Khusus unlimited, dalam Mbps. Salah satu dari 100, 200, 500, 1000. |
monthsOpsional | integer | Khusus isp dan datacenter. Salah satu dari 1, 3, 6, 12. |
countryOpsional | string | Khusus isp dan datacenter. Kode negara dua huruf seperti jp. Nilai yang diterima tercantum di /countries. |
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}'{
"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.
| Nama | Tipe | Arti |
|---|---|---|
statusOpsional | string | Salah satu dari pending, active, refunded. Kosongkan untuk mendapat pesanan dengan status apa pun. |
curl "https://proxyworld.shop/api/v1/orders?status=pending" \ -H "Authorization: Bearer pwk_your_api_key"
{
"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.
| Nama | Tipe | Arti |
|---|---|---|
idWajib | string | Nomor pesanan, misalnya PW-7KQ2M-X4HTD. |
curl https://proxyworld.shop/api/v1/orders/PW-7KQ2M-X4HTD \ -H "Authorization: Bearer pwk_your_api_key"
{
"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.
| Nama | Tipe | Arti |
|---|---|---|
productOpsional | string | Salah satu dari unlimited, residential, isp, datacenter. Jika dikosongkan, unlimited yang dipakai. |
countryOpsional | string | Kode negara dua huruf, misalnya jp. |
cityOpsional | string | Nilai kota yang tercantum di /countries, misalnya tokyo. Kirim country bersamanya. |
sessionOpsional | string | 1~32 huruf dan angka. Permintaan dengan session yang sama memakai IP yang sama. |
ttlOpsional | integer | Berapa lama sesi menahan IP-nya, 1~60 menit. Jika dikosongkan, 30 menit. |
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"
{
"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.
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())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.