Trong quá trình xây dựng automation với n8n, nhiều người gặp phải lỗi 401 Unauthorized (Authorization failed) khi gọi API, khiến workflow bị gián đoạn và dữ liệu không thể lấy hoặc gửi thành công. Đây là một lỗi thường xuất hiện khi thông tin xác thực (Authentication) không hợp lệ hoặc thiếu quyền truy cập. Bài viết này sẽ hướng dẫn bạn cách nhận diện nguyên nhân và khắc phục lỗi 401 Unauthorized (Authorization failed) trong n8n một cách nhanh chóng.
Lỗi 401 Unauthorized (Authorization failed) là gì?
Lỗi 401 Unauthorized (Authorization failed) là một phản hồi HTTP thường gặp khi gọi API từ n8n, cho biết yêu cầu của bạn bị từ chối do thiếu hoặc sai thông tin xác thực (authentication). Khi n8n gửi request đến API nhưng không cung cấp đúng Authorization Header, API Key, token, username/password (Basic Auth) hoặc token đã hết hạn, máy chủ sẽ trả về mã lỗi 401 kèm thông báo Authorization failed.

Khác với lỗi 403 Forbidden (từ chối truy cập dù có xác thực), lỗi 401 chỉ ra rằng bạn cần kiểm tra lại cách thức authentication trong node HTTP Request (headers, query parameters) hoặc làm mới token trước khi thử lại. Đây là lỗi phổ biến khi tích hợp API yêu cầu bảo mật hoặc các dịch vụ đám mây.
Các nguyên nhân chính gây ra lỗi 401 Unauthorized
Sai hoặc thiếu thông tin xác thực
- API key, token, username/password (Basic Auth) bị nhập sai.
- Quên thêm Authorization header (Bearer Token, API Key).
- Không bật chế độ authentication trong nút HTTP Request của n8n.
Token hết hạn hoặc bị thu hồi
- Token OAuth 2.0/JWT đã hết thời gian hiệu lực.
- Token bị thu hồi do đổi mật khẩu hoặc reset từ phía nhà cung cấp API.
Sai phương thức xác thực
- API yêu cầu Bearer Token nhưng lại dùng Basic Auth (hoặc ngược lại).
- Nhầm lẫn giữa API Key trong header và query parameter (ví dụ: ?api_key=XXX).

Không đủ quyền (scope/permissions)
- Token có quyền hạn hạn chế, không đủ để truy cập tài nguyên.
- Ví dụ: API của GitHub yêu cầu scope repo nhưng token chỉ có quyền read:user.
Lỗi cấu hình API endpoint
- URL API không chính xác (ví dụ: gọi api.example.com/v1 thay vì api.example.com/v2).
- Thiếu Content-Type header (khi gửi JSON body).
API yêu cầu xác thực bổ sung
- Một số API cần IP whitelisting hoặc 2FA (Two-Factor Authentication).
- Ví dụ: Cloudflare API yêu cầu thêm X-Auth-Email và X-Auth-Key.
Lỗi từ phía nhà cung cấp API
- API đang bảo trì hoặc có thay đổi về authentication method.
- Rate limiting (quá nhiều request sai auth liên tục).
Cách khắc phục lỗi Lỗi 401 Unauthorized (Authorization failed) là gì? khi gọi API trong n8n
Lưu ý: Bài viết chỉ giả định một trong các nguyên nhân kể trên. Bạn cần xác định nguyên nhân cụ thể cho workflow của mình.
Dưới đây là một workflow n8n đơn giản sử dụng node HTTP Request để gọi API OpenWeatherMap nhằm lấy thông tin thời tiết hiện tại của một thành phố. Workflow này giả định gặp lỗi 401 Unauthorized do cấu hình sai API Key. API này yêu cầu một API Key hợp lệ được truyền qua tham số appid trong URL.
Giả định workflow mẫu bị lỗi 401
Bước 1: Truy cập https://openweathermap.org/api và đăng ký một tài khoản miễn phí. Sau khi đăng ký, bạn sẽ nhận được một API Key. Key này sẽ được sử dụng để xác thực các yêu cầu API của bạn. (Lưu ý: API Key mới có thể mất một thời gian để kích hoạt).

