Skip to main content
HTTP/3xx (Redirection)

300 Multiple Choices

The request has more than one possible response and the client should choose one of them.

❓ Why does this happen?

Content negotiation offered several representations (languages, formats) without a preferred default.

✅ How to fix it

Send explicit Accept / Accept-Language headers or follow the preferred Location header if present.

Return or handle 300 in your stack

// app/api/resource/route.ts
export function GET() {
  return Response.json(
    { error: "Multiple Choices", status: 300 },
    {
      status: 300
    }
  );
}

Live 300 mock endpoint

Point your app, tests, or retry logic at this free public URL to reproduce a real 300 response (CORS enabled, optional ?delay=ms up to 5000).

https://castov.com/api/mock/300

Frequently Asked Questions

What does HTTP Status 300 mean?
The request has more than one possible response and the client should choose one of them.
Why am I getting a 300 status code?
Content negotiation offered several representations (languages, formats) without a preferred default.
How do I fix a 300 Multiple Choices error?
Send explicit Accept / Accept-Language headers or follow the preferred Location header if present.
How can I test how my app handles a 300 response?
Send a request to https://castov.com/api/mock/300 — it returns a real 300 Multiple Choices response with CORS enabled. Add ?delay=2000 to simulate a slow server.

Other 3xx status codes

Browse the full HTTP status codes directory or troubleshoot terminal errors in the Error Fix Encyclopedia.