Lewati ke konten

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

URL dasar

Alamat box Anda, misalnya http://192.168.1.100. Tidak ada server API terpisah.

Tanpa API key

Panggilan memakai username dan password dashboard Anda (HTTP Basic). Panggilan rotasi dan status tidak perlu login kecuali Anda mengaktifkan Force API Auth.

Tiga panggilan untuk memulai

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 pemanggilanURL dasar
Jaringan lokal Andahttp://192.168.1.100 (alamat box)
Port dashboard lainhttp://192.168.1.100:8080 (lihat Amankan dashboard)
Internethttp://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.

PanggilanLogin
Rotasi, status dan reboot: /api/v1/rotate_ip/…, /api/v1/status/…, /api/v1/reboot/…, serta tautan lama /reset, /statusTidak 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_portHTTP 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.
Perlakukan tautan rotasi seperti password. Selama Force API Auth nonaktif, siapa pun yang bisa menjangkau box Anda dan mengetahui tautannya bisa merotasi modem tersebut. Aktifkan Force API Auth jika box terbuka ke internet.

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.

bash
# 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.

Halaman API Reference di panel XProxy dengan tombol Open Documentation dan panggilan quick start info_list, rotate_ip dan status ditandai (data demo)
API Reference: ① Open Documentation · ② panggilan Quick Start: 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.

EndpointFungsinyaPerlu 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_allMerotasi semua modem.Ya
POST /reset_by_port dengan {"port": 4001}Merotasi modem dari port proxy tersebut.Ya
/status_by_port?port=4001Status 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?

bash
# 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:

json
{
  "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.

bash
# 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?

bash
# 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:4002

Tipe 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.

System Setting, tab Security: sakelar Force API Auth, kolom Username dan Password, serta Save ditandai (data demo)
Security → Password Authentication for dashboard: ① Force API Auth · ② Username dan Password · ③ Save.

Apa arti jawaban-jawabannya?

Yang Anda terimaArtinya
{"status": true, "msg": "command_sent"}Rotasi dimulai. IP baru muncul beberapa detik kemudian.
need_upgradePaket Anda tidak punya rotasi IP. Lihat Kelola langganan Anda.
modem_resetting atau MODEM_RESETTINGRotasi sedang berjalan di modem tersebut.
MODEM_STOPPEDModem dihentikan, sehingga tidak bisa dirotasi.
slot_not_found, MODEM_NOT_FOUNDTidak ada modem di port atau posisi tersebut.
invalid_format_proxyProxy harus berformat host:port.
MODEM_DISCONNECTEDModem mati atau tercabut.
COLLISION_IPIP 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 DeniedDomain 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.

Masih bingung?Teknisi bisa memeriksa perangkat Anda dengan PIN sekali pakai, atau chat dengan kami di Telegram.