Wo fange ich an?
- 1Registrieren Sie sich mit einem Benutzernamen und melden Sie sich im Dashboard an.
- 2Erstellen Sie im Tab Verbindung einen API-Schlüssel. Der vollständige Schlüssel wird nur einmal beim Erstellen angezeigt. Bewahren Sie ihn also sofort sicher auf.
- 3Senden Sie den Schlüssel im Authorization-Header mit jeder Anfrage, die ihn braucht.
- 4Rufen Sie zuerst /account auf, um zu prüfen, ob der Schlüssel funktioniert, und bestellen Sie dann über /orders.
Authentifizierung
Anfragen zu Ihrem eigenen Konto (account, orders, proxy-user) brauchen einen API-Schlüssel, der im Header als Authorization: Bearer spk_... gesendet wird. Preise, Länder und Preisangebote sind öffentlich und funktionieren ohne Schlüssel.
StarProxy speichert von jedem Schlüssel nur einen Hash, nicht den Schlüssel selbst. Wenn Sie einen Schlüssel verlieren, erstellen Sie im Dashboard einen neuen. Der alte Schlüssel funktioniert ab diesem Moment nicht mehr. Verwenden Sie Schlüssel nur in Servercode. Setzen Sie sie nie in Code, der im Browser läuft, oder in ein öffentliches Repository.
Authorization: Bearer spk_your_api_key
Basis-URL und Datenformat
- Basis-URL
- https://starproxy.shop/api/v1
- Request- und Response-Body
- application/json
- Beträge
- USD als Zahl, z. B. 1047.70
- Zeitstempel
- ISO 8601 (UTC)
Gibt es ein Rate Limit?
Ein API-Schlüssel kann bis zu 60 Aufrufe pro Minute ausführen. Öffentliche Endpunkte ohne Schlüssel erlauben 60 Aufrufe pro Minute und IP. Über dem Limit erhalten Sie HTTP 429. Warten Sie dann eine Minute und senden Sie erneut.
Wie sehen Fehler aus?
Ein HTTP-Statuscode plus ein JSON-Body mit einem kurzen Fehlercode und einer Meldung.
{
"error": {
"code": "insufficient_balance",
"message": "Your balance is too low for this order. Top up in the dashboard."
}
}| HTTP | code | Bedeutung |
|---|---|---|
| bad_requestHTTP 400Ein Pflichtwert fehlt, oder der Wert ist für dieses Produkt ungültig. | Ein Pflichtwert fehlt, oder der Wert ist für dieses Produkt ungültig. | |
| unauthorizedHTTP 401Der API-Schlüssel fehlt oder stimmt nicht. | Der API-Schlüssel fehlt oder stimmt nicht. | |
| insufficient_balanceHTTP 402Ihr Guthaben ist niedriger als der Bestellbetrag. Es wurde nichts abgebucht. | Ihr Guthaben ist niedriger als der Bestellbetrag. Es wurde nichts abgebucht. | |
| not_foundHTTP 404Auf Ihrem Konto gibt es keine Bestellung mit dieser id. | Auf Ihrem Konto gibt es keine Bestellung mit dieser id. | |
| rate_limitedHTTP 429Zu viele Anfragen innerhalb einer Minute. | Zu viele Anfragen innerhalb einer Minute. | |
| server_errorHTTP 500Der Server konnte die Anfrage nicht abschließen. Es wurde nichts abgebucht. | Der Server konnte die Anfrage nicht abschließen. Es wurde nichts abgebucht. |
Endpunkte
Konto abrufen
GET/api/v1/accountAPI-Schlüssel erforderlich
Liefert Ihr Guthaben, Proxy-Host und Ports, Proxy-Benutzername und Passwort sowie Ihre freigegebenen IPs.
curl https://starproxy.shop/api/v1/account \ -H "Authorization: Bearer spk_your_api_key"
{
"username": "star_user01",
"balance_usd": 1300,
"proxy": {
"host": "gate.starproxy.shop",
"http_port": 6100,
"socks5_port": 6200,
"username": "spexample1",
"password": "your_password"
},
"allowed_ips": [
"203.0.113.10"
]
}Produkte und Preise abrufen
GET/api/v1/productsKein Schlüssel nötig
Liefert für jedes Produkt den Bestellbereich, den Preis pro Mengenstufe und die Laufzeitrabatte, aus derselben Preistabelle wie die Preisseite.
curl https://starproxy.shop/api/v1/products
{
"currency": "USD",
"prices_as_of": "2026-10-31",
"products": [
{
"id": "unlimited",
"unit": "day",
"quantity": {
"meaning": "days",
"min": 1,
"max": 365
},
"...": "..."
},
{
"id": "residential",
"unit": "gb",
"...": "..."
}
]
}Länder und Städte auflisten
GET/api/v1/countriesKein Schlüssel nötig
Liefert die Länder, die jedes Produkt unterstützt, sowie die Stadtwerte für die Option -city- im Benutzernamen.
| Feld | Typ | Bedeutung |
|---|---|---|
productOptional | string | Einer von unlimited, residential, isp, datacenter. Standard ist residential. |
curl "https://starproxy.shop/api/v1/countries?product=datacenter"
{
"product": "datacenter",
"countries": [
{
"code": "us",
"name": "United States",
"region": "americas",
"datacenter": true,
"cities": [
{
"name": "New York",
"value": "new_york"
},
{
"name": "Los Angeles",
"value": "los_angeles"
}
]
}
]
}Preisangebot abrufen
POST/api/v1/quoteKein Schlüssel nötig
Berechnet den Bestellbetrag, ohne Ihr Guthaben zu verändern. Senden Sie denselben Body wie bei der Bestellung.
| Feld | Typ | Bedeutung |
|---|---|---|
productPflicht | string | Einer von unlimited, residential, isp, datacenter. |
quantityPflicht | integer | Tage bei unlimited (1~365), GB bei residential (5~5,000), Anzahl IPs bei isp (1~1,000) oder datacenter (5~5,000). |
concurrencyOptional | integer | Nur unlimited. Einer von 200, 500, 1000, 2000. |
bandwidthOptional | integer | Nur unlimited, in Mbps. Einer von 100, 200, 500, 1000. |
monthsOptional | integer | Nur isp und datacenter. Einer von 1, 3, 6, 12. |
countryOptional | string | Nur isp und datacenter. Ein zweistelliger Ländercode wie jp. Gültige Werte siehe /countries. |
curl -X POST https://starproxy.shop/api/v1/quote \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"product": "unlimited",
"quantity": 30,
"unit_price_usd": 8.41,
"unit": "day",
"total_usd": 252.3
}Bestellung anlegen
POST/api/v1/ordersAPI-Schlüssel erforderlich
Bucht den Betrag von Ihrem Guthaben ab und legt die Bestellung an. Der Status beginnt mit pending (wird aktiviert) und wechselt zu active, wenn die Bestellung bereit ist. Kann sie nicht aktiviert werden, wird sie refunded und der volle Betrag geht zurück auf Ihr Guthaben. Bei zu niedrigem Guthaben kommt 402 zurück.
| Feld | Typ | Bedeutung |
|---|---|---|
productPflicht | string | Einer von unlimited, residential, isp, datacenter. |
quantityPflicht | integer | Tage bei unlimited (1~365), GB bei residential (5~5,000), Anzahl IPs bei isp (1~1,000) oder datacenter (5~5,000). |
concurrencyOptional | integer | Nur unlimited. Einer von 200, 500, 1000, 2000. |
bandwidthOptional | integer | Nur unlimited, in Mbps. Einer von 100, 200, 500, 1000. |
monthsOptional | integer | Nur isp und datacenter. Einer von 1, 3, 6, 12. |
countryOptional | string | Nur isp und datacenter. Ein zweistelliger Ländercode wie jp. Gültige Werte siehe /countries. |
curl -X POST https://starproxy.shop/api/v1/orders \
-H "Authorization: Bearer spk_your_api_key" \
-H "Content-Type: application/json" \
-d '{"product":"unlimited","quantity":30,"concurrency":1000,"bandwidth":200}'{
"order": {
"id": "SP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.41,
"total_usd": 252.3,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
},
"balance_usd": 1047.7
}Bestellungen auflisten
GET/api/v1/ordersAPI-Schlüssel erforderlich
Liefert bis zu 100 Bestellungen, die neuesten zuerst.
| Feld | Typ | Bedeutung |
|---|---|---|
statusOptional | string | Einer von pending, active, refunded. Leer lassen für alle Status. |
curl "https://starproxy.shop/api/v1/orders?status=pending" \ -H "Authorization: Bearer spk_your_api_key"
{
"orders": [
{
"id": "SP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.41,
"total_usd": 252.3,
"status": "pending",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:12:44.120Z"
}
]
}Eine Bestellung abrufen
GET/api/v1/orders/{id}API-Schlüssel erforderlich
Liefert eine Bestellung anhand der id. Damit sehen Sie, ob die Aktivierung abgeschlossen ist.
| Feld | Typ | Bedeutung |
|---|---|---|
idPflicht | string | Die Bestell-id, zum Beispiel SP-7KQ2M-X4HTD. |
curl https://starproxy.shop/api/v1/orders/SP-7KQ2M-X4HTD \ -H "Authorization: Bearer spk_your_api_key"
{
"order": {
"id": "SP-7KQ2M-X4HTD",
"product": "unlimited",
"quantity": 30,
"months": null,
"concurrency": 1000,
"bandwidth_mbps": 200,
"country": null,
"unit_price_usd": 8.41,
"total_usd": 252.3,
"status": "active",
"created_at": "2026-10-31T09:12:44.120Z",
"updated_at": "2026-10-31T09:40:02.511Z"
}
}Proxy-Benutzernamen erzeugen
GET/api/v1/proxy-userAPI-Schlüssel erforderlich
Liefert einen Proxy-Benutzernamen mit Ihren Optionen sowie HTTP- und SOCKS5-URLs zum direkten Einfügen. Ohne session erhält jede Anfrage eine neue IP.
| Feld | Typ | Bedeutung |
|---|---|---|
productOptional | string | Einer von unlimited, residential, isp, datacenter. Standard ist unlimited. |
countryOptional | string | Ein zweistelliger Ländercode wie jp. |
cityOptional | string | Ein Stadtwert aus /countries, etwa tokyo. Erfordert country. |
sessionOptional | string | 1~32 Buchstaben oder Ziffern. Anfragen mit derselben session teilen sich eine IP. |
ttlOptional | integer | Minuten, die die Session-IP gehalten wird, 1~60. Standard ist 30. |
curl "https://starproxy.shop/api/v1/proxy-user?product=residential&country=jp&city=tokyo&session=job42&ttl=30" \ -H "Authorization: Bearer spk_your_api_key"
{
"username": "spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30",
"password": "your_password",
"http": "http://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6100",
"socks5": "socks5h://spexample1-zone-res-cc-jp-city-tokyo-sid-job42-ttl-30:your_password@gate.starproxy.shop:6200"
}Vollständiges Beispiel
Ein Skript, das ein Preisangebot abruft, aus dem Guthaben bestellt und sich über eine japanische IP verbindet.
import requests
API = "https://starproxy.shop/api/v1"
HEAD = {"Authorization": "Bearer spk_your_api_key"}
# 1) Check the price first
plan = {"product": "residential", "quantity": 100}
print(requests.post(f"{API}/quote", json=plan).json())
# 2) Order from your balance
r = requests.post(f"{API}/orders", json=plan, headers=HEAD)
order = r.json()["order"]
print(order["id"], order["status"])
# 3) Get a username for Japanese IPs
u = requests.get(f"{API}/proxy-user", headers=HEAD,
params={"product": "residential", "country": "jp"}).json()
proxies = {"http": u["http"], "https": u["http"]}
print(requests.get("https://ipinfo.io/json", proxies=proxies, timeout=30).json())const API = "https://starproxy.shop/api/v1";
const HEAD = { Authorization: "Bearer spk_your_api_key", "Content-Type": "application/json" };
// Check the balance
const acc = await fetch(`${API}/account`, { headers: HEAD }).then((r) => r.json());
console.log(acc.balance_usd);
// Order 7 days of unlimited
const res = await fetch(`${API}/orders`, {
method: "POST",
headers: HEAD,
body: JSON.stringify({ product: "unlimited", quantity: 7, concurrency: 500, bandwidth: 100 }),
});
if (res.status === 402) console.log("Top up first");
else console.log((await res.json()).order.id);API-Bestellungen werden genauso verarbeitet wie Bestellungen im Dashboard und erscheinen im Tab Verlauf. Ersetzen Sie spk_your_api_key in den Beispielen durch Ihren eigenen Schlüssel.