Bagaimana saya bermula?
- 1Daftar dan log masuk ke dashboard.
- 2Buka Connect dan cipta kunci API. Kunci penuh hanya dipaparkan sekali, jadi salin ke tempat yang selamat.
- 3Hantar kunci dalam header Authorization bersama setiap permintaan yang memerlukannya.
- 4Panggil /account untuk memastikan kunci berfungsi, kemudian buat pesanan dengan /orders.
Bagaimana pengesahan berfungsi?
Permintaan untuk akaun anda sendiri (account, orders, proxy-user) memerlukan kunci API. Hantar sebagai Bearer token dalam header Authorization. Harga, negara dan sebut harga adalah awam dan tidak memerlukan kunci.
Kami hanya menyimpan hash kunci. Jika anda kehilangannya, cipta kunci baharu dalam dashboard dan kunci lama terus berhenti berfungsi. Jangan letak kunci dalam kod pelayar atau repositori awam.
Authorization: Bearer rpk_your_api_key
Base URL dan format
- URL asas
- https://royalproxy.online/api/v1
- Badan permintaan dan respons
- application/json
- Wang
- Nombor USD, contohnya 807.90
- Masa
- ISO 8601 (UTC)
Adakah had kadar panggilan?
Setiap kunci API boleh menghantar sehingga 60 permintaan seminit. Endpoint awam membenarkan 60 permintaan seminit bagi setiap IP. Melebihi had, anda akan mendapat HTTP 429, jadi tunggu seminit dan cuba lagi.
Bagaimana rupa ralat?
Ralat menggunakan kod status HTTP dan badan JSON dengan kod 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 400Ada nilai yang tiada atau tidak dibenarkan untuk produk ini. | Ada nilai yang tiada atau tidak dibenarkan untuk produk ini. | |
| unauthorizedHTTP 401Kunci API tiada atau tidak sah. | Kunci API tiada atau tidak sah. | |
| insufficient_balanceHTTP 402Baki lebih rendah daripada jumlah pesanan. Tiada caj dikenakan. | Baki lebih rendah daripada jumlah pesanan. Tiada caj dikenakan. | |
| 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 500Permintaan tidak dapat diselesaikan. Tiada caj dikenakan. | Permintaan tidak dapat diselesaikan. Tiada caj dikenakan. |
Endpoint
Dapatkan akaun anda
GET/api/v1/accountKunci API
Memulangkan baki, host proxy, port, nama pengguna dan kata laluan, serta IP dibenarkan anda.
curl https://royalproxy.online/api/v1/account \ -H "Authorization: Bearer rpk_your_api_key"
{
"username": "royal_user",
"balance_usd": 1300,
"proxy": {
"host": "gate.royalproxy.online",
"http_port": 6100,
"socks5_port": 6200,
"username": "rpexample1",
"password": "your_password"
},
"allowed_ips": [
"203.0.113.10"
]
}Senarai produk dan harga
GET/api/v1/productsTidak perlu kunci
Memulangkan setiap produk bersama had, peringkat harga dan diskaunnya. Harga datang dari jadual yang sama seperti di halaman harga.
curl https://royalproxy.online/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
Memulangkan negara yang tersedia untuk sesuatu produk, bersama nilai bandar yang boleh anda letak dalam nama pengguna proxy.
| Medan | Jenis | Maksud |
|---|---|---|
productPilihan | string | unlimited, residential, isp atau datacenter. Lalai residential. |
curl "https://royalproxy.online/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 bagi pesanan tanpa mengenakan sebarang caj. Gunakan badan yang sama seperti semasa membuat pesanan.
| Medan | Jenis | Maksud |
|---|---|---|
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). |
concurrencyPilihan | integer | Hanya unlimited: 200, 500, 1000 atau 2000. |
bandwidthPilihan | integer | Hanya unlimited, dalam Mbps: 100, 200, 500 atau 1000. |
monthsPilihan | integer | Hanya isp dan datacenter: 1, 3, 6 atau 12. |
countryPilihan | string | Hanya isp dan datacenter: kod negara dua huruf, contohnya jp. Lihat /countries. |
curl -X POST https://royalproxy.online/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.97,
"unit": "day",
"total_usd": 269.1
}Buat pesanan
POST/api/v1/ordersKunci API
Menolak jumlah daripada baki anda dan membuat pesanan. Pesanan baharu bermula sebagai pending (sedang diaktifkan) dan bertukar kepada active apabila sedia. Jika pesanan tidak dapat diaktifkan, ia menjadi refunded dan jumlah penuh dikembalikan ke baki anda. Memulangkan 402 apabila baki terlalu rendah.
| Medan | Jenis | Maksud |
|---|---|---|
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). |
concurrencyPilihan | integer | Hanya unlimited: 200, 500, 1000 atau 2000. |
bandwidthPilihan | integer | Hanya unlimited, dalam Mbps: 100, 200, 500 atau 1000. |
monthsPilihan | integer | Hanya isp dan datacenter: 1, 3, 6 atau 12. |
countryPilihan | string | Hanya isp dan datacenter: kod negara dua huruf, contohnya jp. Lihat /countries. |
curl -X POST https://royalproxy.online/api/v1/orders \
-H "Authorization: Bearer rpk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"order": {
"id": "RP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.97,
"total_usd": 269.1,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
},
"balance_usd": 1030.9
}Senarai pesanan anda
GET/api/v1/ordersKunci API
Memulangkan 100 pesanan terkini anda, yang terbaru dahulu.
| Medan | Jenis | Maksud |
|---|---|---|
statusPilihan | string | pending, active atau refunded. Biarkan kosong untuk mendapatkan semua. |
curl "https://royalproxy.online/api/v1/orders?status=pending" \ -H "Authorization: Bearer rpk_your_api_key"
{
"orders": [
{
"id": "RP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.97,
"total_usd": 269.1,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
}
]
}Dapatkan satu pesanan
GET/api/v1/orders/{id}Kunci API
Memulangkan satu pesanan mengikut id, contohnya untuk menyemak sama ada ia sudah aktif.
| Medan | Jenis | Maksud |
|---|---|---|
idWajib | string | Id pesanan, contohnya RP-7KQ2M-X4HTD. |
curl https://royalproxy.online/api/v1/orders/RP-7KQ2M-X4HTD \ -H "Authorization: Bearer rpk_your_api_key"
{
"order": {
"id": "RP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.97,
"total_usd": 269.1,
"status": "active",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:40:02.511Z"
}
}Bina nama pengguna proxy
GET/api/v1/proxy-userKunci API
Memulangkan nama pengguna proxy dengan pilihan anda serta URL proxy HTTP dan SOCKS5 yang sedia digunakan. Tanpa session, IP berputar setiap permintaan.
| Medan | Jenis | Maksud |
|---|---|---|
productPilihan | string | unlimited, residential, isp atau datacenter. Lalai unlimited. |
countryPilihan | string | Kod negara dua huruf, contohnya jp. |
cityPilihan | string | Nilai bandar dari /countries, contohnya tokyo. Memerlukan country. |
sessionPilihan | string | Apa-apa 1~32 huruf atau nombor. Permintaan dengan session yang sama mengekalkan IP yang sama. |
ttlPilihan | integer | Minit untuk mengekalkan IP sesi, 1~60. Lalai 30. |
curl "https://royalproxy.online/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \ -H "Authorization: Bearer rpk_your_api_key"
{
"username": "rpexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
"password": "your_password",
"http": "http://rpexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.royalproxy.online:6100",
"socks5": "socks5h://rpexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.royalproxy.online:6200"
}Contoh penuh
Contoh ini menyemak harga, membuat pesanan daripada baki dan menyambung melalui IP Jepun.
import requests
API = "https://royalproxy.online/api/v1"
HEAD = {"Authorization": "Bearer rpk_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://royalproxy.online/api/v1";
const HEAD = { Authorization: "Bearer rpk_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 yang dibuat melalui API sama seperti pesanan dari dashboard dan muncul dalam Sejarah. Gantikan rpk_your_api_key dengan kunci anda sendiri.