Using your proxy
Status & usage
Every device reports whether it's serving, what its exit IP is, and how many bytes it has moved. All of it shows in the dashboard and is available over the API.
Online status
Status is the gateway's view of the tunnel, not just whether the app is open: online means the proxy tunnel is up and serving, offline means it's down, and unknown means the control plane was briefly unreachable. The phone reports a heartbeat continuously, so last_seen tells you if a device is flapping.
Exit-IP history
Each device keeps a deduplicated log of its exit IPs — a new entry only when the IP actually changed. It's the reliable way to confirm that a rotation produced a fresh address.
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/ip-history \
-H "Authorization: Bearer mpx_live_…"
# → { "ip_history": [ { "ip": "77.136.66.63", "carrier": "SFR", "ts": "…" }, … ] }IP alerts
The server watches your fleet and raises an alert when an IP misbehaves — no setup beyond an optional threshold. stale_ip: the device is online but its exit IP hasn't changed for longer than the threshold you set per subscription (dashboard card or stale_ip_alert_minutes on the rotation endpoint; off by default). duplicate_ip: two of your devices report the same exit IP (carrier NAT can hand two SIMs one address) — detected automatically, rotate one device to separate them. rotation_stuck: the device keeps rotating — acked rotate commands or its scheduled rotation — but the exit IP never changes, which usually means it lost the Airplane-toggle capability it needs to change carrier IP. Always on, no threshold to set. Alerts appear in the dashboard's bell and on the affected card, and resolve on their own once the condition clears.
# Alert after 60 min without an IP change
curl -X POST https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/rotation \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "stale_ip_alert_minutes": 60 }'
# Poll open alerts from your own monitoring
curl https://mobileproxy.app/api/v1/alerts -H "Authorization: Bearer mpx_live_…"
# → { "alerts": [ { "kind": "stale_ip", "sub_name": "Galaxy S8",
# "message": "IP unchanged for 75 min (alert threshold 60 min) — still 77.136.66.44",
# … } ], "unseen": 1 }Traffic
Bytes are counted at the gateway, split per proxy — what you see is what the gateway actually relayed. Useful for billing customers you resell to.
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/traffic \
-H "Authorization: Bearer mpx_live_…"
# → { "bytes_sent": …, "bytes_recv": …, "bytes_total": …,
# "per_proxy": [ { "proxy_id": "…", "bytes_sent": …, "bytes_recv": … } ] }GET /api/v1/usage/summary.Received SMS
For phones you own, any SMS the SIM receives — one-time verification codes (OTPs), for example — is forwarded to your dashboard and listed newest-first per device. It relies on the app's optional SMS-receive permission; if you declined it on the phone, the list stays empty.
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/sms \
-H "Authorization: Bearer mpx_live_…"
# → { "messages": [ { "sender": "+15550101", "body": "code 314159", "received_at": "…" }, … ] }Full field-by-field details are in the interactive API console.