Using your proxy
SMS / verification codes
A phone you've paired can forward the SMS its SIM receives — one-time verification codes (OTPs), most usefully — to your account. Read them in the dashboard or over the API, per device.
What this is for
Signing into an account from a mobile IP often triggers an SMS verification code sent to that phone's number. If the phone is one you own and have paired, the app can capture those inbound messages and surface them to you — so you can read the code without physically holding the device. That's the intended use: OTPs on phones you own.
RECEIVE_SMS). The proxy works fully without it. If you decline the prompt on the phone, nothing is captured and the list stays empty — everything else keeps running.How it works
When an SMS lands on the phone, the app reads it (concatenating the parts of a multipart message into one), queues it on the device, and forwards the queued batch to your account over the same cellular-bound link the phone already uses to talk to the control plane. Forwarding happens on the phone's regular poll cycle (~25 s), so a code shows up within a few seconds of arriving. If the phone is briefly offline, messages buffer on the device and send once it's back. Each stored message keeps the sender, the body, and the received-at time.
Reading them in the dashboard
Every device card has a collapsible Received SMS panel. Open it and it lists messages newest-first — sender, timestamp, and full body — and refreshes on its own every ~15 seconds while it's open, so a code that lands mid-signup appears without a page reload. A count badge shows how many messages are on the device. If the phone never got the SMS permission, the panel simply reports that there are no messages yet.
Reading them over the API
The same messages are available per device. The list is newest-first and capped at the most recent 200.
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/sms \
-H "Authorization: Bearer mpx_live_…"
# → {
# "subscription_id": "sub_760c1fc8ddab",
# "messages": [
# { "id": "1042",
# "sender": "+15550101",
# "body": "Your verification code is 314159",
# "received_at": "2026-07-05T14:12:00.000Z" }
# ]
# }Each message carries an id, the sender (the originating address, which can be null for some short-code senders), the message body, and received_at. The endpoint returns an empty messages array — never an error — when the phone hasn't forwarded anything, including when the SMS permission was declined.
mpx_live_…) the same way as the rest of the API, or read it from the dashboard session. The device must belong to your account or you'll get a 404.Field-by-field details are in the interactive API console, alongside the rest of Status & usage.