Mobile Proxy API: One Dedicated US Carrier Line per Object, Rotated From Code
A mobile proxy api, in the sense developers mean it, is a programmatic interface to a proxy whose exit address belongs to a cellular carrier. At Mobile Proxies US the API wraps a concrete thing: one SIM on AT&T, T-Mobile or Verizon, in one device we run in one of eight US metros, assigned to one account for the plan term. The API lists those lines, reports each line's exit IP and connection state, and hands you a rotation link for each one. A GET on that link needs no key. Every line also has a timer, and the ordinary HTTP(S), SOCKS5 and VLESS endpoints that any client can use. This page is the reference overview: what the objects are, what the calls do, how rotation and geolocation behave, what the line costs, and where the devices are.
Prices per line
One price list across all carriers and metros. 4G and 5G differ in speed only; the API, the endpoints and the rotation are identical. Data is not metered on any plan.
| Plan | 4G LTE | 5G | Includes |
|---|---|---|---|
| Hourly | $2 for the first 2 hours, then $2/hour | $3 for the first 2 hours, then $3/hour | Max 4 hours per purchase; no auto-renewal; hold the line a full day and the hours count toward it |
| 1 day | $5 | $6 | Unlimited data, unlimited rotation, HTTP(S) and SOCKS5 |
| 7 days | $29 | $33 | Same line and address history all week |
| 30 days | $66 | $77 | Lowest price per day; auto-renew optional |
Create an account Plans on the homepage
The licence object
GET /proxies/my returns {"proxyList": [...]} with one object per licence: uuid, license_status, carrier, city, country, network_tier, host, http_port, socket_port, authentication_user (username:password), start_date, expired_date, status (CONNECTED or DISCONNECTED), rotation_link, ip_history_link, vless_link, capabilities, sim_location and min_time_change_ip. The uuid is the stable identifier for the life of the plan, including across free moves between metros. Host and ports can change on a move, because the line lands on another server, so re-read the list after one.
There is one API key per account, generated on the API page of the dashboard at cp.mobileproxiesus.com. It is sent in the x-api-key header to the base URL https://cp.mobileproxiesus.com/backend/api_v1. It sees every line on the account. Treat it as a password, and tell support at once if it leaks.
The three calls that cover most integrations
List: GET /proxies/my returns every line. Call it at start-up, cache the result keyed by uuid, and compare it with your own configuration to catch an expired plan before a job fails at night. Status: GET /proxy/status?license=UUID returns ip, httpPort, sockPort and status with no key and no credentials; poll it while a rotation lands. Rotate: a plain GET on the line's rotation_link tells the device to re-attach. On phone lines it replies in about a second and the new address lands 10 to 15 seconds later; adding confirm_ip=1 holds the reply until the new IP is confirmed.
Errors are JSON with a message field. A refused rotation is HTTP 400. Keyed requests share a budget of 300 per minute per account; past that you get 429 with a Retry-After header, and waiting that long is the correct response. A suspended account's key gets 403 with code account_suspended. /proxy/status returns 404 for an expired, released or reassigned licence. Beyond these three calls the same key reaches GET /proxies/UUID/ip-history for the audited address log, POST /proxy/health, POST /proxy/purchase, POST /license/extendproxy and POST /proxy/move-location.
Rotation: link, script, timer, hand
Four triggers, one effect. The rotation_link is a URL per line, on a rotation host that can differ from the dashboard host; a GET on it rotates that line, with no key, which makes it right for cron, webhooks and tools that only know how to hit a URL. The licence uuid in it is the credential, so store it as a secret and read it from the list call rather than building it. A script calls the same link and follows up on /proxy/status. The timer, set in the dashboard or with POST /license/update-rotation-time (uuid and minute, 5 at the least, 0 to switch off), rotates on an interval with no call from you. A click in the dashboard, the mobile app or the Telegram bot does it by hand.
There is no limit on how many rotations you make. min_time_change_ip is the wait in minutes the rotation link holds that line to, 0 meaning none, and phone lines also have their own short cooldown of 1 to 2 minutes; a rotation inside either wait is refused. Do not retry a rotation that is still running. Left alone, the address is sticky for as long as the carrier keeps the session, typically hours. The new address comes from the same carrier's pool for the same metro; to change the metro, move the line, free, with remaining time kept. Always confirm a rotation landed, by polling status or by an IP echo through the line, before sending the next request.
Endpoints: HTTP(S), SOCKS5 with UDP, VLESS
Every line listens on an HTTP(S) port and a SOCKS5 port with the same login and the same exit IP. HTTP for browsers and ordinary HTTP clients; SOCKS5 for anything that is not HTTP, for UDP (QUIC, WebRTC, DNS) where capabilities.socks_udp says the line's server supports it, and for resolving names on the carrier side with the socks5h scheme. Chromium-based browsers do not support authenticated SOCKS5, so headless automation takes the HTTP endpoint with credentials at launch, or a local unauthenticated port.
That local port comes from vless_link, which is null when the line's server does not offer VLESS. xray-core on a server turns it into 127.0.0.1 SOCKS and HTTP inbounds with no auth, so scripts and browsers never see a password and all traffic to the line is encrypted. Phones and laptops import the same link into Hiddify, Shadowrocket or similar clients for a whole-device tunnel. Rotation works unchanged through the tunnel.
Geolocation and classification, as seen from code
The exit IP belongs to AT&T Mobility (AS20057), T-Mobile USA (AS21928) or Verizon Wireless (AS22394, sometimes AS6167). Reputation and geolocation services classify it as mobile or cellular and country US. State is reliable on all three carriers. City is most consistently the metro on T-Mobile; AT&T is usually the metro, except that AT&T lines in Boston read as New York because of AT&T's gateway layout; Verizon addresses can be listed under a regional hub some hundreds of miles away within the region.
Tests should therefore assert country, state, connection type and ASN, and log the city. In the Mobile Proxies US API, city is the location as sold and sim_location says where the address shows now; GET /proxies/UUID/ip-history adds what ipinfo, MaxMind and DB-IP each said for every address. All of it belongs in your log. Fraud scores on carrier addresses are crowd aggregates over the subscribers behind the same NAT address and say little about your line; the fields that matter are connection type, ASN, country and any recent abuse flag.
Carriers and metros
Carriers: AT&T, T-Mobile, Verizon, chosen per line. Metros: New York, Los Angeles, Chicago, Houston, Phoenix, Miami, Boston and North Carolina (Charlotte and the Research Triangle). Devices: 4G or 5G USB modem, cellular router or Android phone, chosen at checkout. Pick the carrier by the job: T-Mobile for a metro-accurate city string, the carrier named in a user report when reproducing one, any of the three for a general US mobile vantage point. Pick the metro by the state you need; move for free when the need changes.
Plans, speeds and payment
4G: $5 a day, $29 a week, $66 a month. 5G: $6 a day, $33 a week, $77 a month. Hourly, for a quick test: 4G $2 for the first two hours then $2 an hour, 5G $3 then $3 an hour, up to four hours per purchase, never auto-renewing; keep the line all day and the hours paid count toward the day plan. 4G reads up to 25 Mbps download, 5G up to 50 Mbps, varying with cell load. A 5G+ add-on exists for 5G lines and describes an average of 70 Mbps or more download on selected lines, not guaranteed, not on hourly plans.
Data is not metered. A fair-use rule covers heavy days, defined as 60 GB in one UTC day and counted in total over the plan period: the first six are logged, the seventh brings a warning, from the eighth the line is slowed to 20 Mbps until a clean UTC day passes, from the tenth it is held at 18 Mbps for the rest of the period. Pay by card, PayPal, Bitcoin, USDT including TRC-20, Ethereum, Zelle or bank wire; the line is live, in the dashboard and in the API, when payment clears.
Support and account lifecycle
Human support 24 hours a day by email at [email protected] and through the Telegram bot at @mobileproxiesus_bot, which also lists and rotates your lines from a phone. Plans renew from balance unless you switch renewal off per line. If a renewal cannot be paid the line runs 24 hours past the due time, is suspended for 24 more hours with the device held, and is forfeited at 48 hours; /proxy/status returns 404 for its uuid afterwards and no debt is pursued. Unused time on a cancelled plan returns as prorated balance credit; the Refund Policy has the details.
Mobile proxy API: questions developers ask
Is the API included or an add-on?
Included with every line and every plan, including hourly. The key is generated in the dashboard.
Can I rotate without exposing the API key?
Yes. A GET on the line's rotation_link needs no key, so it can live in cron or a webhook. The licence uuid in it is the credential, so keep the link private too.
How fast is a rotation?
On a phone line the reply comes in about a second and the new IP lands 10 to 15 seconds later. Confirm by polling /proxy/status or by an IP echo through the line before sending the next request.
Does the API buy, extend or move lines?
Yes. POST /proxy/purchase buys, POST /license/extendproxy extends and POST /proxy/move-location moves, all with the same key and paid from balance. Most teams still start in the dashboard.
Is there a rate limit?
300 requests per minute per account on keyed requests, with 429 and a Retry-After header past that. Spending endpoints such as purchases have smaller budgets of their own.
How do I give Playwright or Puppeteer SOCKS5?
Chromium does not support authenticated SOCKS5. Use the HTTP endpoint with launch-time credentials, or run xray locally from the line's VLESS link and point the browser at the unauthenticated 127.0.0.1 port.
Which carrier should a test harness buy?
T-Mobile when the city string must match the metro; the carrier a user report names when reproducing it; otherwise any of the three. State and country are reliable on all.
What happens to my integration when the plan ends?
license_status turns to EXPIRED and /proxy/status returns 404. List lines at start-up and compare with configuration to catch it early, or subscribe to the license.expiring webhook, then extend in the dashboard or over the API.
