API
Reference API
Kompletní reference REST API mobileproxy.app, endpoint po endpointu. Každá cesta, pole i příklad zde odpovídá živému OpenAPI dokumentu, ze kterého je API postaveno. Základní URL https://mobileproxy.app/api/v1.
Ověření a základní URL
Každý endpoint je pod https://mobileproxy.app/api/v1 a vyžaduje bearer token. Vytvořte ho v dashboardu v sekci Pro vývojáře → API tokeny nebo přes POST /tokens, když jste přihlášeni. Tajný klíč se zobrazí jen jednou — uložte si ho. Posílejte ho s každým požadavkem:
Authorization: Bearer mpx_live_…Tokeny začínající na mpx_live_ jsou tokeny vašeho účtu. Endpointy /device/* volá samotná aplikace pro Android a ověřuje se tokenem zařízení pro daný telefon (mpxdev_…) vydaným při párování — vy je běžně nevoláte.
Chyby jsou ve formátu JSON se srozumitelnou zprávou a strojovým kódem:
{ "error": "No such device.", "code": "not_found" }| Pole | Typ | Popis |
|---|---|---|
| 401 | unauthorized | Token chybí, je poškozený nebo zrušený. |
| 403 | forbidden | Token je platný, ale nemá oprávnění. |
| 404 | not_found | Zdroj na tomto účtu neexistuje. |
| 502 | control_plane_unavailable | Brána / řídicí vrstva je krátce nedostupná — zkuste to znovu. |
Účet
GET /me — kdo jsem? Vrací účet a živé počty předplatných a API tokenů.
curl https://mobileproxy.app/api/v1/me \
-H "Authorization: Bearer mpx_live_…"
# → { "id": "u_8c31f0", "email": "[email protected]",
# "created_at": "2026-06-28T14:02:11.000Z",
# "subscriptions": 3, "api_tokens": 2,
# "plan": "beta", "balance": "0.00" }Předplatná
Předplatné (id sub_…) je trvalý slot, který vlastníte: jeho přátelský name, nastavení a proxy přetrvávají i při výměně telefonu pod ním. Jeho device je telefon, který ho aktuálně pohání (nebo null, když není spárováno), a je vyměnitelný — výměna zachová každý proxy endpoint.
Vypište předplatná — každé se spárovaným zařízením sloučeným s živým stavem brány (online = proxy tunel běží):
curl https://mobileproxy.app/api/v1/subscriptions \
-H "Authorization: Bearer mpx_live_…"
# → { "subscriptions": [ {
# "id": "sub_760c1fc8ddab", "name": "Paris SFR",
# "status": "active", "wifi_split": true, "created_at": "…",
# "device": { "id": "phone_ac862619408e", "model": "Galaxy S8",
# "hardware_id": "352091081234567", "hardware_type": "imei",
# "status": "online", "exit_ip": "77.136.66.63",
# "carrier": "SFR", "last_seen": "…", "paired_at": "…" } } ] }Vytvořte předplatné (nespárované) a pak spárujte nebo vyměňte telefon. POST /subscriptions/{id}/pair vrátí PIN platný ~3 minuty; zadaný v aplikaci pro Android přiváže telefon. U slotu, který již zařízení má, jde o výměnu (mode: "swap") — starý telefon je vyřazen a každá proxy si zachová svou host:port a přihlašovací údaje:
curl -X POST https://mobileproxy.app/api/v1/subscriptions \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" -d '{ "name": "Paris SFR" }'
# → { "id": "sub_760c1fc8ddab", "status": "unpaired", "device": null, … }
# Pair (or swap) a phone into it
curl -X POST https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/pair \
-H "Authorization: Bearer mpx_live_…"
# → { "subscription_id": "sub_760c1fc8ddab", "mode": "new",
# "pairing": { "pin": "483-119-702", "expires_at": "…" }, … }Získejte, upravte nebo zrušte jedno předplatné. POST mění název, volný description (max 200 znaků, null ho vymaže), předvolbu wifi_split (zařazenou do fronty pro spárovaný telefon, uplatní se při jeho dalším dotazu ~25 s) nebo shared_speed_kbps — jak se rychlost zařízení dělí mezi jeho proxy. -1 (doporučeno) ji sdílí automaticky: řídicí vrstva měří reálnou rychlost zařízení z živé propustnosti (~3 s převažování), proxy zaneprázdněné ve stejný čas se sbíhají k rovným podílům a proxy pracující sama dostane plnou rychlost. Hodnota > 0 rozdělí ten pevný celkový součet zařízení stejným způsobem. Hodnoty speed_limit_kbps jednotlivých proxy se zachovávají, ale při zapnutém sdílení se neuplatňují; 0 sdílení vypne. DELETE zruší zařízení i proxy, uvolní porty brány a smaže historii slotu — nevratné:
# Fetch one subscription
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID \
-H "Authorization: Bearer mpx_live_…"
# Rename / describe / set Wi-Fi split / share the device's speed equally (auto)
curl -X POST https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "name": "Paris SFR", "description": "Client X — farm slot 2", "wifi_split": true, "shared_speed_kbps": -1 }'
# Cancel (irreversible)
curl -X DELETE https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID \
-H "Authorization: Bearer mpx_live_…"
# → { "deleted": true, "id": "sub_760c1fc8ddab" }Proxy
Proxy je jeden endpoint s jedním protokolem (SOCKS5 nebo HTTP) na zařízení, s vlastním ověřením, whitelistem zdrojových IP, rychlostním limitem a doménovými pravidly. Kolik jich může zařízení obsluhovat najednou, je oprávnění tarifu (10 u Standard, 20 u Pro) — vytvořte po jedné pro každého zákazníka nebo nástroj a kteroukoli zrušte, aniž byste se dotkli ostatních. Vytvoření nad limit tarifu vrátí 409 proxy_limit_reached.
Vytvořte proxy — vygeneruje čerstvé uživatelské jméno/heslo; heslo se zde jednou vrátí v čitelné podobě. Zvolte protocol (socks5 nebo http) a volitelně předejte traffic_limit_bytes, čímž jí od začátku dáte pevný datový strop:
curl -X POST https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "protocol": "socks5", "traffic_limit_bytes": 5368709120 }'
# → { "id": "acc_5f734b9270e8", "subscription_id": "sub_760c1fc8ddab",
# "protocol": "socks5",
# "host": "173.249.36.102", "host_v6": "2a02:c207:2319:6018::1",
# "port": 30000,
# "username": "u04c770", "password": "k7Qp2mXe9wZ4",
# "endpoint": "socks5h://u04c770:[email protected]:30000",
# "endpoint_ipv6": "socks5h://u04c770:k7Qp2mXe9wZ4@[2a02:c207:2319:6018::1]:30000",
# "ip_whitelist": [], "speed_limit_kbps": 0,
# "domain_mode": "none", "domain_rules": [],
# "status": "active", "traffic_limit_bytes": 5368709120, "bytes_used": 0,
# "over_limit": false, "created_at": "…" }endpoint je IPv4 URI, endpoint_ipv6 stejný port přes IPv6 (v6 literál je v hranatých závorkách podle syntaxe URL). Whitelist zdrojových IP přijímá adresy a CIDR pro IPv4 i IPv6 a cíle mohou být také IPv6: SOCKS5 CONNECT na IPv6 literál nebo doménu jen s AAAA vystoupí přes IPv6 operátora telefonu, pokud ji SIM má.Upravte politiku proxy — režim ověření, whitelist IP, rychlostní limit a doménová pravidla, uplatněno naživo na bráně (protocol je pevný — místo změny ji smažte a vytvořte znovu):
curl -X PATCH \
https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies/PROXY_ID \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "speed_limit_kbps": 2000,
"domain_mode": "whitelist", "domain_rules": ["api.example.com"] }'Vypište proxy — na jednom zařízení nebo každou proxy napříč celým účtem:
# One device
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies \
-H "Authorization: Bearer mpx_live_…"
# Account-wide
curl https://mobileproxy.app/api/v1/proxies \
-H "Authorization: Bearer mpx_live_…"
# → { "proxies": [ { …Proxy… }, … ] }Zrušte proxy — okamžitě zastaví tento jeden posluchač; každá další proxy na zařízení funguje dál:
curl -X DELETE \
https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies/PROXY_ID \
-H "Authorization: Bearer mpx_live_…"
# → { "deleted": true, "id": "acc_5f734b9270e8" }Limity spotřeby a vypršení jednotlivých proxy
Dejte kterékoli proxy limit spotřeby — ideální, když přeprodáváte přístup a každému zákazníkovi měříte datový příděl. Nastavte nebo změňte ho kdykoli (0 ho vymaže), při vytvoření, přes PATCH nebo vyhrazeným endpointem níže. Když bytes_used dosáhne limitu, je proxy zablokována: zachová si port a přihlašovací údaje, ale odmítá každý požadavek a over_limit se změní na true. Zvyšte limit nad použité množství — nebo ho vymažte — a proxy se okamžitě obnoví, stejný endpoint, žádná rekonfigurace. Výpis proxy také uvádí u každé traffic_limit_bytes, živé bytes_used a over_limit.
curl -X POST \
https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies/PROXY_ID/limit \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "traffic_limit_bytes": 10737418240 }' # 10 GB — or 0 to remove
# → { "proxy_id": "acc_5f734b9270e8", "subscription_id": "sub_760c1fc8ddab",
# "traffic_limit_bytes": 10737418240, "over_limit": false }Časové vypršení — dejte proxy okamžik expires_at (ISO 8601, v budoucnosti) při vytvoření nebo přes PATCH; null vymaže čekající vypršení. V ten okamžik je proxy vyřazena — trvale, na rozdíl od vratného zablokování limitem spotřeby. Pro obnovení zákazníka vytvořte novou proxy (nový port a přihlašovací údaje). Ideální pro prodej denních/týdenních propustek:
# A proxy that stops serving in 7 days
curl -X POST https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "protocol": "socks5", "expires_at": "2026-07-13T09:00:00Z" }'
# Extend or clear it later
curl -X PATCH \
https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies/PROXY_ID \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "expires_at": "2026-07-20T09:00:00Z" }' # or null to removeVPN konfigurace (WireGuard a OpenVPN)
Proměňte jakoukoli proxy v VPN pro celé zařízení. Každá konfigurace je soubor WireGuard (.conf) nebo OpenVPN (.ovpn), který tuneluje celé zařízení — telefon, notebook, router — přes mobilní IP operátora dané proxy. Proxy může mít 1 od každého druhu — jednu konfiguraci WireGuard a jednu OpenVPN. Konfigurace vyžadují proxy typu SOCKS5 + uživatelské jméno/heslo, aby se k ní brána mohla ověřit. Vytvoření konfigurace vyžaduje VPN doplněk u objednávky zařízení (bez něj 403 vpn_addon_required) — stávající konfigurace zůstávají ve výpisu, ke stažení i ke zrušení.
config_text — celý soubor s privátním klíčem / certifikátem klienta. Nelze ho znovu odvodit; uložte si ho při vytvoření. Přesně stejný soubor si můžete kdykoli znovu stáhnout z endpointu /file, ale ztracený soubor lze nahradit jen zrušením a vytvořením nové konfigurace.# Create a WireGuard config on a proxy
curl -X POST \
https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies/PROXY_ID/vpn-configs \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "kind": "wireguard", "name": "My laptop" }'
# → { "id": "vpn_9f2c1a0b7e", "kind": "wireguard", "client_ip": "10.77.0.2",
# "config_text": "[Interface]\nPrivateKey = …\n[Peer]\n…", … }
# ...or OpenVPN
curl -X POST \
https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies/PROXY_ID/vpn-configs \
-H "Authorization: Bearer mpx_live_…" -H "Content-Type: application/json" \
-d '{ "kind": "openvpn" }'
# List a proxy's configs (metadata + per-kind usage vs the 1-per-kind cap)
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies/PROXY_ID/vpn-configs \
-H "Authorization: Bearer mpx_live_…"
# Re-download the file straight to disk
curl -OJ \
https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies/PROXY_ID/vpn-configs/vpn_9f2c1a0b7e/file \
-H "Authorization: Bearer mpx_live_…"
# Revoke (drops the WireGuard peer / OpenVPN cert and kills any live session)
curl -X DELETE \
https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/proxies/PROXY_ID/vpn-configs/vpn_9f2c1a0b7e \
-H "Authorization: Bearer mpx_live_…"Soubor použijte jako obvykle: wg-quick up ./mpx-9f2c1a0b.conf pro WireGuard nebo importujte .ovpn do libovolného OpenVPN klienta. Veškerý provoz zařízení pak vystupuje přes IP operátora telefonu a rotace IP dané proxy rotuje i výstup VPN.
Rotace IP
Rotace požádá operátora o čerstvou IP. Je na úrovni zařízení — každá proxy na zařízení dostane novou IP — zařadí se do fronty pro telefon a uplatní se během jednoho dotazovacího cyklu (~25 s).
exit_ip na zařízení nebo z /ip-history.Rotovat nyní — zařaďte jednorázovou rotaci do fronty:
curl -X POST https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/change-ip \
-H "Authorization: Bearer mpx_live_…"
# → { "status": "rotating", "subscription_id": "sub_760c1fc8ddab",
# "command_id": "cmd_a41b",
# "note": "IP rotation on mobile networks is best-effort; …" }Rotace na unikátní IP — předejte unique: true, aby rotace pokračovala, dokud výstupní IP nebude taková, která se nevyskytla v posledních window_min minutách historie IP tohoto předplatného (výchozí 60, max 1440), s opakováním až max_attemptskrát (výchozí 3, max 5). Každý pokus stojí celý rotační cyklus (~30–90 s); průběh sledujte dotazem na variantu GET. Operátoři mohou IP legitimně přidělit znovu, takže exhausted je možný poctivý výsledek:
curl -X POST https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/change-ip \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "unique": true, "window_min": 60, "max_attempts": 3 }'
# → { "status": "rotating", "request_id": "rr_18d2c4", "command_id": "cmd_a41b",
# "unique": { "window_min": 60, "max_attempts": 3 }, … }
# Poll for the outcome (active | succeeded | exhausted | superseded | expired)
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/change-ip \
-H "Authorization: Bearer mpx_live_…"
# → { "request_id": "rr_18d2c4", "status": "succeeded",
# "attempts_used": 2, "attempts_max": 3, "window_min": 60,
# "started_ip": "77.136.66.63", "result_ip": "77.136.67.101", … }Rotační odkazy — tokenizovaná URL, která při načtení rotuje IP tohoto zařízení, bez hlavičky s ověřením (tajemstvím je token). Vložte ji do libovolného nástroje, který podporuje „rotační URL“. Vypisujte je, vytvářejte a rušte:
# List rotation links
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/rotation-links \
-H "Authorization: Bearer mpx_live_…"
# → { "rotation_links": [ { "token": "rk_9f2c81d4e7",
# "url": "https://mobileproxy.app/rotate/rk_9f2c81d4e7", "created_at": "…" } ] }
# Create one
curl -X POST https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/rotation-links \
-H "Authorization: Bearer mpx_live_…"
# → { "token": "rk_9f2c81d4e7", "url": "https://mobileproxy.app/rotate/rk_9f2c81d4e7" }
# Revoke one
curl -X DELETE https://mobileproxy.app/api/v1/rotation-links/ROTATION_TOKEN \
-H "Authorization: Bearer mpx_live_…"
# → { "deleted": true, "token": "rk_9f2c81d4e7" }Naplánovaná (časovaná) rotace — nastavte interval automatické rotace v minutách (0 ji vypne; max 1440). Přetrvává jako rotation_interval_min na zařízení a odešle příkaz set_rotation_interval, který telefon uplatní při dalším dotazu, takže se v tomto rytmu vytáčí sám:
# Read the current settings
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/rotation \
-H "Authorization: Bearer mpx_live_…"
# → { "subscription_id": "sub_760c1fc8ddab", "interval_minutes": 0,
# "airplane_seconds": 5, "stale_ip_alert_minutes": 0 }
# Rotate automatically every 15 minutes
curl -X POST https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/rotation \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "interval_minutes": 15 }'
# → { "status": "set", "subscription_id": "sub_760c1fc8ddab",
# "interval_minutes": 15, "airplane_seconds": 5,
# "stale_ip_alert_minutes": 0, "command_id": "cmd_a41b" }Timeout režimu Letadlo — jak dlouho telefon drží zapnutý režim Letadlo při každé změně IP (airplane_seconds, 3–60, výchozí 5). Někteří operátoři uvolní starou zápůjčku až po delším přidržení; zvyšte to, pokud rotace stále vracejí stejnou IP. Platí pro naplánované, dashboardové i API rotace stejně:
curl -X POST https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/rotation \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "airplane_seconds": 20 }'
# → { "status": "set", "subscription_id": "sub_760c1fc8ddab",
# "interval_minutes": 15, "airplane_seconds": 20,
# "stale_ip_alert_minutes": 0, "command_id": "cmd_b52c" }Vlastní DNS — resolvery, které telefon používá pro doménové dotazy přes proxy (až 3 IP literály; telefon uplatní první a znovu vytočí svůj tunel). Prázdný seznam obnoví výchozí DNS operátora:
# Read
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/dns \
-H "Authorization: Bearer mpx_live_…"
# → { "subscription_id": "sub_760c1fc8ddab", "dns_servers": [] }
# Set (and later send [] to go back to carrier DNS)
curl -X POST https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/dns \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "dns_servers": ["1.1.1.1", "8.8.8.8"] }'
# → { "status": "set", "subscription_id": "sub_760c1fc8ddab",
# "dns_servers": ["1.1.1.1", "8.8.8.8"], "command_id": "cmd_c63d" }Monitoring
Historie výstupních IP — nedávné výstupní IP hlášené telefonem, bez duplicit (nový řádek jen tehdy, když se IP skutečně změnila). Spolehlivý způsob, jak ověřit, že rotace proběhla:
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/ip-history \
-H "Authorization: Bearer mpx_live_…"
# → { "subscription_id": "sub_760c1fc8ddab", "ip_history": [
# { "ip": "77.136.66.63", "carrier": "SFR", "ts": "…" }, … ] }Volitelné parametry dotazu: from/to (ISO 8601) ohraničují okno, limit omezuje počet položek (výchozí 50, max 500) a group=day místo toho vrací denní počty změn — předejte tz jako svůj posun od UTC v minutách, aby se dny seskupily podle vašeho časového pásma. Tímto je poháněn kalendář historie IP v dashboardu:
# Entries for one day
curl "https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/ip-history?from=2026-07-04T22:00:00Z&to=2026-07-05T22:00:00Z&limit=500" \
-H "Authorization: Bearer mpx_live_…"
# Per-day counts for a month (tz = minutes east of UTC, e.g. 120 for CEST)
curl "https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/ip-history?group=day&tz=120&from=2026-06-30T22:00:00Z&to=2026-07-31T22:00:00Z" \
-H "Authorization: Bearer mpx_live_…"
# → { "subscription_id": "sub_760c1fc8ddab", "days": [
# { "day": "2026-07-03", "changes": 9 }, { "day": "2026-07-05", "changes": 2 } ] }Upozornění na IP — server sleduje váš park (~každých 60 s) a otevře upozornění, když je potřeba pozornost: stale_ip, když je zařízení online, ale jeho výstupní IP se nezměnila déle, než je práh předplatného (nastavte stale_ip_alert_minutes na /rotation; 0 = vypnuto, 2–10080), a duplicate_ip, když dvě z vašich zařízení hlásí stejnou výstupní IP (NAT operátora může dvěma SIM přidělit jednu adresu — rotujte jednu, abyste je oddělili). Upozornění se automaticky vyřeší, když podmínka pomine; zobrazují se také ve zvonku upozornění v dashboardu:
# Turn on stale-IP alerts: warn 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 (feed this to your own monitoring)
curl https://mobileproxy.app/api/v1/alerts \
-H "Authorization: Bearer mpx_live_…"
# → { "alerts": [
# { "id": "42", "sub_id": "sub_760c1fc8ddab", "sub_name": "Galaxy S8",
# "kind": "stale_ip",
# "message": "IP unchanged for 75 min (alert threshold 60 min) — still 77.136.66.44",
# "detail": { "ip": "77.136.66.44", "age_min": 75, "threshold_min": 60 },
# "created_at": "…", "resolved_at": null, "seen_at": null },
# { "id": "41", "sub_id": "sub_9d8e7f6a5b4c", "sub_name": "Galaxy A32",
# "kind": "duplicate_ip",
# "message": "Exit IP 77.136.67.33 is also used by “Galaxy S8” — rotate one device to separate them",
# "detail": { "ip": "77.136.67.33",
# "shared_with": [ { "sub_id": "sub_760c1fc8ddab", "name": "Galaxy S8" } ] },
# "created_at": "…", "resolved_at": null, "seen_at": null } ],
# "unseen": 2 }
# Include resolved history; filter to one subscription
curl "https://mobileproxy.app/api/v1/alerts?status=all&subscription=SUBSCRIPTION_ID" \
-H "Authorization: Bearer mpx_live_…"
# Reset the dashboard's unseen badge (never resolves anything)
curl -X POST https://mobileproxy.app/api/v1/alerts/seen \
-H "Authorization: Bearer mpx_live_…"
# → { "status": "ok", "marked": 2 }Provoz zařízení — bajty počítané na bráně, rozdělené po proxy. Praktické pro fakturaci zákazníkům, kterým přeprodáváte:
curl https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/traffic \
-H "Authorization: Bearer mpx_live_…"
# → { "subscription_id": "sub_760c1fc8ddab",
# "bytes_sent": 10485760, "bytes_recv": 262144000, "bytes_total": 272629760,
# "per_proxy": [ { "proxy_id": "acc_5f734b9270e8",
# "bytes_sent": 10485760, "bytes_recv": 262144000 } ] }Denní rozpad provozu — odeslané/přijaté bajty po dnech, z minutových vzorků uchovávaných na webové vrstvě, takže série přežije výměny zařízení i vyřazení proxy. data_since označuje nejstarší vzorek — dny před ním nemají žádná data, což není totéž jako nulový provoz. Předejte tz (svůj posun od UTC v minutách), aby se dny seskupily podle vašeho časového pásma; okna až 92 dní:
curl "https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/traffic/by-day?tz=120" \
-H "Authorization: Bearer mpx_live_…"
# → { "subscription_id": "sub_760c1fc8ddab", "tz": 120, "data_since": "…",
# "days": [ { "day": "2026-07-06", "bytes_sent": 10485760,
# "bytes_recv": 262144000, "bytes_total": 272629760 } ],
# "total": { "bytes_sent": 10485760, "bytes_recv": 262144000,
# "bytes_total": 272629760 } }Denní dostupnost — sekundy nahoru/dolů po dnech složené ze záznamu srdečního tepu zařízení (sjednoceno napříč výměnami zařízení). Měří živost srdečního tepu zařízení (rytmus ~25 s, práh mezery ~90 s), ne použitelnost tunelu od začátku do konce. current je stav právě teď; uptime_pct pokrývá pozorovanou část každého dne:
curl "https://mobileproxy.app/api/v1/subscriptions/SUBSCRIPTION_ID/uptime?tz=120" \
-H "Authorization: Bearer mpx_live_…"
# → { "subscription_id": "sub_760c1fc8ddab", "tz": 120, "current": "up",
# "data_since": "…",
# "days": [ { "day": "2026-07-06", "up_seconds": 31547,
# "down_seconds": 253, "uptime_pct": 99.2 } ] }Spotřeba za celý účet — souhrn napříč každým zařízením:
curl https://mobileproxy.app/api/v1/usage/summary \
-H "Authorization: Bearer mpx_live_…"
# → { "subscriptions": 3, "proxies": 5,
# "bytes_sent": 31457280, "bytes_recv": 786432000, "bytes_total": 817889280 }SMS / OTP
Přijaté SMS — příchozí zprávy na SIM tohoto telefonu, nejnovější první. Užitečné pro čtení jednorázových ověřovacích kódů (OTP) na telefonech, které vlastníte. Spoléhá na volitelné oprávnění aplikace přijímat SMS; pokud bylo na zařízení odmítnuto, seznam zůstane prázdný:
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" }, … ] }Servery
Umístění bran — místa, ze kterých jsou vaše proxy obsluhovány:
curl https://mobileproxy.app/api/v1/servers/locations \
-H "Authorization: Bearer mpx_live_…"
# → { "locations": [ { "id": "eu-de-1", "host": "173.249.36.102",
# "region": "EU · Germany (Frankfurt)", "country": "DE",
# "protocols": ["socks5"], "pool": "mobile" } ] }API tokeny
Vypisujte, vytvářejte a rušte API tokeny. Tajný klíč nově vytvořeného tokenu se zobrazí jednou — ihned si ho uložte; už nikdy nebude získatelný. Zrušení nabývá účinnosti okamžitě:
# List (metadata only — never the secret)
curl https://mobileproxy.app/api/v1/tokens \
-H "Authorization: Bearer mpx_live_…"
# → { "tokens": [ { "id": "tk_51ad", "name": "storefront",
# "prefix": "mpx_live_9f2c", "created_at": "…", "last_used_at": "…" } ] }
# Create (secret shown once)
curl -X POST https://mobileproxy.app/api/v1/tokens \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "name": "storefront" }'
# → { "id": "tk_51ad", "name": "storefront",
# "token": "mpx_live_9f2c81d4e7…", "prefix": "mpx_live_9f2c",
# "scope_subscription_id": null, "readonly": false,
# "note": "Store this token now — it will not be shown again." }
# Revoke
curl -X DELETE https://mobileproxy.app/api/v1/tokens/TOKEN_ID \
-H "Authorization: Bearer mpx_live_…"
# → { "deleted": true, "id": "tk_51ad" }Omezené klíče a klíče jen pro čtení
Delegujte přístup, aniž byste sdíleli svůj účet. Předejte subscription_id, abyste token omezili na jedno předplatné, a readonly: true, abyste ho omezili na požadavky GET. Omezený token dosáhne jen na endpointy vlastního předplatného (plus /me); token jen pro čtení je odmítnut při jakémkoli zápisu. Obojí jsou omezení navrstvená na váš účet — omezený klíč se nikdy nedostane k datům jiného účtu.
# A read-only key for ONE subscription — safe to hand a teammate or a monitor
curl -X POST https://mobileproxy.app/api/v1/tokens \
-H "Authorization: Bearer mpx_live_…" \
-H "Content-Type: application/json" \
-d '{ "name": "customer-42",
"subscription_id": "sub_760c1fc8ddab",
"readonly": true }'
# → { …, "scope_subscription_id": "sub_760c1fc8ddab", "readonly": true }
# With that key: a GET on its own subscription works…
curl https://mobileproxy.app/api/v1/subscriptions/sub_760c1fc8ddab/traffic \
-H "Authorization: Bearer mpx_live_scoped…" # 200
# …but another subscription, the account-wide list, or any write is refused.
curl -X POST https://mobileproxy.app/api/v1/subscriptions/sub_760c1fc8ddab/change-ip \
-H "Authorization: Bearer mpx_live_scoped…" # 401 (read-only)