REST API XProxy: Rotasi IP, Status & Daftar Proxy
REST API XProxy memungkinkan kode Anda sendiri menampilkan daftar mobile proxy, merotasi IP-nya, membaca statusnya dan me-reboot modem lewat panggilan HTTP biasa. Panggil alamat box Anda, tambahkan login dashboard jika diperlukan, dan selesai.
Yang Anda butuhkan: paket Basic atau lebih tinggi (Harga; paket Free tidak punya rotasi IP) dan alamat box Anda. Dari luar jaringan Anda, juga username dan password dashboard.
Singkatnya
Alamat box Anda, misalnya http://192.168.1.100. Tidak ada server API terpisah.
Panggilan memakai username dan password dashboard Anda (HTTP Basic). Panggilan rotasi dan status tidak perlu login kecuali Anda mengaktifkan Force API Auth.
info_list menampilkan daftar modem, rotate_ip mengambil IP baru, status memberi tahu kapan modem siap.
Apa URL dasar API XProxy?
URL dasarnya adalah alamat XProxy box Anda, ditambah port dashboard jika bukan 80:
| Lokasi pemanggilan | URL dasar |
|---|---|
| Jaringan lokal Anda | http://192.168.1.100 (alamat box) |
| Port dashboard lain | http://192.168.1.100:8080 (lihat Amankan dashboard) |
| Internet | http://myproxy.duckdns.org, alamat publik Anda, atau alamat VPS. Jangkau box dengan NAT Forwarding, VPS Forwarding atau Tailscale. |
Tambahkan https:// hanya jika domain Anda melayani HTTPS. Anda bisa mengatur domain terpisah untuk tautan dan panggilan API di Proxy Settings → Address.
Bagaimana cara login ke REST API?
Tidak ada API key terpisah. Panggilan yang memerlukan login memakai username dan password dashboard Anda sebagai autentikasi HTTP Basic, yaitu login yang sama dengan yang Anda atur di Amankan dashboard.
| Panggilan | Login |
|---|---|
Rotasi, status dan reboot: /api/v1/rotate_ip/…, /api/v1/status/…, /api/v1/reboot/…, serta tautan lama /reset, /status | Tidak perlu, sampai Anda mengaktifkan Force API Auth. Setelah itu HTTP Basic. |
Daftar dan semua panggilan lainnya: /api/v1/info_list, /api/v1/proxy_list/…, /proxy_list, /reset_all, /reset_by_port, /status_by_port | HTTP Basic, dari luar jaringan lokal Anda. |
| Perangkat di jaringan lokal Anda, IP yang ada di whitelist, atau perangkat Tailscale (jika diizinkan) | Tanpa login. Force LAN Auth dan Force API Auth mengubah hal itu. |
| Proxy pelanggan dengan token sendiri (paket Business) | Token di dalam tautan. Lihat Cara memakai Selling Platform. |
Apakah ada token API?
Panel sendiri login dengan POST /v2/auth/login. Jawabannya berupa token yang tidak lain adalah username dan password Anda yang ditulis dalam Base64, jadi jaga kerahasiaannya seperti password. Skrip Anda bisa mengirim login yang sama dengan HTTP Basic di setiap panggilan.
# optional: check a login (answer: status true and a token)
curl -X POST 'http://192.168.1.100/v2/auth/login' \
--header 'Content-Type: application/json' \
--data '{"username": "admin", "password": "YOUR_PASSWORD"}'Di mana letak API di panel?
Buka API Reference di sidebar. Halaman ini menautkan dokumentasi lengkap di apidocs.xproxy.io dan menampilkan tiga panggilan yang paling sering dipakai untuk memulai.

