What it means
The resource has several representations (language, format) and the client or user should pick one. The server may suggest a preferred one via Location.
Common causes
- Content negotiation could not choose between variants
- A server lists alternate formats or languages
How to fix it
As a client or visitor
Follow Location if present, or choose from the listed links. Browsers do not pick automatically.
As the site or API owner
Prefer server-driven negotiation (Accept, Accept-Language) and return 200 with the best match; 300 is rarely the best user experience.
Example response
HTTP/1.1
HTTP/1.1 300 Multiple Choices
Date: Tue, 07 Oct 2025 09:30:00 GMT
Server: nginx
Link: </doc.en.html>; rel=alternate; hreflang=en
Link: </doc.de.html>; rel=alternate; hreflang=de
Content-Length: 0 Specification
FAQ
› Do browsers follow a 300 automatically?
Some follow the Location header if one is present; otherwise the user sees the page body with choices.
› Is 300 good for multilingual sites?
Usually not. Redirect with 302 or serve the right language with hreflang links instead.