Wyniki żądań
Każde żądanie do FourA API jest przypisywane do dokładnie jednego wyniku. Wynik jest określany w momencie żądania i zapisywany na Twoim kluczu API. Twój dashboard, lista aktywności i rozliczenia korzystają z tego samego pola.
Tylko success podlega opłacie.
Siedem wyników
| Wynik | Warstwa | Co oznacza |
|---|---|---|
success |
n/a | Dostarczono prawidłowy response. Wlicza się do płatnego limitu. |
application_error |
target | Cel zwrócił HTTP 200, ale body zawierało pole błędu. |
application_fail |
target | Cel zwrócił kod inny niż 2xx, którego nie zaakceptowały Twoje reguły validate, lub nie zwrócił żadnego response. |
client_error |
caller | Twoje żądanie zostało odrzucone, zanim opuściło FourA. Błędne parametry, nieprawidłowy format wartości proxy, URL zablokowany przez ochronę SSRF. |
rate_limit |
FourA | Osiągnięto limit RPM lub limit jednoczesnych połączeń. |
service_error |
FourA | Backend zwrócił błąd 5xx lub jego body nie było prawidłowym JSON. |
service_fail |
FourA | Błąd sieci: timeout, odrzucenie połączenia, błąd DNS, rozłączenie klienta. |
Kolumna warstwy wskazuje, kto odpowiada za dany wynik:
- target wyniki dotyczą wywoływanej strony. Twoje żądanie dotarło do FourA bez problemu, a FourA pomyślnie połączyło się z celem. Sam cel zwrócił jednak błąd.
- caller wyniki oznaczają, że Twoje żądanie nie miało szans na realizację. Popraw strukturę żądania.
- FourA wyniki leżą po naszej stronie. Spróbuj ponownie, a jeśli problem nie ustąpi, sprawdź stronę statusu.
Strona docelowa zwracająca 403 to application_fail, a nie client_error. Twoje wywołanie było poprawne. Strona po prostu odmówiła dostępu.
Success uwzględnia reguły validate
Bez parametru validate API oznacza żądanie jako success tylko wtedy, gdy cel zwróci HTTP 200.
Z użyciem validate status success zależy od zdefiniowanych przez Ciebie reguł. Jeśli wskażesz w API, że zarówno 200, jak i 403 są akceptowalne dla danego żądania, 403 zostanie zwrócone jako success. Body nadal trafi do Ciebie w niezmienionej formie.
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://target.example/feed",
"validate": {
"status": { "accept": [200, 403] }
}
}'
W tym wywołaniu odpowiedź 403 liczy się jako success i jest rozliczana jako jedno żądanie. Odpowiedź 500 liczy się jako application_fail i nie podlega opłacie.
Ta sama logika dotyczy validate.headers i validate.data. Każda odpowiedź, którą silnik zaakceptuje na podstawie Twoich reguł, zostanie zwrócona jako success, niezależnie od statusu HTTP.
Wpływ na rozliczenia
| Wynik | Płatne | Wlicza się do limitu |
|---|---|---|
success |
Tak | Tak |
application_error |
Nie | Nie |
application_fail |
Nie | Nie |
client_error |
Nie | Nie |
rate_limit |
Nie | Nie |
service_error |
Nie | Nie |
service_fail |
Nie | Nie |
Opłaty są naliczane tylko za żądania, które dostarczyły oczekiwane dane. Błędy po stronie FourA, po stronie celu lub po Twojej stronie są bezpłatne.
Odczytywanie wyników w Dashboardzie
Każde żądanie wykonane przy użyciu Twojego klucza API pojawia się na liście Activity z odpowiednią etykietą wyniku. Strony Metrics i Overview agregują to samo pole na potrzeby wykresów kołowych i osi czasu.
Filtrując Activity po wyniku, możesz również skupić się na pojedynczym produkcie (Single, Proxy, Browser), aby sprawdzić, czy dany rodzaj błędu dotyczy konkretnego endpointu.
Heurystyka ponawiania prób
Wstępna polityka ponawiania prób oparta na wynikach:
| Wynik | Czy ponawiać? | Kiedy |
|---|---|---|
success |
n/a | Masz już response. |
application_error |
Czasami | Odczytaj body błędu z celu. Niektóre są przejściowe, większość nie. |
application_fail |
Czasami | Jeśli cel nakłada rate limit, zwolnij. Jeśli Cię blokuje, przełącz się na endpoint Proxy lub Browser. |
client_error |
Nie | Żądanie ponownie zakończy się tym samym błędem. Popraw dane wejściowe. |
rate_limit |
Tak | Zastosuj się do retryAfter z body odpowiedzi. |
service_error |
Tak | Krótki wykładniczy backoff. |
service_fail |
Tak | Tak samo jak service_error. |
Powiązane
- API Errors: Odpowiedzi z błędami na poziomie HTTP
- Rate Limits: Co wyzwala
rate_limit - Metrics: Gdzie szukać szczegółowego podziału wyników
- Activity Log: Historia wyników dla poszczególnych żądań