| Status code | 426 |
|---|---|
| Status text | Upgrade Required |
| Category | 4xx Client Error |
| Response has body | Usually |
| Specification | RFC 9110 |
What does 426 Upgrade Required mean?
The server refuses to answer over the current protocol and names the one it wants instead. It belongs to the 4xx Client Error class, which means the request contains bad syntax or cannot be fulfilled. Something about the request needs to change.
When do APIs return 426?
The response carries an Upgrade header listing the acceptable protocols. You will see it when an ordinary HTTP request is sent to an endpoint that only speaks WebSocket, or when a server insists on a newer HTTP or TLS version than the client offered.
How to fix a 426 Upgrade Required
Read the Upgrade header and switch. For a WebSocket endpoint, connect with a WebSocket client instead of a plain HTTP request. For a protocol version requirement, update the client or its TLS library.
Reproduce a 426 response
The fastest way to understand a status code is to trigger one and read the full response. Open the
API tester and send a request to https://httpbin.org/status/426 — you will
see the 426 status along with every response header the server sent. Comparing those headers against
a working request is often what reveals the cause.
When you are debugging a real endpoint, check the response headers as carefully as the body, and confirm you are using the right HTTP method for the operation.
Related 4xx status codes
400 Bad Request
The server could not understand the request because it is malformed.
401 Unauthorized
The request lacks valid authentication credentials. Despite the name, this means unauthenticated.
402 Payment Required
The request cannot be processed until payment is made.
403 Forbidden
The server understood the request and knows who you are, but refuses to authorise it.
404 Not Found
The server cannot find the requested resource.
405 Method Not Allowed
The endpoint exists but does not support the HTTP method you used.
See also
- 101 Switching Protocols — The server is switching to a different protocol as requested by the client's Upgrade header.
- 505 HTTP Version Not Supported — The server does not support the major HTTP version named in the request.
References
- RFC 9110, 426 Upgrade Required — The specification that defines this status code.
- MDN: 426 Upgrade Required — MDN's reference page for this status code.