Highlights
Nimm einen unserer Server weg und dein nächster Request landet auf einem anderen. Die API, der Proxy-Port, der MCP-Server, der Login und die Website laufen jetzt auch auf Standby-Servern, und der Traffic wechselt automatisch. Rate Limits bestrafen kleine Überschreitungen nicht mehr: Du erhältst dein Kontingent, und nur der Überschuss wird abgewiesen.
Was ist neu?
Standby-Server hinter jedem Endpunkt
Wenn die Hauptserver nicht mehr antworten, wechselt dein Traffic auf Standby-Server, ohne dass du etwas anpassen musst. Gleiche Keys, gleiche Hosts, gleiche Proxy-User.
Ein Request, der einen Server erreicht, der ihn gerade nicht verarbeiten kann, wird an einen verfügbaren weitergeleitet, statt als Fehler zurückzukommen. Und deine Calls auf den verbleibenden Servern werden währenddessen nicht langsamer.
Rate Limits drosseln, sperren aber nicht aus
Wenn du dein Minutenkontingent bei Single oder Proxy Finder leicht überschreitest, erhältst du jetzt dein Kontingent und nur der Überschuss wird abgewiesen, da abgewiesene Requests nicht mehr für die Minute zählen. Retry-After zeigt an, wann der nächste Request durchgeht.
Wiederholst du Requests zu aggressiv, wird pausiert. Sobald die Abweisungen in einer Minute das Doppelte deines Kontingents übersteigen, erfolgt eine 30-Sekunden-Pause mit cooldown: true. Da Abweisungen während dieser Zeit nicht gezählt werden, endet sie von selbst, selbst wenn dein Client weiter anfragt. Neue Verbindungen am Proxy-Port folgen derselben Regel: Eine Verbindung, aus der kein Tunnel wurde, zählt nicht für deine Minute.
import time
import requests
def single(url, key, tries=5):
for _ in range(tries):
r = requests.post(
"https://api.foura.ai/api/single",
headers={"X-API-Key": key},
json={"url": url},
)
if r.headers.get("X-FourA-Limit") != "plan_limit_rate":
return r
# same header on the 30-second pause; the body adds "cooldown": true
time.sleep(int(r.headers.get("Retry-After", "1")))
return r
Jedes Feld ist auf der Rate-Limits-Seite dokumentiert.
Auto bricht bei blockierenden Seiten früher ab
Wenn eine Website jeden Exit-Knoten abweist, den Auto testet (inklusive Browser), endet der Aufruf jetzt nach wenigen Versuchen, anstatt dein gesamtes Budget aufzubrauchen. Bei einer Website, die Proxy Finder zuvor bereits bedient hat, fragt Auto zunächst Proxy Finder gemäß deiner eigenen validate-Regel an. Diese Suche ist kostenlos, wenn sie leer bleibt.
Zwei weitere Änderungen halten Auto innerhalb deiner Vorgaben. Ein Request, der auf eine belegte Session oder einen parallelen Request auf derselben Seite wartet, endet nun innerhalb deines timeout_ms mit einem time budget exhausted-Fehler. So kannst du den Aufruf wiederholen oder das Budget erhöhen (Details findest du unter Häufige Probleme). Zudem wird eine JSON-Seite unabhängig von der gewählten Route als Text in data zurückgegeben, sodass ein einzelner Parser für alle Requests ausreicht.
Das ändert nichts am Zweck von Auto. Es ermittelt die passende Route. Sobald diese steht, übernimmst du die gelieferten session auf /api/single oder /api/browser und leitest deinen Traffic dorthin.
Seiten mit Zwischenschritten
Browser unterstützt nun eine weitere Art von Zwischenseite: kurze Seiten, die ein Skript ausführen und sich danach auf den eigentlichen Inhalt weiterleiten. Browser gibt direkt die Zielseite zurück. Auto übergibt solche Seiten über denselben Exit an Browser, sodass der Request den finalen Inhalt liefert.
Einige Amazon-Produktseiten verlangen zunächst einen Klick auf "Weiter einkaufen". Single und Browser bestätigen diesen Button jetzt über denselben Exit und liefern direkt die Produktseite. Aufrufe über Proxy Finder und Auto verhalten sich identisch.
Browser folgt Seiten, die nach dem Laden eine Weiterleitung auslösen, anstatt bis zum Timeout zu warten. Rückgesendete Cookies mit den Namen __Secure- oder __Host- erhalten nun die Attribute, die ihr Präfix vorschreibt. Die Zielseite erhält somit deine vollständige gespeicherte Session.
Proxy Finder und präzisere Fehlermeldungen
Plain-HTTP-Requests über Proxy Finder öffnen nun zuerst eine direkte Verbindung zur Website, wie es bei HTTPS bereits Standard war. Ein Proxy, der eine eigene Seite antwortet oder bei unterschiedlichen Seiten denselben Body liefert, wird übersprungen. Der Request wechselt direkt zum nächsten Proxy.
Übergibst du Single oder Browser eine Proxy-URL mit einem nicht auflösbaren Hostnamen, lautet die Antwort status 0 mit einem Fehler, der den Host nennt, genau wie bei einem Ziel-Host. Ein Request auf api.foura.ai oder eu.api.foura.ai selbst erhält sofort einen 400-Fehler, bevor Daten abgerufen oder berechnet werden. Der Fehler nennt die häufigste Ursache: Ein Link wurde fälschlicherweise relativ zur API-URL statt zur Ursprungsseite aufgelöst.
Dashboard, Registrierung und Abrechnung
- Eine Registrierung auf foura.ai führt dich jetzt direkt ins Dashboard. Dort leitet dich die Übersicht zum ersten Ergebnis: Erstelle einen API-Key und sende dann einen Request über das Terminal oder den Playground. Auf Smartphones beginnen die Schritte direkt im Playground, und für den Proxy-Port gibt es eigene Schritte basierend auf einem Proxy-User.
- Auf Smartphones oder in schmalen Fenstern scrollt der Playground die Response automatisch ins Sichtfeld, sobald sie eintrifft.
- Bei der Nutzung nach Domain und nach Client-IP werden alle Zeilen des Zeitraums vor der Seitennummerierung sortiert. Seite eins enthält somit die tatsächlichen Spitzenwerte.
- Die Übersichtskarten übernehmen den gewählten Zeitraum auch während des Ladevorgangs. Der Dialog zur Zeitraumauswahl öffnet sich mit deiner aktuellen Ansicht, und die Seitenleiste enthält einen Docs-Link unter Tools.
- Manuell ausgestellte Rechnungen erscheinen jetzt neben den automatischen auf der Billing-Seite. Bei Rechnungen mit EU-MwSt. gilt der am Verkaufstag gültige Steuersatz, einschließlich vorab angekündigter Änderungen.
Jeder dieser Punkte hat einen eigenen Eintrag auf updates.foura.ai.
Under the Hood
Der Proxy-Port zählt deine offenen Tunnel live mit. Ein Tunnel, der durch den Neustart einer unserer Instanzen beendet wurde, verschwindet innerhalb von Sekunden aus der Zählung. Die Concurrency deines Plans entspricht somit genau der Concurrency, die dir zur Verfügung steht.
Das beste Failover ist das, von dem du erst im Digest erfährst.