300 Multiple Choices

The request has more than one possible representation and the server is asking the client to pick one.

Status

HTTP/1.1 300 Multiple Choices

Details

300 exists for agent-driven content negotiation. Instead of choosing a variant itself, the server lists the alternatives (different languages, formats, or encodings) and lets the client or the user decide. The list normally arrives as links in the body, and the server may still hint at a preferred option with a Location header.

It is almost never used. Server-driven negotiation with Accept headers and the Vary response header handles the same job without an extra round trip, so most sites simply serve their best guess with 200.

Headers

Common causes

Usage notes

For clients

For servers

Examples

A document published in several languages

HTTP request

GET /manual HTTP/1.1
Host: docs.example.com

HTTP response

HTTP/1.1 300 Multiple Choices
Content-Type: text/html; charset=utf-8
Location: /manual.en.html

<ul>
  <li><a href="/manual.en.html">English</a></li>
  <li><a href="/manual.de.html">Deutsch</a></li>
</ul>

Specifications

See also