ISP-Proxys-API
Alles, was Sie auf einer ISP Proxies Plan-Seite im Panel tun können, steht auch über diese API zur Verfügung: Suchen Sie die Standorte, auf denen Sie IPs platzieren können, listen Sie jeden Proxy mit seinem Benutzernamen auf, platzieren Sie noch nicht platzierte IPs, und verschieben Sie IPs in eine andere Stadt oder zu einem anderen ISP.
Authentifizierung
Abschnitt betitelt „Authentifizierung“Alle Endpunkte authentifizieren sich mit einem api_token Query-Parameter. Erstellen Sie ein Token im Panel unter Account → API Tokens.
?api_token=YOUR_API_TOKENJeder Pfad beginnt mit https://shifter.io/api/v1/isp/{membership}. Der Pfadparameter {membership} akzeptiert beide Formen der Plan-Kennung: den kurzen Code am Ende der Panel-URL des Plans (zum Beispiel Rxqk) oder die auf der Plan-Seite angezeigte Plannummer (zum Beispiel 68057). Beide verweisen auf denselben Plan.
Die API erreicht nur ISP Proxies Pläne, die dem Besitzer des Tokens gehören. Jeder andere Plan antwortet mit 404.
Regeln für Standortwechsel
Abschnitt betitelt „Regeln für Standortwechsel“- Jede IP kann den Standort 5 Mal pro Abrechnungszeitraum wechseln. Der Zähler wird bei der Verlängerung des Plans zurückgesetzt, und ungenutzte Wechsel werden nicht in den nächsten Zeitraum übertragen. Dies gilt auch für Testversionen.
- Eine verschobene IP erhält einen neuen Benutzernamen und eine neue
proxy_id. Der alte Benutzername funktioniert sofort nicht mehr, wechseln Sie also Ihre Clients umgehend zum neuen. - Das Plan-Passwort bleibt gleich. Es gibt ein Passwort pro Plan, das von jedem Benutzernamen darauf geteilt wird.
- Bei Benutzernamen wird zwischen Groß- und Kleinschreibung unterschieden. Jeder Proxy verbindet sich über
isp.shifter.io:443, per HTTP(S) oder SOCKS5. - Jede IP behält die Stadt und den ISP, die Sie gewählt haben. Die dahinterliegende Adresse kann sich von Zeit zu Zeit aktualisieren, ähnlich wie bei einem Heimanschluss, der eine neue Adresse von seinem ISP erhält.
Standorte auflisten
Abschnitt betitelt „Standorte auflisten“Gibt die Stadt-ISP-Paare zurück, auf denen Sie IPs platzieren können, zusammen mit der Anzahl der aktuell verfügbaren IPs für jedes. Standorte ohne Verfügbarkeit werden ausgelassen, sofern Sie sie nicht anfordern.
| Parameter | In | Erforderlich | Beschreibung |
|---|---|---|---|
membership | path | ja | Die Plan-ID (Kurzcode oder Plannummer) |
api_token | query | ja | Ihr Account API-Token |
country | query | nein | ISO 3166-1 alpha-2 Ländercode, z. B. US |
q | query | nein | Suchtext: eine Stadt (lokale Namen funktionieren ebenfalls), eine Region, ein ISP-Name oder ein ASN wie 7922 oder AS7922 |
page | query | nein | Seitenzahl, beginnend bei 1 |
per_page | query | nein | Ergebnisse pro Seite, Standard 100, Maximum 500 |
include_sold_out | query | nein | Auf 1 setzen, um Standorte ohne verfügbare IPs einzuschließen |
Beispiel:
curl "https://shifter.io/api/v1/isp/YOUR_PLAN_ID/locations?country=US&q=Dallas&api_token=YOUR_API_TOKEN"Antwort:
{ "ok": true, "page": 1, "per_page": 100, "total": 2, "has_more": false, "locations": [ { "location_id": 1842, "country": "US", "region": "Texas", "city": "Dallas", "asn": 7922, "isp": "COMCAST-7922", "available": 7 } ]}location_id ist stabil, sodass Sie sie speichern und später wiederverwenden können. available ist die Anzahl der IPs, die Sie derzeit auf diesem Standort platzieren können. Verwenden Sie has_more, um zu erkennen, wann die nächste Seite angefordert werden sollte.
Proxys auflisten
Abschnitt betitelt „Proxys auflisten“Gibt die Verbindungsdetails für den Plan und jede platzierte IP mit ihrem Benutzernamen, Standort und den verbleibenden Standortwechseln zurück.
| Parameter | In | Erforderlich | Beschreibung |
|---|---|---|---|
membership | path | ja | Die Plan-ID (Kurzcode oder Plannummer) |
api_token | query | ja | Ihr Account API-Token |
Beispiel:
curl "https://shifter.io/api/v1/isp/YOUR_PLAN_ID/proxies?api_token=YOUR_API_TOKEN"Antwort:
{ "ok": true, "host": "isp.shifter.io", "port": 443, "password": "YOUR_PLAN_PASSWORD", "ips_total": 10, "ips_placed": 3, "ips_unplaced": 7, "changes_per_ip": 5, "period_ends_at": "2026-10-20T08:00:00+00:00", "proxies": [ { "proxy_id": 5531, "username": "us-texas-dallas-as7922-Ksj25", "location_id": 1842, "country": "US", "region": "Texas", "city": "Dallas", "asn": 7922, "isp": "COMCAST-7922", "changes_left": 5 } ]}| Feld | Beschreibung |
|---|---|
host / port | Wo sich jeder Proxy des Plans verbindet |
password | Das Plan-Passwort, geteilt von jedem Benutzernamen |
ips_total | Im Plan enthaltene IPs |
ips_placed / ips_unplaced | IPs, die bereits auf einem Standort sind, und IPs, die Sie noch platzieren können |
changes_per_ip | Standortwechsel, die jede IP pro Abrechnungszeitraum erhält |
period_ends_at | Wann der aktuelle Abrechnungszeitraum endet und die Wechsel zurückgesetzt werden |
proxies[].username | Der Benutzername für die Verbindung. Groß-/Kleinschreibung relevant |
proxies[].isp | Der ISP-Name für das ASN. Kann null sein, wenn kein Name bekannt ist |
proxies[].changes_left | Standortwechsel, die dieser IP im aktuellen Zeitraum noch verbleiben |
Um sich zu verbinden, kombinieren Sie die Felder zu einer Proxy-URL:
http://us-texas-dallas-as7922-Ksj25:YOUR_PLAN_PASSWORD@isp.shifter.io:443socks5://us-texas-dallas-as7922-Ksj25:YOUR_PLAN_PASSWORD@isp.shifter.io:443Eine IP verschieben
Abschnitt betitelt „Eine IP verschieben“Verschiebt eine IP zu einem anderen Standort. Dies verbraucht einen der Standortwechsel dieser IP.
| Parameter | In | Erforderlich | Beschreibung |
|---|---|---|---|
membership | path | ja | Die Plan-ID (Kurzcode oder Plannummer) |
proxy_id | path | ja | Die proxy_id der zu verschiebenden IP |
api_token | query | ja | Ihr Account API-Token |
location_id | body | ja | Der Standort, zu dem die IP verschoben werden soll |
Beispiel:
curl -X POST "https://shifter.io/api/v1/isp/YOUR_PLAN_ID/proxies/5531/location?api_token=YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"location_id":1901}'Antwort:
{ "ok": true, "message": "Location changed. Use the new username from now on.", "old_proxy_id": 5531, "proxy": { "proxy_id": 5534, "username": "us-texas-austin-as7018-Pq7rT", "location_id": 1901, "country": "US", "region": "Texas", "city": "Austin", "asn": 7018, "isp": "ATT-INTERNET4", "changes_left": 4 }}Die IP hat nun eine neue proxy_id und einen neuen username. Der alte Benutzername (und old_proxy_id) funktionieren nicht mehr, sobald die Antwort eintrifft.
Mehrere IPs verschieben
Abschnitt betitelt „Mehrere IPs verschieben“Verschiebt mehrere IPs in einer Anfrage, jede zu dem für sie angegebenen Standort.
| Parameter | In | Erforderlich | Beschreibung |
|---|---|---|---|
membership | path | ja | Die Plan-ID (Kurzcode oder Plannummer) |
api_token | query | ja | Ihr Account API-Token |
moves | body | ja | Array von {"proxy_id", "location_id"} Paaren, maximal 1.000 pro Anfrage |
dry_run | body | nein | true, um die Anfrage zu prüfen, ohne etwas zu ändern. Standard false |
- Die Anfrage erfolgt vollständig oder gar nicht: Wenn ein Wechsel nicht durchgeführt werden kann, wird keine IP verschoben und Sie erhalten einen Fehler.
- Ein Eintrag, dessen IP sich bereits auf dem Zielstandort befindet, wird übersprungen und verbraucht keinen Wechsel. Seine
proxy_idwird inskippedaufgeführt. - Mit
dry_run: truewird nichts geschrieben. Die Antwort zeigt, was passieren würde, wobeiproxy_idundusernameinmovedaufnullgesetzt sind, da die neuen erst existieren, wenn der Wechsel tatsächlich erfolgt.
Beispiel:
curl -X POST "https://shifter.io/api/v1/isp/YOUR_PLAN_ID/proxies/location?api_token=YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"moves":[{"proxy_id":5531,"location_id":1901},{"proxy_id":5532,"location_id":1842}],"dry_run":false}'Antwort:
{ "ok": true, "dry_run": false, "message": "1 IP moved. Use the new username from now on. 1 IP was already there and stays as it is.", "moved": [ { "old_proxy_id": 5531, "proxy_id": 5535, "username": "us-texas-austin-as7018-Zt3wQ", "location_id": 1901, "country": "US", "region": "Texas", "city": "Austin", "asn": 7018, "isp": "ATT-INTERNET4", "changes_left": 4 } ], "skipped": [5532]}Nicht platzierte IPs platzieren
Abschnitt betitelt „Nicht platzierte IPs platzieren“Platziert IPs, die noch keinem Standort zugewiesen sind (ips_unplaced in der Proxy-Liste). Das Platzieren einer IP verbraucht keinen Standortwechsel.
| Parameter | In | Erforderlich | Beschreibung |
|---|---|---|---|
membership | path | ja | Die Plan-ID (Kurzcode oder Plannummer) |
api_token | query | ja | Ihr Account API-Token |
placements | body | ja | Array von {"location_id", "count"} Paaren: wie viele IPs auf jedem Standort platziert werden sollen |
Beispiel:
curl -X POST "https://shifter.io/api/v1/isp/YOUR_PLAN_ID/proxies/place?api_token=YOUR_API_TOKEN" \ -H "Content-Type: application/json" \ -d '{"placements":[{"location_id":1901,"count":2}]}'Antwort:
{ "ok": true, "message": "2 IPs are ready.", "placed": 2, "ips_unplaced": 5, "proxies": [ { "proxy_id": 5540, "username": "us-texas-austin-as7018-Hh8aa", "location_id": 1901, "country": "US", "region": "Texas", "city": "Austin", "asn": 7018, "isp": "ATT-INTERNET4", "changes_left": 5 } ]}Durchgängiges Beispiel
Abschnitt betitelt „Durchgängiges Beispiel“Finden Sie einen Standort in Austin, verschieben Sie zwei IPs dorthin und lesen Sie die ab jetzt zu verwendenden Benutzernamen aus. Dies verwendet jq, um das JSON zu lesen.
TOKEN="YOUR_API_TOKEN"PLAN="YOUR_PLAN_ID"BASE="https://shifter.io/api/v1/isp/$PLAN"
# 1. Find a location with IPs availableLOCATION=$(curl -s "$BASE/locations?country=US&q=Austin&api_token=$TOKEN" \ | jq '.locations[0].location_id')
# 2. Move two IPs therecurl -s -X POST "$BASE/proxies/location?api_token=$TOKEN" \ -H "Content-Type: application/json" \ -d "{\"moves\":[{\"proxy_id\":5531,\"location_id\":$LOCATION},{\"proxy_id\":5532,\"location_id\":$LOCATION}]}" \ | jq -r '.moved[].username'
# 3. Read every current username and build proxy URLscurl -s "$BASE/proxies?api_token=$TOKEN" \ | jq -r '.password as $p | .proxies[] | "http://\(.username):\($p)@isp.shifter.io:443"'Aktualisieren Sie Ihre Clients umgehend mit den neuen Benutzernamen aus Schritt 2 oder 3: Die alten funktionieren nicht mehr, sobald der Wechsel abgeschlossen ist.
Eine fehlgeschlagene Anfrage gibt "ok": false mit einem maschinenlesbaren error-Code und einer lesbaren message zurück:
{ "ok": false, "error": "plan_inactive", "message": "This plan is not active, so locations cannot be assigned."}| Status | error | Bedeutung |
|---|---|---|
404 | not_found | Der Plan oder die IP existiert nicht in Ihrem Account. Kann proxy_ids enthalten |
422 | validation | Ein Parameter fehlt oder ist ungültig |
422 | no_changes_left | Eine oder mehrere IPs haben alle ihre Standortwechsel für diesen Zeitraum aufgebraucht. Enthält proxy_ids |
409 | out_of_stock | Ein Standort hat nicht genug verfügbare IPs. Enthält location_id und available |
409 | plan_inactive | Der Plan ist nicht aktiv, sodass seine IPs nicht platziert oder verschoben werden können |
Ratenbegrenzungen
Abschnitt betitelt „Ratenbegrenzungen“| Anfragen | Limit |
|---|---|
Lesevorgänge (GET) | 60 pro Minute pro Account |
Schreibvorgänge (POST) | 20 pro Minute pro Account |
Oberhalb des Limits antwortet die API mit 429. Warten Sie und versuchen Sie es mit Backoff erneut. Um viele IPs zu verschieben, senden Sie diese in einer Mehrere IPs verschieben Anfrage statt einer Anfrage pro IP.
Siehe auch
Abschnitt betitelt „Siehe auch“- ISP Proxies Übersicht
- IPs verwalten, die gleichen Aktionen im Panel
- Usage & Quota API