As of October 7, 2026, Shifter has the largest pool of live US IPs, more than Oxylabs and Bright Data, at a fraction of the cost.Shifter now has the largest pool of live US IPs

See benchmarks

Transparent, Anonymous & Elite Proxies: What Target Sites Can See

What transparent, anonymous and elite proxies reveal through HTTP headers, why the labels only apply to plain HTTP, and what target sites check beyond headers.

Product Marketing · Updated October 19, 2026 · 8 min read
transparentHost: shop.exampleVia: 1.1 proxyX-Forwarded-For: 198.51.100.7anonymousHost: shop.exampleVia: 1.1 proxyeliteHost: shop.examplenone added
One plain HTTP request, three proxies. Amber headers give the proxy away.
Knowledge
On this page
  1. The three levels, header by header
  2. The labels only apply to plain HTTP
  3. What target sites check beyond headers
  4. How to check a proxy’s anonymity level
  5. Where residential proxies fit
  6. FAQ
  7. The bottom line

Proxy lists and some providers sort proxies into three anonymity levels: transparent, anonymous and elite. The labels describe one narrow thing, which is what the proxy adds to the HTTP headers of your request. A transparent proxy passes your real IP address along, an anonymous proxy hides it but admits it is a proxy, and an elite proxy, also called a high-anonymity proxy, adds nothing at all.

That is useful to know, but it answers a smaller question than most buyers think. Target sites look at far more than headers, and the type of IP address matters more than the anonymity label. This guide explains what each level reveals, how to check a proxy yourself, and why a residential proxy that adds no headers is the combination that actually looks like an ordinary visitor.

The three levels, header by header

When a proxy forwards a plain HTTP request, it can add headers that tell the destination a proxy was involved. Three matter:

  • Via names the proxy that handled the request. The HTTP standard asks proxies to add it.
  • X-Forwarded-For carries the address of the original client. It is not part of the core standard but almost every proxy and load balancer understands it.
  • Forwarded is the standardised version of the same idea, defined in RFC 7239, with fields for the client address, the protocol and the host.

The anonymity levels are simply combinations of these headers:

LevelYour real IP visibleProxy use visibleTypical headers added
TransparentYesYesVia, X-Forwarded-For with your IP
AnonymousNoYesVia, or X-Forwarded-For with the proxy’s own IP or a blank value
Elite (high anonymity)NoNot from headersNone

A transparent proxy is not a broken proxy. Company networks, schools and caching servers use them on purpose, because the point is to filter or cache traffic, not to hide anyone. The word “transparent” also has a second, unrelated meaning in networking: a proxy that intercepts traffic without the client configuring it. Our proxy server glossary entry covers that sense. In the anonymity scale it only means “passes your address on”.

The labels only apply to plain HTTP

Most of the web now runs on HTTPS, and that changes the picture. For an HTTPS site, your client asks the proxy to open a tunnel with a CONNECT request, then speaks TLS directly to the destination through that tunnel. The proxy only relays encrypted bytes. It cannot read or add headers inside the tunnel, so it cannot add Via or X-Forwarded-For even if it wanted to.

In practice that means:

  • For HTTPS targets, every working proxy behaves like an elite proxy as far as headers go.
  • For plain HTTP targets, the anonymity level is real and worth checking.
  • A proxy that is “elite” on an HTTPS test may still leak headers on HTTP, so test the protocol you actually use.

What target sites check beyond headers

Removing proxy headers is the easy part. Sites that care about automated or proxied traffic look at signals the proxy cannot simply leave out.

The IP address itself. Every address belongs to a network, and IP databases record whether that network is a home broadband provider, a mobile carrier, a hosting company or a known proxy range. A request with no proxy headers from a cloud data centre still looks like it came from a server. This is why datacenter proxies are blocked more often on protected sites even when they are labelled elite.

IP reputation. Addresses that have sent spam, attacks or heavy automated traffic end up on block lists. Free “elite” proxies from public lists are usually shared by many strangers and often already flagged.

The client. The TLS handshake, the HTTP/2 settings and the order of headers identify the software making the request. A proxy does not change any of this. Our guide to TLS and HTTP/2 fingerprinting explains how much a client reveals before the first page loads.