info_list, rotate_ip/position, status/position.Endpoint apa saja yang bisa saya panggil?
Semua panggilan memakai GET kecuali disebutkan lain. <position> adalah nomor modem (1 = modem pertama). <proxy> adalah host:port dari proxy-nya.
| Endpoint | Fungsinya | Perlu login? |
|---|---|---|
/api/v1/info_list?page=&limit= | Menampilkan daftar modem: port, IP publik, rotasi terakhir, info perangkat. Jawaban: data dan total. | Ya |
/api/v1/proxy_list/<type> | Teks biasa, satu proxy per baris. Tipe: proxy, socks5, proxy_ipv6, socks5_ipv6, vless, vless_ipv6, ss. | Ya |
/api/v1/rotate_ip/position/<position> | Mengambil IP baru untuk modem tersebut. | Tidak* |
/api/v1/rotate_ip/proxy/<proxy> | Sama, tetapi berdasarkan proxy. | Tidak* |
/api/v1/status/position/<position>/api/v1/status/proxy/<proxy> | IP publik dan kondisi modem. | Tidak* |
/api/v1/reboot/position/<position>/api/v1/reboot/proxy/<proxy> | Me-reboot modem. | Tidak* |
/reset?proxy=<proxy>, /status?proxy=<proxy> | Tautan rotasi dan status versi lama. Tombol LINK di panel menyalin salah satunya. | Tidak* |
/reset_all | Merotasi semua modem. | Ya |
POST /reset_by_port dengan {"port": 4001} | Merotasi modem dari port proxy tersebut. | Ya |
/status_by_port?port=4001 | Status berdasarkan port proxy. | Ya |
Ya = login dashboard, dari luar jaringan lokal Anda. Tidak* = tanpa login sampai Force API Auth aktif. Daftar lengkapnya, beserta setiap parameter, ada di dokumentasi API.
Bagaimana cara menampilkan daftar proxy saya dengan API?
# all modems, first page of 20
curl -u admin:YOUR_PASSWORD 'http://192.168.1.100/api/v1/info_list?page=1&limit=20'
# every modem at once (leave page and limit out)
curl -u admin:YOUR_PASSWORD 'http://192.168.1.100/api/v1/info_list'Dari jaringan lokal Anda sendiri, atau dari IP yang ada di whitelist, Anda bisa menghilangkan -u.
Jawabannya, versi singkat:
{
"data": [
{
"position": 1,
"host": "192.168.1.100",
"proxy_port": 4001,
"socks5_port": 5001,
"public_ip": "203.0.113.25",
"public_ip_ipv6": null,
"device_manufacture": "XProxy-Hilink",
"device_rebooting": false,
"device_resetting": false
}
],
"total": 1
}Kolom lain di setiap item: proxy_port_v6, socks5_port_ipv6, vless_port, vless_port_v6, ss_port, ss_port_v6, last_updated_ip, device_imei, device_number, device_ip dan device_extra_info.
Bagaimana cara merotasi IP dengan API?
Panggil rotate_ip, lalu baca status sampai modem berstatus MODEM_READY dengan IP baru. Panggilan yang sama, timer dan tautan rotasi dijelaskan di Cara mengganti IP.
# by position (1 = first modem)
curl 'http://192.168.1.100/api/v1/rotate_ip/position/1'
# or by proxy (host:port)
curl 'http://192.168.1.100/api/v1/rotate_ip/proxy/192.168.1.100:4001'
# the box answers at once:
# {"status": true, "msg": "command_sent"}
# check on the new IP a few seconds later
curl 'http://192.168.1.100/api/v1/status/position/1'
# {"status": true, "public_ip": "203.0.113.77", "public_ip_v6": null,
# "last_public_ip": "203.0.113.25", "msg": "MODEM_READY"}Tidak perlu login kecuali Force API Auth aktif. Jika aktif, tambahkan -u admin:YOUR_PASSWORD.
Bagaimana cara mendapatkan daftar proxy teks biasa untuk tool saya?
# plain text, one host:port per line
curl -u admin:YOUR_PASSWORD 'http://192.168.1.100/api/v1/proxy_list/proxy'
curl -u admin:YOUR_PASSWORD 'http://192.168.1.100/api/v1/proxy_list/socks5'
# 192.168.1.100:4001
# 192.168.1.100:4002Tipe lainnya: proxy_ipv6, socks5_ipv6, vless, vless_ipv6 dan ss. VLESS dan Shadowsocks menghasilkan tautan berbagi dan memerlukan paket Premium atau lebih tinggi.
Bagaimana cara membuat API meminta login?
Buka General Settings → System Setting → Security, aktifkan Force API Auth ① lalu simpan ③. Simpan username dan password terlebih dahulu ②, agar panggilan Anda punya login untuk dikirim.

Apa arti jawaban-jawabannya?
| Yang Anda terima | Artinya |
|---|---|
{"status": true, "msg": "command_sent"} | Rotasi dimulai. IP baru muncul beberapa detik kemudian. |
need_upgrade | Paket Anda tidak punya rotasi IP. Lihat Kelola langganan Anda. |
modem_resetting atau MODEM_RESETTING | Rotasi sedang berjalan di modem tersebut. |
MODEM_STOPPED | Modem dihentikan, sehingga tidak bisa dirotasi. |
slot_not_found, MODEM_NOT_FOUND | Tidak ada modem di port atau posisi tersebut. |
invalid_format_proxy | Proxy harus berformat host:port. |
MODEM_DISCONNECTED | Modem mati atau tercabut. |
COLLISION_IP | IP sama dengan sebelum rotasi (hanya jika IP unchanged detect aktif). |
HTTP 401, {"message": "Unauthorized…"} | Panggilan ini memerlukan login dashboard. Tambahkan login, atau panggil dari IP yang ada di whitelist. |
| HTTP 403, Access Denied | Domain Only aktif. Panggil dengan nama domain, bukan alamat IP. |
FAQ
Di mana saya mendapatkan API key XProxy?
Tidak ada API key. Gunakan username dan password dashboard Anda sebagai login HTTP Basic, atau panggil tanpa login dari jaringan lokal Anda. Untuk tautan rotasi dan status, login hanya diperlukan setelah Anda mengaktifkan Force API Auth.
Bagaimana cara merotasi IP mobile proxy dari kode?
Kirim GET /api/v1/rotate_ip/position/1 ke box Anda. Box langsung menjawab command_sent. Lalu panggil /api/v1/status/position/1 sampai msg bernilai MODEM_READY dan public_ip sudah berubah.
Seberapa sering saya bisa merotasi?
Rotasi ditolak selama rotasi lain sedang berjalan di modem yang sama (modem_resetting). Anda juga bisa mengatur jeda terpendek antara dua rotasi pada sebuah port di Pengaturan rotasi.
Bisakah saya memanggil API dari luar jaringan saya?
Bisa, setelah box dapat dijangkau dari luar. Gunakan domain atau alamat publik sebagai URL dasar dan tambahkan login dashboard Anda. Aktifkan Force API Auth, agar tautan rotasi juga meminta login.
Bisakah pelanggan saya memakai API?
Mereka mendapat tautan sendiri dengan token untuk proxy mereka (paket Business), jadi mereka tidak pernah memerlukan login dashboard Anda. Lihat Cara memakai Selling Platform.
Apa selanjutnya?
Rotasi dengan timer, lindungi panggilan Anda, atau sambungkan proxy ke sebuah tool.

