Kết quả Request
Mỗi request gửi đến FourA API đều được phân loại vào chính xác một kết quả (outcome). Kết quả này được tính toán một lần tại thời điểm request và được ghi nhận cho API key của bạn. Dashboard, activity feed và hệ thống thanh toán của bạn đều đọc cùng một trường dữ liệu này.
Chỉ trạng thái success mới bị tính phí.
Bảy loại kết quả
| Kết quả | Phân lớp | Ý nghĩa |
|---|---|---|
success |
n/a | Một response hợp lệ đã được phân phối. Được tính vào hạn mức tính phí của bạn. |
application_error |
target | Mục tiêu trả về HTTP 200, nhưng body chứa một trường lỗi. |
application_fail |
target | Mục tiêu trả về mã không phải 2xx mà các quy tắc validate của bạn không chấp nhận, hoặc không có response nào. |
client_error |
caller | Request của bạn bị từ chối trước khi rời khỏi FourA. Tham số không hợp lệ, giá trị proxy sai định dạng, hoặc URL bị chặn bởi bảo vệ SSRF. |
rate_limit |
FourA | Bạn đã đạt giới hạn RPM hoặc giới hạn concurrency. |
service_error |
FourA | Backend trả về mã 5xx, hoặc body của nó không phải là JSON hợp lệ. |
service_fail |
FourA | Lỗi mạng: timeout, kết nối bị từ chối, lỗi DNS, hoặc client ngắt kết nối. |
Cột phân lớp cho biết bên nào chịu trách nhiệm:
- target kết quả liên quan đến trang web bạn đã gọi. Request của bạn đã đến FourA thành công, và FourA đã kết nối đến mục tiêu thành công. Bản thân mục tiêu đã trả về một lỗi.
- caller kết quả có nghĩa là request của bạn chưa bao giờ có cơ hội được thực hiện. Hãy sửa lại cấu trúc request.
- FourA kết quả thuộc về trách nhiệm của chúng tôi. Hãy thử lại, và kiểm tra status page nếu lỗi tiếp tục xảy ra.
Một trang web mục tiêu trả về 403 là application_fail, không phải client_error. Cuộc gọi của bạn được định dạng đúng. Trang web đó chỉ đơn giản là từ chối.
Trạng thái Success có nhận biết validate
Nếu không có validate, API chỉ đánh dấu một request là success khi mục tiêu trả về HTTP 200.
Khi có validate, trạng thái success sẽ tuân theo các quy tắc bạn đã khai báo. Nếu bạn thiết lập để API chấp nhận cả 200 và 403 cho một request nhất định, mã 403 trả về vẫn được coi là success. Body vẫn được gửi đến bạn mà không thay đổi.
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] }
}
}'
Trong cuộc gọi này, một response 403 được tính là success và được tính phí như một request. Một response 500 được tính là application_fail và không bị tính phí.
Logic tương tự cũng áp dụng cho validate.headers và validate.data. Bất kỳ response nào được engine chấp nhận dựa trên các quy tắc của bạn đều được trả về dưới dạng success, bất kể trạng thái HTTP là gì.
Ảnh hưởng đến việc tính phí
| Kết quả | Tính phí | Tính vào hạn mức |
|---|---|---|
success |
Có | Có |
application_error |
Không | Không |
application_fail |
Không | Không |
client_error |
Không | Không |
rate_limit |
Không | Không |
service_error |
Không | Không |
service_fail |
Không | Không |
Chỉ những request phân phối thành công dữ liệu bạn yêu cầu mới bị tính phí. Các lỗi xảy ra phía FourA, phía mục tiêu, hoặc phía chính bạn đều được miễn phí.
Đọc kết quả trên Dashboard
Mỗi request mà API key của bạn thực hiện đều xuất hiện trên feed Activity kèm theo nhãn kết quả của nó. Các trang Metrics và Overview tổng hợp cùng một trường dữ liệu này để hiển thị biểu đồ tròn và dòng thời gian.
Khi bạn lọc Activity theo kết quả, bạn cũng có thể tập trung vào một sản phẩm duy nhất (Single, Proxy, Browser) để xem liệu một loại lỗi có phải là đặc thù của một endpoint cụ thể hay không.
Nguyên tắc thử lại (Retry Heuristics)
Một chính sách thử lại cơ bản dựa trên kết quả:
| Kết quả | Thử lại an toàn? | Khi nào |
|---|---|---|
success |
n/a | Bạn đã nhận được response. |
application_error |
Thỉnh thoảng | Đọc error body của mục tiêu. Một số lỗi là tạm thời, hầu hết thì không. |
application_fail |
Thỉnh thoảng | Nếu mục tiêu đang giới hạn tần suất (rate-limiting) của bạn, hãy giảm tốc độ. Nếu nó đang chặn bạn, hãy chuyển sang endpoint Proxy hoặc Browser. |
client_error |
Không | Request sẽ tiếp tục thất bại theo cùng một cách. Hãy sửa lại dữ liệu đầu vào. |
rate_limit |
Có | Tuân thủ giá trị retryAfter từ response body. |
service_error |
Có | Thử lại với khoảng thời gian giãn cách tăng dần (exponential backoff) ngắn. |
service_fail |
Có | Tương tự như service_error. |
Tài liệu liên quan
- API Errors: Các response lỗi ở cấp độ HTTP
- Rate Limits: Nguyên nhân kích hoạt
rate_limit - Metrics: Nơi bạn xem phân tích chi tiết các kết quả
- Activity Log: Lịch sử kết quả của từng request