426 Upgrade Required

The server refuses to answer over the current protocol and names the one it wants instead.

Last updated . How this page is checked.

Status code426
Status textUpgrade Required
Category4xx Client Error
Response has bodyUsually
SpecificationRFC 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

See also

References