Bước 2: Tạo một workflow mới trong n8n.
Bước 3: Thêm node Trigger manually. Đây thường là node khởi đầu để bạn test một chức năng của n8n.
Bước 4: Thêm một node HTTP Request vào workflow và kết nối nó với node Trigger manually.

Bước 5: Cấu hình node HTTP Request :
- Method: Chọn GET
- URL: Nhập
https://api.openweathermap.org/data/2.5/weather?q=hanoi
Như vây, URL trên thiếu phần Query Parameters (bao gồm &appid=YOUR_API_KEY)
Khi bạn thực thi workflow này, bạn sẽ nhận được lỗi 401 Unauthorized. Lý do là vì bạn đang cố gắng truy cập API mà không cung cấp API Key hợp lệ.

Khắc phục lỗi 401 Unauthorized
Để khắc phục lỗi này, chúng ta cần cung cấp API Key hợp lệ thông qua tham số appid .
Cập nhật node HTTP Request bằng cách bổ sung thêm phần &appid=YOUR_API_KEY:
https://api.openweathermap.org/data/2.5/weather?q=Hanoi&appid=YOUR_API_KEY
Lưu ý: Thay thế YOUR_API_KEY bằng API của bạn.

Khi bạn thực thi workflow đã được sửa đổi, node HTTP Request sẽ gửi yêu cầu với API Key hợp lệ. Lần này, yêu cầu sẽ được xác thực thành công và bạn sẽ nhận được dữ liệu thời tiết cho Hà Nội.
Kết quả là một JSON chứa thông tin thời tiết tại Hà Nội:
coord – tọa độ thành phố:
"lon": 105.8412, // Kinh độ
"lat": 21.0245 // Vĩ độ
weather – mô tả thời tiết:
"id": 803, // Mã thời tiết
"main": "Clouds", // Trời nhiều mây
"description": "broken clouds", // Mây rải rác
"icon": "04d" // Biểu tượng (ngày)
main – thông số chính:
"temp": 304.55, // Nhiệt độ (Kelvin) ≈ 31.4°C
"feels_like": 307.83, // Cảm giác như 34.7°C
"pressure": 1004 // Áp suất (hPa)
Ngoài ra còn nhiều thông số khác bên dưới.
Nếu muốn hiển thị độ °C thay vị độ Kelvin, bạn có thể bổ sung thuộc tính &units=metric vào URL.
https://api.openweathermap.org/data/2.5/weather?q=Hanoi&appid=YOUR_API_KEY&units=metric

Kết luận
401 Unauthorized khi gọi API từ n8n tuy gây gián đoạn workflow nhưng thường dễ khắc phục nếu bạn hiểu rõ nguyên nhân. Với ví dụ workflow gọi API trong bài viết, hy vọng bạn đã nắm được cách xử lý và phòng tránh lỗi này để quy trình automation trên n8n luôn ổn định và hiệu quả. Chúc bạn thành công!
Những câu hỏi thường gặp
Tôi nên cấu hình node HTTP Request trong n8n như thế nào để tránh lỗi 401?
- Đảm bảo URL chứa tham số appid đúng.
- Nếu API yêu cầu header, thêm vào tab Headers (ví dụ: Authorization: Bearer your_valid_api_key_12345).
- Kiểm tra phương thức xác thực trong tab Credentials nếu dùng OAuth.
API Key trong URL hay Header thì tốt hơn?
Về kỹ thuật cả hai đều được, nhưng Header an toàn hơn vì không hiển thị API Key trực tiếp trên URL, tránh bị lộ khi chia sẻ workflow hoặc log.
Tôi đã nhập đúng API Key nhưng vẫn bị 401, tại sao?
Nguyên nhân có thể do:
- Nhập API Key ở sai vị trí (URL, Header hoặc Body không đúng yêu cầu của API)
- API Key đã hết hạn hoặc bị thu hồi
- Sai định dạng Authorization Header
Làm sao để kiểm tra xem API Key của tôi có hoạt động không?
Bạn có thể sử dụng công cụ như Postman hoặc curl để gửi thử yêu cầu GET tới endpoint OpenWeatherMap (ví dụ: https://api.openweathermap.org/data/2.5/weather?q=Hanoi&appid=your_api_key).
Nếu nhận được dữ liệu JSON, API Key hoạt động. Nếu nhận lỗi 401, hãy kiểm tra lại API Key.