HTTP Errors

What Is the 406 Status Code? (Not Acceptable)

On this page

HTTP 406 Not Acceptable means the server can't return content matching your Accept headers. When you make a request, your client sends "Accept" headers that say what formats and languages it can handle (via Accept, Accept-Language, or Accept-Encoding). A 406 means the server has nothing that fits what you asked for, so this back-and-forth — called content negotiation — failed. It's also written "HTTP 406" or just "406 error" / "406 status code."

Quick facts

Status code406
MeaningNot Acceptable
Category4xx Client Error
Common causes (scraping)Missing/empty Accept headers, content-negotiation mismatch, anti-bot header check
Right responseFix the request / retry with backoff; for disguised blocks use a real-browser unblock

What a 406 Not Acceptable means

Your request's Accept headers (Accept, Accept-Language, or Accept-Encoding) tell the server what you can handle — for example, JSON instead of HTML, or English instead of French. A 406 means the server has no version that matches those demands, so content negotiation failed. In short, a 406 status code is the server saying it can't return content matching your Accept headers.

Why scrapers see 406

This is common with bare HTTP clients — simple request libraries that, unlike a browser, send no Accept header, an empty one, or a combination no real browser would. Some anti-bot setups deliberately return 406 to requests whose Accept-* headers look automated, because real browsers send a very specific, consistent set.

How to fix a 406 error

Send realistic, browser-like Accept, Accept-Language, and Accept-Encoding headers — copy them verbatim from a real browser and keep them consistent with your User-Agent (the string that identifies your client). Even just stripping compression headers to make parsing easier can trigger 406. When 406 is an anti-bot signal, a full real-browser request via Web Access API resolves it.

Related terms

Concept map

How 406 Status Code (406 Not Acceptable) connects

The terms most directly tied to this one. Hover a node to see its neighbours, click to preview, drag to rearrange.

0 terms · 0 connections
You are here · HTTP Errors
Building map…

Frequently asked questions

Is 406 a client or server error?

It's a client-side (4xx) error, meaning the problem is on your end — the server is pointing at something in your request.

Does a 406 mean I'm blocked when scraping?

Not necessarily. A 406 points at your request, not a ban — but anti-bot layers sometimes return it instead of a 403, so check the response body and headers to be sure.

How do I fix a 406 error?

The cause is that the server can't return content matching your Accept headers, so the fix targets that. Correct the offending part of the request, then retry.

What's the difference between 406 and 415?

406 is about the response: the server can't produce what your Accept headers asked for. 415 (Unsupported Media Type) is about the request: the server won't accept the Content-Type — the format you said your request body is in — that you sent.

Last updated: 2026-05-31