Consistency. A browser whose timezone, language and location do not match the IP address stands out, whatever the headers say.

Behaviour. Request rate, navigation patterns and the absence of normal page assets give automation away on their own.

So “elite” is necessary but not enough. It removes one easy signal. It does not make a request look like it came from a person at home.

How to check a proxy’s anonymity level

You can test any proxy in a few minutes. Send a plain HTTP request through it to a server that echoes back the headers it received, and see what the proxy added.

Use an echo server you control. Public header-echo services usually sit behind their own load balancers, which strip or rewrite X-Forwarded-For before the echo code sees it, so they can make a transparent proxy look elite. A few lines on any small server with a public IP are enough:

# echo.py: run on your own server, e.g. python3 echo.py
import json
from http.server import BaseHTTPRequestHandler, HTTPServer

class Echo(BaseHTTPRequestHandler):
    def do_GET(self):
        body = json.dumps({
            "remote_addr": self.client_address[0],
            "headers": dict(self.headers),
        }).encode()
        self.send_response(200)
        self.send_header("Content-Type", "application/json")
        self.end_headers()
        self.wfile.write(body)

HTTPServer(("0.0.0.0", 8080), Echo).serve_forever()

Then call it through the proxy over plain HTTP:

import os
import requests

PROXY = os.environ["PROXY_URL"]           # e.g. http://user:pass@host:port
ECHO = "http://YOUR_SERVER_IP:8080/"      # plain HTTP on purpose

seen = requests.get(ECHO, proxies={"http": PROXY}, timeout=20).json()
PROXY_HEADERS = ["via", "x-forwarded-for", "forwarded", "x-real-ip", "proxy-connection"]
found = {k: v for k, v in seen["headers"].items() if k.lower() in PROXY_HEADERS}

print("Address the server saw:", seen["remote_addr"])
print("Proxy headers added:", found or "none (elite for HTTP)")

If X-Forwarded-For contains your own address, the proxy is transparent. If proxy headers are present but your address is not, it is anonymous. If nothing extra arrives, it is elite for HTTP traffic. Then look up the exit address in an IP database to see what kind of network it belongs to, because that is the next thing a target site will check.

Where residential proxies fit

The best case for a proxy is to add no headers and to exit from an address that belongs to an ordinary home connection. That is what a residential proxy network provides: requests leave from household broadband connections in the country or city you choose, with no proxy headers added along the way. Shifter’s residential gateway does not add Via or X-Forwarded-For to the requests it forwards.

It is worth being clear about the limits, too. No anonymity level hides your accounts, cookies or browser fingerprint, and the provider still knows who its customer is. Our post on why a proxy is not an anonymity tool goes through what a proxy does and does not hide. For collecting public data, testing how sites behave in other markets and spreading requests across many addresses, the right setup is a clean exit IP plus a client that behaves like a normal browser.

FAQ

What is an elite proxy?

An elite proxy, also called a high-anonymity or level 1 proxy, forwards your requests without adding any headers that reveal your IP address or the fact that a proxy is in use. The destination sees only the proxy’s address.

Is an elite proxy the same as a residential proxy?

No. “Elite” describes which headers a proxy adds. “Residential” describes where the exit IP comes from: a home internet connection rather than a data centre. A datacenter proxy can be elite and still be easy to recognise from its IP address.

Do anonymity levels matter for HTTPS sites?

Much less. For HTTPS, the proxy relays an encrypted tunnel and cannot add headers inside it. The levels matter for plain HTTP traffic, where the proxy can read and change the request.

Can a website tell I am using an elite proxy?

It cannot tell from headers, but it can from other signals: the type and reputation of the IP address, the client’s TLS fingerprint, mismatched location settings and request behaviour.

The bottom line

Transparent, anonymous and elite describe what a proxy adds to plain HTTP headers, nothing more. On HTTPS the difference disappears, and target sites rely on the IP address, its reputation, the client fingerprint and behaviour instead. Choose a proxy that adds no headers, check it on the protocol you use, and pay most attention to where the exit IP comes from.

Ready to get started?

Try Shifter's residential proxies, 205M+ IPs, 195+ countries, from $0.10/GB.

Get Started