What HTTP 300 means
Intended for content negotiation, such as one document in several languages or formats. Browsers don’t choose automatically, so it is almost never used. Servers usually pick a representation themselves based on Accept headers.
Retrying
Not applicable: this isn’t an error.
Example response
HTTP/1.1 300 Multiple Choices
Date: Wed, 21 Oct 2026 10:30:00 GMT
How to return 300
res.redirect(300, '/new-path');
from fastapi.responses import RedirectResponse
return RedirectResponse("/new-path", status_code=300)
http.Redirect(w, r, "/new-path", http.StatusMultipleChoices)
location /old-path {
return 300 /new-path;
}
Related status codes
- 301 Moved Permanently : The resource has a new permanent URL, given in the Location header.
- 302 Found : A temporary redirect to the URL in the Location header.
- 406 Not Acceptable : The server can’t produce a response in any format listed in the Accept headers.
Other 3xx status codes
301 Moved Permanently · 302 Found · 303 See Other · 304 Not Modified · 307 Temporary Redirect · 308 Permanent Redirect
See the full list of HTTP status codes.
Sources
Spotted a mistake? Email hello@devtoolsmith.com and we’ll fix it.
Frequently asked questions
What does HTTP 300 Multiple Choices mean?
HTTP 300 Multiple Choices means the resource has several representations and the client should pick one. Intended for content negotiation, such as one document in several languages or formats. Browsers don’t choose automatically, so it is almost never used. Servers usually pick a representation themselves based on Accept headers.