Xử lý lỗi

Danh sách mã lỗi và cách xử lý khi gọi API

Cấu trúc response lỗi

Khi xảy ra lỗi, API trả về JSON với format:

JSON
{
  "success": false,
  "error": {
    "code": "ERROR_CODE",
    "message": "Mô tả lỗi chi tiết"
  }
}

HTTP Status Codes

StatusÝ nghĩaCách xử lý
200Thành côngXử lý data bình thường
400Bad RequestKiểm tra lại tham số gửi lên
401UnauthorizedKiểm tra API Key
403ForbiddenKey không có quyền hoặc dịch vụ không khả dụng
404Not FoundEndpoint không tồn tại
429Too Many RequestsVượt rate limit, đợi và thử lại
500Internal Server ErrorLỗi hệ thống, thử lại sau
502Bad GatewayUpstream service không phản hồi
503Service UnavailableDịch vụ đang bảo trì

Mã lỗi thường gặp

Xác thực

  • UNAUTHORIZED — Thiếu header Authorization
  • INVALID_API_KEY — Key không hợp lệ
  • INSUFFICIENT_SCOPE — Key không đủ quyền
  • KEY_DISABLED — Key đã bị vô hiệu hóa

Validation

  • VALIDATION_ERROR — Tham số không hợp lệ
  • MISSING_REQUIRED_FIELD — Thiếu trường bắt buộc
  • INVALID_DOMAIN — Tên miền không hợp lệ

Rate Limit

  • RATE_LIMIT_EXCEEDED — Vượt giới hạn truy cập

Upstream

  • UPSTREAM_ERROR — Dịch vụ upstream lỗi
  • UPSTREAM_TIMEOUT — Dịch vụ upstream không phản hồi kịp

Ví dụ xử lý lỗi

RESPONSE=$(curl -s -H "Authorization: Bearer inet_sk_your_key" "$URL")
SUCCESS=$(echo "$RESPONSE" | jq -r '.success')
ERROR_CODE=$(echo "$RESPONSE" | jq -r '.error.code // empty')

if [ "$SUCCESS" = "false" ]; then
  case "$ERROR_CODE" in
    "RATE_LIMIT_EXCEEDED") echo "Rate limited, retry later" ;;
    "INVALID_API_KEY")     echo "Check your API key" ;;
    *)                     echo "Error: $(echo "$RESPONSE" | jq -r '.error.message')" ;;
  esac
fi

Lưu ý quan trọng

  • Luôn kiểm tra field success trong response
  • Không dựa vào HTTP status code duy nhất — đọc error.code để xử lý chính xác
  • Log error.message để debug
  • Với lỗi 5xx, thử lại sau 1-2 giây (không retry liên tục)