Zum Inhalt springen
Anmelden Registrieren

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.

Alle Endpunkte authentifizieren sich mit einem api_token Query-Parameter. Erstellen Sie ein Token im Panel unter Account → API Tokens.

?api_token=YOUR_API_TOKEN

Jeder 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.

  • 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.
GET https://shifter.io/api/v1/isp/{membership}/locations

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.

ParameterInErforderlichBeschreibung
membershippathjaDie Plan-ID (Kurzcode oder Plannummer)
api_tokenqueryjaIhr Account API-Token
countryqueryneinISO 3166-1 alpha-2 Ländercode, z. B. US
qqueryneinSuchtext: eine Stadt (lokale Namen funktionieren ebenfalls), eine Region, ein ISP-Name oder ein ASN wie 7922 oder AS7922
pagequeryneinSeitenzahl, beginnend bei 1
per_pagequeryneinErgebnisse pro Seite, Standard 100, Maximum 500
include_sold_outqueryneinAuf 1 setzen, um Standorte ohne verfügbare IPs einzuschließen

Beispiel:

Terminal-Fenster
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.

GET https://shifter.io/api/v1/isp/{membership}/proxies

Gibt die Verbindungsdetails für den Plan und jede platzierte IP mit ihrem Benutzernamen, Standort und den verbleibenden Standortwechseln zurück.

ParameterInErforderlichBeschreibung
membershippathjaDie Plan-ID (Kurzcode oder Plannummer)
api_tokenqueryjaIhr Account API-Token

Beispiel:

Terminal-Fenster
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
}
]
}
FeldBeschreibung
host / portWo sich jeder Proxy des Plans verbindet
passwordDas Plan-Passwort, geteilt von jedem Benutzernamen
ips_totalIm Plan enthaltene IPs
ips_placed / ips_unplacedIPs, die bereits auf einem Standort sind, und IPs, die Sie noch platzieren können
changes_per_ipStandortwechsel, die jede IP pro Abrechnungszeitraum erhält
period_ends_atWann der aktuelle Abrechnungszeitraum endet und die Wechsel zurückgesetzt werden
proxies[].usernameDer Benutzername für die Verbindung. Groß-/Kleinschreibung relevant
proxies[].ispDer ISP-Name für das ASN. Kann null sein, wenn kein Name bekannt ist
proxies[].changes_leftStandortwechsel, 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:443
socks5://us-texas-dallas-as7922-Ksj25:YOUR_PLAN_PASSWORD@isp.shifter.io:443
POST https://shifter.io/api/v1/isp/{membership}/proxies/{proxy_id}/location

Verschiebt eine IP zu einem anderen Standort. Dies verbraucht einen der Standortwechsel dieser IP.

ParameterInErforderlichBeschreibung
membershippathjaDie Plan-ID (Kurzcode oder Plannummer)
proxy_idpathjaDie proxy_id der zu verschiebenden IP
api_tokenqueryjaIhr Account API-Token
location_idbodyjaDer Standort, zu dem die IP verschoben werden soll

Beispiel:

Terminal-Fenster
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.

POST https://shifter.io/api/v1/isp/{membership}/proxies/location

Verschiebt mehrere IPs in einer Anfrage, jede zu dem für sie angegebenen Standort.

ParameterInErforderlichBeschreibung
membershippathjaDie Plan-ID (Kurzcode oder Plannummer)
api_tokenqueryjaIhr Account API-Token
movesbodyjaArray von {"proxy_id", "location_id"} Paaren, maximal 1.000 pro Anfrage
dry_runbodyneintrue, 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_id wird in skipped aufgeführt.
  • Mit dry_run: true wird nichts geschrieben. Die Antwort zeigt, was passieren würde, wobei proxy_id und username in moved auf null gesetzt sind, da die neuen erst existieren, wenn der Wechsel tatsächlich erfolgt.

Beispiel:

Terminal-Fenster
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]
}
POST https://shifter.io/api/v1/isp/{membership}/proxies/place

Platziert IPs, die noch keinem Standort zugewiesen sind (ips_unplaced in der Proxy-Liste). Das Platzieren einer IP verbraucht keinen Standortwechsel.

ParameterInErforderlichBeschreibung
membershippathjaDie Plan-ID (Kurzcode oder Plannummer)
api_tokenqueryjaIhr Account API-Token
placementsbodyjaArray von {"location_id", "count"} Paaren: wie viele IPs auf jedem Standort platziert werden sollen

Beispiel:

Terminal-Fenster
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
}
]
}

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.

Terminal-Fenster
TOKEN="YOUR_API_TOKEN"
PLAN="YOUR_PLAN_ID"
BASE="https://shifter.io/api/v1/isp/$PLAN"
# 1. Find a location with IPs available
LOCATION=$(curl -s "$BASE/locations?country=US&q=Austin&api_token=$TOKEN" \
| jq '.locations[0].location_id')
# 2. Move two IPs there
curl -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 URLs
curl -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."
}
StatuserrorBedeutung
404not_foundDer Plan oder die IP existiert nicht in Ihrem Account. Kann proxy_ids enthalten
422validationEin Parameter fehlt oder ist ungültig
422no_changes_leftEine oder mehrere IPs haben alle ihre Standortwechsel für diesen Zeitraum aufgebraucht. Enthält proxy_ids
409out_of_stockEin Standort hat nicht genug verfügbare IPs. Enthält location_id und available
409plan_inactiveDer Plan ist nicht aktiv, sodass seine IPs nicht platziert oder verschoben werden können
AnfragenLimit
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.