Häufige Probleme
Lösungen für die häufigsten Probleme bei der Nutzung der FourA API.
Leere oder unvollständige Inhalte
Symptom: Die API gibt einen Status 200 zurück, aber das Feld data ist leer oder es fehlen erwartete Inhalte.
Ursache: Die Zielseite nutzt JavaScript, um Inhalte nach dem ersten Laden der Seite zu rendern.
Lösung: Wechsle vom single-endpoint zum browser-endpoint. Nutze checkText, um zu prüfen, ob der Inhalt geladen wurde:
curl -X POST https://eu.api.foura.ai/api/browser/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/products",
"timeout_ms": 15000,
"checkText": "product-list"
}'
Hinweis: Der browser-endpoint gibt Inhalte im Feld body zurück (nicht in data).
403 Forbidden oder Captcha-Seiten
Symptom: Die API gibt HTML zurück, das eine CAPTCHA-Abfrage oder eine Seite mit verweigertem Zugriff enthält.
Ursache: Die Zielseite hat den Request als automatisiert erkannt und blockiert.
Lösung: Nutze den proxy-endpoint für automatische IP-Rotation:
curl -X POST https://eu.api.foura.ai/api/proxy/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"maxTries": 5,
"request": {
"method": "GET",
"url": "https://example.com/prices",
"unblocker": true
}
}'
Wenn das Problem weiterhin besteht, erhöhe maxTries, um der Proxy-Rotation mehr Versuche zu ermöglichen.
Timeout-Fehler
Symptom: Requests schlagen mit einem Timeout-Fehler fehl.
Ursache: Das Laden der Zielseite dauert länger als der konfigurierte Timeout.
Lösung: Erhöhe timeout_ms (Standard ist 15s für single, 30s für browser, 45s für proxy):
curl -X POST https://eu.api.foura.ai/api/browser/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://slow-site.com",
"timeout_ms": 60000
}'
Prüfe bei browser-Requests auch, ob dein checkText-Wert tatsächlich auf der Seite erscheint. Ein Tippfehler führt immer zu einem Timeout.
429 Too Many Requests (RPM-Limit)
Symptom: Die API gibt den Status 429 mit der Meldung „rate limit exceeded“ zurück.
Ursache: Du hast dein Limit für Requests pro Minute (RPM) überschritten. Dies unterscheidet sich von Concurrency-Limits (siehe 503 unten).
Lösung: Nutze das Feld retryAfter aus der Response, um vor dem nächsten Versuch die richtige Zeitspanne zu warten:
import time
import requests
def make_request(endpoint_url, payload, retries=3):
for i in range(retries):
resp = requests.post(
endpoint_url,
headers={"X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json=payload
)
if resp.status_code == 429:
body = resp.json()
wait = body.get("retryAfter", 2 ** i)
time.sleep(wait)
continue
return resp
raise Exception("Rate limit not resolved after retries")
# Beispiel: einzelner Request
make_request(
"https://eu.api.foura.ai/api/single/",
{"method": "GET", "url": "https://example.com"}
)
Prüfe deine aktuelle Nutzung im Dashboard, um deine Rate-Limits einzusehen.
503 Service Unavailable
Symptom: Die API gibt den Status 503 zurück.
Ursache: Dies geschieht in zwei Fällen:
- Concurrency-Limit erreicht. Du hast zu viele gleichzeitige Requests laufen. Dies unterscheidet sich von 429, was die Requests pro Minute begrenzt. Bei 503 hast du dein RPM-Limit nicht überschritten, aber die maximale Anzahl an gleichzeitig laufenden Requests erreicht.
- Dienst vorübergehend deaktiviert. Es wird gerade ein Wartungsfenster durchgeführt.
Beide Fälle enthalten ein retryAfter-Feld in der Response.
Lösung: Warte die in retryAfter angegebenen Sekunden und versuche es erneut:
import time
import requests
def make_request_with_retry(endpoint_url, payload, retries=3):
for i in range(retries):
resp = requests.post(
endpoint_url,
headers={"X-API-Key": "YOUR_API_KEY", "Content-Type": "application/json"},
json=payload
)
if resp.status_code in (429, 503):
body = resp.json()
wait = body.get("retryAfter", 2 ** i)
time.sleep(wait)
continue
return resp
raise Exception("Request not resolved after retries")
Wenn du regelmäßig an 503-Concurrency-Limits stößt, reduziere die Anzahl paralleler Requests in deiner Scraping-Pipeline oder prüfe das Concurrency-Limit deines Tarifs im Dashboard.
401 Authentifizierungsfehler
Symptom: Jeder Request gibt 401 Unauthorized zurück.
Checkliste:
- Stelle sicher, dass der Header
X-API-Key: YOUR_API_KEYlautet (nichtAuthorization: BeareroderApi-Key) - Prüfe deinen API-Key auf zusätzliche Leerzeichen oder Zeilenumbrüche
- Erstelle im Dashboard einen neuen Key, falls der aktuelle kompromittiert sein könnte
Unerwartetes HTML statt JSON
Symptom: Du hast JSON von der Zielseite erwartet, aber HTML erhalten.
Ursache: Die Zielseite liefert je nach Header möglicherweise unterschiedliche Inhalte aus.
Lösung: Füge einen Accept-Header hinzu und aktiviere unblocker für realistische Browser-Header:
curl -X POST https://eu.api.foura.ai/api/single/ \
-H "X-API-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"method": "GET",
"url": "https://api.example.com/data",
"headers": [["Accept", "application/json"]],
"unblocker": true
}'
Du kannst auch tryJsonData auf true setzen, damit FourA JSON-Responses automatisch parst.
Immer noch Probleme?
Wenn keine der oben genannten Lösungen hilft:
- Prüfe die Statusseite auf aktuelle Störungen
- Überprüfe deine Request-Metriken im Dashboard
- Kontaktiere den Support unter support@foura.ai mit deinen Request-Details
Nächste Schritte
- Fehlerbehandlung: Referenz der API-Fehlercodes
- Den richtigen Endpoint wählen: Wähle den besten Ansatz für dein Ziel
- Dashboard-Übersicht: Überwache deine Requests