Bagaimana cara memulai?
- 1Daftar dan masuk ke dashboard.
- 2Buka menu Koneksi dan buat kunci API. Kunci lengkap hanya ditampilkan sekali, jadi salin ke tempat yang aman.
- 3Kirim kunci di header Authorization pada setiap permintaan yang memerlukannya.
- 4Panggil /account untuk memastikan kunci berfungsi, lalu buat pesanan dengan /orders.
Bagaimana cara kerja autentikasi?
Permintaan untuk akun Anda sendiri (account, orders, proxy-user) memerlukan kunci API. Kirim sebagai Bearer token di header Authorization. Harga, negara, dan penawaran harga bersifat publik dan tidak perlu kunci.
Kami hanya menyimpan hash dari kunci. Jika kunci hilang, buat yang baru di dashboard dan kunci lama langsung tidak berlaku. Jangan simpan kunci di kode browser atau repositori publik.
Authorization: Bearer pdk_your_api_key
Base URL dan format
- Base URL
- https://proxyday.shop/api/v1
- Body permintaan dan respons
- application/json
- Uang
- Angka USD, misalnya 807.90
- Waktu
- ISO 8601 (UTC)
Apakah ada batas jumlah panggilan?
Setiap kunci API bisa mengirim hingga 60 permintaan per menit. Endpoint publik mengizinkan 60 permintaan per menit per IP. Jika melewati batas, Anda mendapat HTTP 429, jadi tunggu satu menit lalu coba lagi.
Seperti apa bentuk error?
Error memakai kode status HTTP dan body JSON berisi kode singkat dan pesan.
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low for this order. Top up in the dashboard."
}
}| HTTP | code | Arti |
|---|---|---|
| 400 | bad_request | Ada nilai yang kosong atau tidak diizinkan untuk produk ini. |
| 401 | unauthorized | Kunci API tidak ada atau tidak valid. |
| 402 | insufficient_balance | Saldo lebih kecil dari total pesanan. Tidak ada yang ditagih. |
| 404 | not_found | Tidak ada pesanan dengan id ini di akun Anda. |
| 429 | rate_limited | Terlalu banyak permintaan dalam satu menit. |
| 500 | server_error | Permintaan tidak bisa diselesaikan. Tidak ada yang ditagih. |
Endpoint
Ambil data akun
GET/api/v1/accountKunci API
Mengembalikan saldo, host proxy, port, username dan kata sandi, serta IP yang diizinkan.
curl https://proxyday.shop/api/v1/account \ -H "Authorization: Bearer pdk_your_api_key"
{
"email": "you@example.com",
"balance_usd": 1300,
"proxy": {
"host": "gate.proxyday.shop",
"http_port": 6100,
"socks5_port": 6200,
"username": "pdexample1",
"password": "your_password"
},
"allowed_ips": [
"203.0.113.10"
]
}Daftar produk dan harga
GET/api/v1/productsTanpa kunci
Mengembalikan semua produk beserta batas, tingkatan harga, dan diskonnya. Harga diambil dari tabel yang sama dengan halaman harga.
curl https://proxyday.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",
"...": "..."
}
]
}Daftar negara dan kota
GET/api/v1/countriesTanpa kunci
Mengembalikan negara yang tersedia untuk suatu produk, beserta nilai kota yang bisa dimasukkan ke username proxy.
| Field | Tipe | Arti |
|---|---|---|
productOpsional | string | unlimited, residential, isp, atau datacenter. Bawaan: residential. |
curl "https://proxyday.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"
}
]
}
]
}Minta penawaran harga
POST/api/v1/quoteTanpa kunci
Menghitung total pesanan tanpa menagih apa pun. Gunakan body yang sama seperti saat membuat pesanan.
| Field | Tipe | Arti |
|---|---|---|
productWajib | string | unlimited, residential, isp, atau datacenter. |
quantityWajib | integer | Hari untuk unlimited (1~365), GB untuk residential (5~5,000), IP untuk isp (1~1,000) atau datacenter (5~5,000). |
concurrencyOpsional | integer | Khusus unlimited: 200, 500, 1000, atau 2000. |
bandwidthOpsional | integer | Khusus unlimited, dalam Mbps: 100, 200, 500, atau 1000. |
monthsOpsional | integer | Khusus isp dan datacenter: 1, 3, 6, atau 12. |
countryOpsional | string | Khusus isp dan datacenter: kode negara dua huruf, misalnya jp. Lihat /countries. |
curl -X POST https://proxyday.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.6,
"unit": "day",
"total_usd": 258
}Buat pesanan
POST/api/v1/ordersKunci API
Memotong total dari saldo Anda dan membuat pesanan. Pesanan baru berstatus pending (sedang diaktifkan) dan berubah menjadi active saat siap. Jika pesanan tidak bisa diaktifkan, statusnya menjadi refunded dan seluruh jumlah kembali ke saldo Anda. Mengembalikan 402 jika saldo tidak cukup.
| Field | Tipe | Arti |
|---|---|---|
productWajib | string | unlimited, residential, isp, atau datacenter. |
quantityWajib | integer | Hari untuk unlimited (1~365), GB untuk residential (5~5,000), IP untuk isp (1~1,000) atau datacenter (5~5,000). |
concurrencyOpsional | integer | Khusus unlimited: 200, 500, 1000, atau 2000. |
bandwidthOpsional | integer | Khusus unlimited, dalam Mbps: 100, 200, 500, atau 1000. |
monthsOpsional | integer | Khusus isp dan datacenter: 1, 3, 6, atau 12. |
countryOpsional | string | Khusus isp dan datacenter: kode negara dua huruf, misalnya jp. Lihat /countries. |
curl -X POST https://proxyday.shop/api/v1/orders \
-H "Authorization: Bearer pdk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"order": {
"id": "PD-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.6,
"total_usd": 258,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
},
"balance_usd": 1042
}Daftar pesanan Anda
GET/api/v1/ordersKunci API
Mengembalikan 100 pesanan terakhir Anda, dari yang terbaru.
| Field | Tipe | Arti |
|---|---|---|
statusOpsional | string | pending, active, atau refunded. Kosongkan untuk mendapatkan semua. |
curl "https://proxyday.shop/api/v1/orders?status=pending" \ -H "Authorization: Bearer pdk_your_api_key"
{
"orders": [
{
"id": "PD-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.6,
"total_usd": 258,
"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}Kunci API
Mengembalikan satu pesanan berdasarkan id-nya, misalnya untuk mengecek apakah sudah aktif.
| Field | Tipe | Arti |
|---|---|---|
idWajib | string | Id pesanan, misalnya PD-7KQ2M-X4HTD. |
curl https://proxyday.shop/api/v1/orders/PD-7KQ2M-X4HTD \ -H "Authorization: Bearer pdk_your_api_key"
{
"order": {
"id": "PD-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.6,
"total_usd": 258,
"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-userKunci API
Mengembalikan username proxy dengan opsi Anda serta URL proxy HTTP dan SOCKS5 yang siap pakai. Tanpa session, IP berputar di setiap permintaan.
| Field | Tipe | Arti |
|---|---|---|
productOpsional | string | unlimited, residential, isp, atau datacenter. Bawaan: unlimited. |
countryOpsional | string | Kode negara dua huruf, misalnya jp. |
cityOpsional | string | Nilai kota dari /countries, misalnya tokyo. Memerlukan country. |
sessionOpsional | string | Huruf atau angka bebas sepanjang 1~32. Permintaan dengan session yang sama memakai IP yang sama. |
ttlOpsional | integer | Berapa menit IP sesi ditahan, 1~60. Bawaan 30. |
curl "https://proxyday.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \ -H "Authorization: Bearer pdk_your_api_key"
{
"username": "pdexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
"password": "your_password",
"http": "http://pdexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyday.shop:6100",
"socks5": "socks5h://pdexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.proxyday.shop:6200"
}Contoh lengkap
Contoh ini mengecek harga, memesan dari saldo, dan terhubung lewat IP Jepang.
import requests
API = "https://proxyday.shop/api/v1"
HEAD = {"Authorization": "Bearer pdk_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://proxyday.shop/api/v1";
const HEAD = { Authorization: "Bearer pdk_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 sama dengan pesanan dari dashboard dan muncul di Riwayat. Ganti pdk_your_api_key dengan kunci Anda sendiri.