Endpunkte auf dieser Seite
GET /v1/mobile: Mobile Ports auflistenGET /v1/mobile/{portId}: Details zu einem mobilen Port abrufenPATCH /v1/mobile/{portId}: Umbenennen, automatische Verlängerung ein- oder ausschalten oder automatische Rotation konfigurierenPOST /v1/mobile/{portId}/rotate: IP jetzt ändernGET /v1/mobile/{portId}/rotate: Rotationslink (GET mit API-Schlüssel im Query-String)POST /v1/mobile/{portId}/reset-password: Neues Proxy-Passwort für den Port generierenGET /v1/mobile/{portId}/usage: Täglicher Datenverbrauch über den Port (zur Information: unbegrenztes Datenvolumen, vorbehaltlich Fair Use)GET /v1/catalog/countries/{countryCode}/carriers: Mobilfunkanbieter mit verfügbaren 4G/5G-Ports in einem Land
Basis-URL https://localserpproxy.com/api/v1. Authentifizierung, Fehler und Limits: siehe API-Übersicht.
Mobile-Ports auflisten
GET/v1/mobile
Authentifizierung: API-Schlüssel im Header Authorization: Bearer API_KEY.
Antwort 200 OK
{
"data": [
{
"id": "mob_2v8k1q",
"label": "US Verizon #1",
"status": "active",
"country": "US",
"city": null,
"carrier": "verizon",
"carrierName": "Verizon",
"networkType": "4G",
"currentIp": "203.0.113.201",
"ipChangedAt": "2026-10-05T14:03:11Z",
"endpoint": {
"host": "gw.localserpproxy.com",
"httpPort": 7777,
"socksPort": 7778
},
"username": "USERNAME",
"password": "PASSWORD",
"rotation": {
"mode": "interval",
"intervalMinutes": 10
},
"minRotationIntervalSeconds": 30,
"rotationLink": "https://localserpproxy.com/api/v1/mobile/mob_2v8k1q/rotate?key=API_KEY",
"planId": "mob-us-30d",
"autoRenew": false,
"createdAt": "2026-10-05T14:03:11Z",
"expiresAt": "2026-11-04T14:03:11Z"
}
]
}Codebeispiele
curl -s "https://localserpproxy.com/api/v1/mobile" \
-H "Authorization: Bearer $API_KEY"import os
import requests
API = "https://localserpproxy.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.get(f"{API}/mobile", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';
const res = await fetch(`${API}/mobile`, {
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Einen Mobile-Port abrufen
GET/v1/mobile/{portId}
Authentifizierung: API-Schlüssel im Header Authorization: Bearer API_KEY.
Parameter
| Name | In | Typ | Erforderlich | Beschreibung |
|---|---|---|---|---|
portId | path | string | Ja | — |
Antwort 200 OK
{
"id": "mob_2v8k1q",
"label": "US Verizon #1",
"status": "active",
"country": "US",
"city": null,
"carrier": "verizon",
"carrierName": "Verizon",
"networkType": "4G",
"currentIp": "203.0.113.201",
"ipChangedAt": "2026-10-05T14:03:11Z",
"endpoint": {
"host": "gw.localserpproxy.com",
"httpPort": 7777,
"socksPort": 7778
},
"username": "USERNAME",
"password": "PASSWORD",
"rotation": {
"mode": "interval",
"intervalMinutes": 10
},
"minRotationIntervalSeconds": 30,
"rotationLink": "https://localserpproxy.com/api/v1/mobile/mob_2v8k1q/rotate?key=API_KEY",
"planId": "mob-us-30d",
"autoRenew": false,
"createdAt": "2026-10-05T14:03:11Z",
"expiresAt": "2026-11-04T14:03:11Z"
}Codebeispiele
curl -s "https://localserpproxy.com/api/v1/mobile/mob_2v8k1q" \
-H "Authorization: Bearer $API_KEY"import os
import requests
API = "https://localserpproxy.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.get(f"{API}/mobile/mob_2v8k1q", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';
const res = await fetch(`${API}/mobile/mob_2v8k1q`, {
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Port umbenennen, automatische Verlängerung ein- oder ausschalten oder automatische IP-Rotation konfigurieren
PATCH/v1/mobile/{portId}
Benenne den Port um, schalte die automatische Verlängerung ein oder aus oder stelle einen automatischen Rotationstimer ein – von alle 2 Minuten bis alle 24 Stunden: "rotation": { "mode": "interval", "intervalMinutes": 10 } (2–1440 Minuten); "mode": "manual" schaltet die Funktion aus. Andernfalls behält dein Port seine IP, bis du sie wechselst. Der Mobilfunkanbieter kann sie jedoch gelegentlich selbst ändern.
Authentifizierung: API-Schlüssel im Header Authorization: Bearer API_KEY.
Parameter
| Name | In | Typ | Erforderlich | Beschreibung |
|---|---|---|---|---|
portId | path | string | Ja | — |
Anfragetext
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
label | string | Nein | max. 60 Zeichen |
autoRenew | boolean | Nein | — |
rotation | object | Nein | Automatischer Rotationstimer: { "mode": "interval", "intervalMinutes": 2–1440 } (alle 2 Minuten bis alle 24 Stunden) oder { "mode": "manual", "intervalMinutes": null }, um die IP nur bei Bedarf zu wechseln. |
{
"rotation": {
"mode": "interval",
"intervalMinutes": 10
}
}{
"rotation": {
"mode": "manual",
"intervalMinutes": null
}
}Antwort 200 OK
{
"id": "mob_2v8k1q",
"label": "US Verizon #1",
"status": "active",
"country": "US",
"city": null,
"carrier": "verizon",
"carrierName": "Verizon",
"networkType": "4G",
"currentIp": "203.0.113.201",
"ipChangedAt": "2026-10-05T14:03:11Z",
"endpoint": {
"host": "gw.localserpproxy.com",
"httpPort": 7777,
"socksPort": 7778
},
"username": "USERNAME",
"password": "PASSWORD",
"rotation": {
"mode": "interval",
"intervalMinutes": 10
},
"minRotationIntervalSeconds": 30,
"rotationLink": "https://localserpproxy.com/api/v1/mobile/mob_2v8k1q/rotate?key=API_KEY",
"planId": "mob-us-30d",
"autoRenew": false,
"createdAt": "2026-10-05T14:03:11Z",
"expiresAt": "2026-11-04T14:03:11Z"
}Codebeispiele
curl -s -X PATCH "https://localserpproxy.com/api/v1/mobile/mob_2v8k1q" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{"rotation":{"mode":"interval","intervalMinutes":10}}'import os
import requests
API = "https://localserpproxy.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.patch(f"{API}/mobile/mob_2v8k1q", headers=HEADERS, json={"rotation": {"mode": "interval", "intervalMinutes": 10}}, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';
const res = await fetch(`${API}/mobile/mob_2v8k1q`, {
method: 'PATCH',
headers: { Authorization: `Bearer ${process.env.API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ rotation: { mode: 'interval', intervalMinutes: 10 } }),
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());IP jetzt wechseln
POST/v1/mobile/{portId}/rotate
Bei jeder Rotation verbindet sich dein Port erneut mit dem Mobilfunkanbieter, um eine neue IP zu erhalten. Das dauert normalerweise 5–15 Sekunden. Gelegentlich kann der Mobilfunkanbieter dieselbe IP erneut zuweisen – starte die Rotation einfach noch einmal. Pro Port ist höchstens eine Rotation alle 30 Sekunden möglich (minRotationIntervalSeconds): Wird eine Rotation zu früh angefordert, gibt die Antwort 429 rotation_too_soon mit Retry-After zurück (Sekunden bis zum nächsten Versuch).
Authentifizierung: API-Schlüssel im Header Authorization: Bearer API_KEY.
Parameter
| Name | In | Typ | Erforderlich | Beschreibung |
|---|---|---|---|---|
portId | path | string | Ja | — |
Antwort 200 OK
{
"ip": "203.0.113.201",
"previousIp": "203.0.113.77",
"rotatedAt": "2026-10-05T14:03:11Z",
"nextRotationAvailableAt": "2026-10-05T14:03:41Z"
}Codebeispiele
curl -s -X POST "https://localserpproxy.com/api/v1/mobile/mob_2v8k1q/rotate" \
-H "Authorization: Bearer $API_KEY"import os
import requests
API = "https://localserpproxy.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.post(f"{API}/mobile/mob_2v8k1q/rotate", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';
const res = await fetch(`${API}/mobile/mob_2v8k1q/rotate`, {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Rotationslink (GET mit API-Schlüssel im Query-String)
GET/v1/mobile/{portId}/rotate
Wie POST, für Skripte und Lesezeichen: GET https://localserpproxy.com/api/v1/mobile/{portId}/rotate?key=API_KEY. Der Schlüssel benötigt den Bereich proxies. format=text gibt die neue IP als text/plain zurück.
Authentifizierung: API-Schlüssel im Abfrageparameter key (Umfang proxies), damit der Link über ein Lesezeichen funktioniert.
Parameter
| Name | In | Typ | Erforderlich | Beschreibung |
|---|---|---|---|---|
key | query | string | Ja | Dein API-Schlüssel (Bereich proxies). |
portId | path | string | Ja | — |
format | query | json · text | Nein | Standard json |
Antwort 200 OK
{
"ip": "203.0.113.201",
"previousIp": "203.0.113.77",
"rotatedAt": "2026-10-05T14:03:11Z",
"nextRotationAvailableAt": "2026-10-05T14:03:41Z"
}Codebeispiele
curl -s "https://localserpproxy.com/api/v1/mobile/mob_2v8k1q/rotate?key=$API_KEY&format=text"import os
import requests
API = "https://localserpproxy.com/api/v1"
r = requests.get(f"{API}/mobile/mob_2v8k1q/rotate", params={"key": os.environ["API_KEY"], "format": "text"}, timeout=30)
r.raise_for_status()
print(r.text)// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';
const res = await fetch(`${API}/mobile/mob_2v8k1q/rotate?key=${process.env.API_KEY}&format=text`);
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.text());Neues Proxy-Passwort für den Port generieren
POST/v1/mobile/{portId}/reset-password
Authentifizierung: API-Schlüssel im Header Authorization: Bearer API_KEY.
Parameter
| Name | In | Typ | Erforderlich | Beschreibung |
|---|---|---|---|---|
portId | path | string | Ja | — |
Antwort 200 OK
{
"id": "mob_2v8k1q",
"label": "US Verizon #1",
"status": "active",
"country": "US",
"city": null,
"carrier": "verizon",
"carrierName": "Verizon",
"networkType": "4G",
"currentIp": "203.0.113.201",
"ipChangedAt": "2026-10-05T14:03:11Z",
"endpoint": {
"host": "gw.localserpproxy.com",
"httpPort": 7777,
"socksPort": 7778
},
"username": "USERNAME",
"password": "PASSWORD",
"rotation": {
"mode": "interval",
"intervalMinutes": 10
},
"minRotationIntervalSeconds": 30,
"rotationLink": "https://localserpproxy.com/api/v1/mobile/mob_2v8k1q/rotate?key=API_KEY",
"planId": "mob-us-30d",
"autoRenew": false,
"createdAt": "2026-10-05T14:03:11Z",
"expiresAt": "2026-11-04T14:03:11Z"
}Codebeispiele
curl -s -X POST "https://localserpproxy.com/api/v1/mobile/mob_2v8k1q/reset-password" \
-H "Authorization: Bearer $API_KEY"import os
import requests
API = "https://localserpproxy.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.post(f"{API}/mobile/mob_2v8k1q/reset-password", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';
const res = await fetch(`${API}/mobile/mob_2v8k1q/reset-password`, {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Täglicher Datenverkehr über den Port (zur Information: unbegrenztes Datenvolumen im Rahmen der Fair-Use-Regelung)
GET/v1/mobile/{portId}/usage
Nur zur Information. Unbegrenztes Datenvolumen auf deinem dedizierten Port im Rahmen der Fair-Use-Regelung: Bei sehr hoher Nutzung kann der Mobilfunkanbieter die Geschwindigkeit drosseln oder den Dienst vorübergehend unterbrechen.
Authentifizierung: API-Schlüssel im Header Authorization: Bearer API_KEY.
Parameter
| Name | In | Typ | Erforderlich | Beschreibung |
|---|---|---|---|---|
portId | path | string | Ja | — |
from | query | string (date) | Nein | Erster Tag (UTC), einschließlich. Standard = 29 Tage vor to. |
to | query | string (date) | Nein | Letzter Tag (UTC), einschließlich. Standard = heute. Maximaler Zeitraum: 366 Tage. |
Antwort 200 OK
{
"from": "2026-10-04",
"to": "2026-10-05",
"totalBytes": 2350000000,
"totalRequests": 48210,
"points": [
{
"date": "2026-10-04",
"bytes": 1200000000,
"requests": 24800
},
{
"date": "2026-10-05",
"bytes": 1150000000,
"requests": 23410
}
],
"byCountry": [
{
"country": "US",
"bytes": 2350000000
}
]
}Codebeispiele
curl -s "https://localserpproxy.com/api/v1/mobile/mob_2v8k1q/usage" \
-H "Authorization: Bearer $API_KEY"import os
import requests
API = "https://localserpproxy.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['API_KEY']}"}
r = requests.get(f"{API}/mobile/mob_2v8k1q/usage", headers=HEADERS, timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';
const res = await fetch(`${API}/mobile/mob_2v8k1q/usage`, {
headers: { Authorization: `Bearer ${process.env.API_KEY}` },
});
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());Mobilfunkanbieter mit verfügbaren 4G/5G-Ports in einem Land
GET/v1/catalog/countries/{countryCode}/carriers
Öffentlich: kein API-Schlüssel erforderlich.
Parameter
| Name | In | Typ | Erforderlich | Beschreibung |
|---|---|---|---|---|
countryCode | path | string | Ja | ISO 3166-1 alpha-2, in Großbuchstaben. |
Antwort 200 OK
{
"data": [
{
"id": "verizon",
"name": "Verizon",
"networkTypes": [
"4G",
"5G"
],
"available": true,
"cities": []
}
]
}Codebeispiele
curl -s "https://localserpproxy.com/api/v1/catalog/countries/US/carriers"import os
import requests
API = "https://localserpproxy.com/api/v1"
r = requests.get(f"{API}/catalog/countries/US/carriers", timeout=30)
r.raise_for_status()
print(r.json())// Node.js 18+ (built-in fetch), ES module
const API = 'https://localserpproxy.com/api/v1';
const res = await fetch(`${API}/catalog/countries/US/carriers`);
if (!res.ok) throw new Error((await res.json()).error?.message ?? `HTTP ${res.status}`);
console.log(await res.json());