Was ist neu
Der /api/auto Endpoint ist jetzt der kürzeste Weg zu einer funktionierenden Response für jede URL. Richte ihn auf ein Ziel. Auto entscheidet, ob die Request über Single, Proxy Finder oder Browser ausgeführt wird, löst Sicherheits-Checks der Seite und gibt eine Session zurück, die dein nächster Call wiederverwenden kann.
Ein Endpoint. Jedes Ziel. Kein Moduswechsel auf deiner Seite.
Das ist das ganze Prinzip. Der Rest dieses Beitrags erklärt, wie es funktioniert, was es kostet und wo die Fallstricke liegen.
Wie es funktioniert
Unter Auto liegt eine Stufenleiter (günstig zuerst, teuer zuletzt). Bei jedem Request geht Auto diese Stufen von unten nach oben durch, bis eine Stufe eine Response liefert, die deine validate Regeln akzeptieren.
Die Stufen der Reihe nach:
- Gecachte Session. Wenn Auto aus einem vorherigen Call eine aktive Session für diesen Host hat, wird sie zuerst darüber wiederholt. Der günstigste Weg.
- Proxy Finder. Ein rotierter Proxy-Request. Gut für Seiten, die hauptsächlich über IP-Reputation geschützt sind.
- Browser. Ein vollständiges Rendering, das JavaScript ausführt, geforderte Seiten-Checks besteht und die gesetzten Cookies sammelt.
Sobald eine Stufe erfolgreich ist, speichert Auto die gefundene Session: die verwendete Proxy-ID, die Cookies der Seite und den User-Agent. Beim nächsten Call an denselben Host testet Auto diese Session zuerst. Wenn sie noch funktioniert, zahlst du nur die günstige Stufe, nicht die teure.
Ein minimaler Call:
curl -X POST "https://api.foura.ai/api/auto" \
-H "X-API-Key: pk_live_..." \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/data",
"validate": { "status": { "accept": [200] } }
}'
Eine gekürzte Response:
{
"status": 200,
"data": "...",
"headers": [...],
"meta": {
"rung": "cache",
"solved": false,
"attempts": 1,
"credits": 2
},
"session": {
"proxy": "CLN1B8",
"cookies": [{ "name": "cf_clearance", "value": "..." }],
"userAgent": "..."
}
}
Zwei Felder sind wichtig für das, was du als Nächstes baust. meta.rung zeigt dir, welcher Pfad gewonnen hat. session ist das Tripel, das du in einen /api/single-Aufruf übergeben kannst, um denselben Exit selbst zu wiederholen. Das Feld proxy ist eine opake Base36-ID (keine Roh-IPs), sicher zum Loggen und sicher für die Übergabe zwischen Systemen.
Impact
Hier zählen zwei Zahlen.
Der erste Aufruf einer geschützten Seite führt die Browser-Stufe aus: Rendern, Lösen, Cookies sammeln, Seite ausliefern. Das kostet etwa 10 Credits. Sobald Auto eine funktionierende Session für diesen Host zwischengespeichert hat, spielen nachfolgende Aufrufe diese wieder ab: über Single für 2 Credits oder über Proxy Finder für 4, wenn die Cookies der Session von jeder Adresse aus funktionieren. Der zweite Aufruf ist also bis zu 5-mal günstiger als der erste, und jeder weitere Aufruf behält die günstige Rate, solange die Session gültig bleibt. Wir haben das beim Rollout in der Produktion gemessen: Cookie-freie Exits (sobald gefunden) laufen bei genau 2 Credits pro Aufruf, verglichen mit den 10 Credits, die sie früher kosteten, als jeder Request über Proxy Finder lief.
Die zweite Zahl: Fehlgeschlagene Stufen werden nicht abgerechnet. Wenn Auto drei Proxys versucht und jeder einen 403 liefert, bevor der vierte liefert, zählen nur die Credits des vierten. Du zahlst für gelieferten Inhalt, nicht für die Suche.
Das ist der Kernwert. Die teure Stufe läuft einmal, die günstige Stufe danach dauerhaft, und du musst die Caching-Logik nicht selbst schreiben.
Zwei weitere Verhaltensweisen sind erwähnenswert, da sie echte Produktionsprobleme lösen:
Geo-blockierte Ziele verschwenden keine Exits mehr. Wenn eine Seite für die meisten Exits einen 451 (oder eine rechtliche Sperrseite) zurückgibt, lernt Auto, welche Länder tatsächlich Inhalte geliefert haben. Beim nächsten Aufruf holt es zuerst frische Exits aus diesen Ländern und verteilt die gleichzeitige Last auf sie. So wird ein einzelner funktionierender Exit nicht überlastet und rate-limited.
Validate läuft auf jeder Stufe. Eine Seite mit falschem Inhalt (eine Länderbeschränkung, die Status 200 mit einem rechtlichen Hinweis im Body zurückgibt) zählt nie als Treffer. Wenn dein validate.data.fail "legal reasons" enthält, probiert Auto weiter, bis eine Stufe dies besteht. Nicht die gecachte Stufe. Keine Stufe. Wenn nichts besteht, erhältst du einen ehrlichen Fehler mit dem echten Grund.
Für Power-User
Einige Stellschrauben, die wichtig sind, sobald du größeres Volumen durch Auto schickst.
timeout_ms ist ein Budget für die gesamte Operation, nicht für einzelne Stufen. Der Standardwert ist 120 Sekunden. Auto teilt es auf: Jeder Unteraufruf erhält min(sein natürliches Timeout, das verbleibende Budget), und die Kaskade stoppt das Starten neuer Stufen, sobald zu wenig Zeit übrig ist. Setze 20.000 für interaktive Latenzanforderungen. Belasse den Standardwert für Bulk-Crawls, die längere Laufzeiten tolerieren.
forceProxy ist standardmäßig aktiviert. Auto greift nie von FourAs Origin-IP auf das Ziel zu, es sei denn, du setzt forceProxy: false. Eine Besonderheit: Einige Seiten (interaktives Cloudflare mit IP-Trust-Prüfung) funktionieren von einer sauberen Rechenzentrums-IP tatsächlich besser als von einem Residential-Exit mit niedrigem Trust-Score. forceProxy: false kann bestimmte Ziele also einfacher machen, nicht schwerer. Wenn du wiederholte Challenges auf einem bestimmten Host siehst, lohnt es sich, dies zu deaktivieren.
ignoreProxies ist eine clientseitige Avoid-Liste. Übergib Proxy-IDs, von denen du weißt, dass sie verbrannt sind (aus einem früheren session.proxy, das bei dir in ein Rate Limit gelaufen ist), und Auto überspringt sie überall: bei der Wiederverwendung warmer Sessions, der Exit-Suche und dem Sub-Call an Proxy Finder. Auto wählt den Exit also nicht erneut aus, den du gerade ausgeschlossen hast.
meta ermöglicht dir außerdem, eigene Dashboards darauf aufzubauen: welche Hosts heute die Browser-Stufe erreicht haben, durchschnittliche Versuche pro Zustellung, Verhältnis von Solved-Challenge-Fetches zu sauberen Abrufen. Wenn ein bestimmter Host plötzlich von 2 auf 10 Credits ansteigt, ist das ein Signal für Session Decay, auf das du reagieren kannst, bevor deine Rechnung steigt.
Ein Beispiel, das alle vier kombiniert:
import requests
r = requests.post(
"https://api.foura.ai/api/auto",
headers={"X-API-Key": "pk_live_..."},
json={
"url": "https://example.com/product/9876",
"timeout_ms": 30000,
"forceProxy": True,
"ignoreProxies": ["CLN1B8", "K7X9AB"],
"validate": {
"status": {"accept": [200]},
"data": {"accept": ['"price":'], "fail": ["captcha", "legal reasons"]}
}
}
).json()
# If Auto delivered, keep the session for the next call to this host
if r.get("status") == 200 and "session" in r:
session = r["session"] # {proxy, cookies, userAgent}
print(r["meta"]["rung"], r["meta"]["credits"], r["meta"]["attempts"])
Für das validate-Schema selbst, lies die frühere Anleitung in Validate Rules Now Decide What Counts as Success.
Was als Nächstes kommt
Zwei Dinge stehen aktuell auf der Roadmap für Auto.
Als Nächstes kommt die Session-Inspektion im Dashboard. Aktuell liegen die Sessions, die Auto pro Host verwaltet, rein intern im Service. Du hast keine Einsicht, wenn du einen Verbrauch auf deiner Seite debuggen willst. Wir bauen eine Session-Ansicht pro Host, damit du gecachte Sessions, ihr Alter, ihre verbleibende Lebensdauer und die Rung-Historie hinter jeder einzelnen sehen kannst. Dazu kommt ein Button, um eine Session manuell zu verwerfen, wenn sich dein Ziel ändert und du weißt, dass der Cache falsch liegt.
Danach folgen präzisere Kostenkontrollen. Ein hartes Credit-Limit pro Request (gib bei diesem Call nie mehr als X aus, brich sauber ab, falls nötig) und ein "single-only"-Modus für Teams, deren Targets niemals die Browser-Stufe brauchen. Beide Features laufen aktuell hinter Feature-Flags.
Der Sinn von Auto ist, dass du dir keine Gedanken darüber machst, welches Produkt du aufrufst. Das bedeutet nicht, dass du keine Einsicht hast. Jede Response liefert den genutzten Rung und die erstellte Session mit. Lies diese beiden Felder aus und du weißt genau, warum deine Calls das kosten, was sie kosten.