# Web Unlocker API — do 403 ao 200 | QuantumProxies.io

Web Unlocker API e proxy: IP residencial, fingerprint TLS de um navegador real, nova saída a cada recusa e navegador real para desafios JavaScript.

## Web Unlocker API para páginas que recusam o seu scraper

Você envia a URL, nós trazemos a página que respondeu 403: um IP residencial, o fingerprint TLS de um navegador real, uma nova saída a cada recusa e um navegador real quando o site exige JavaScript. A resposta traz o status, as tentativas, o tempo e o custo, para você saber sempre o que aconteceu.

- **88.9%** das chamadas devolveram a página real
- **4.1 s** tempo mediano até a página (p50)
- **27** alvos protegidos por anti-bot, 3 execuções cada

Medido em 2026-11-11 pelo nosso próprio canary: 72 de 81 chamadas. As páginas demo com captcha são executadas mas ficam fora da contagem, porque captchas interativos não são resolvidos.

![Web Unlocker da QuantumProxies: um POST para /api/v1/scraper/unlock com uma URL e um país, o pedido reenviado de um IP residencial com o fingerprint TLS de um navegador e um navegador real de prontidão, e a página que respondeu 403 voltando como 200 OK com status, flag blocked, nível vencedor e registro de tentativas.](https://quantumproxies.io/images/web-unlocker/web-unlocker-403-to-200.webp?v=20261104)

## Do 403 ao 200, medido

### O que o seu cliente recebe

**403**

Um 403, uma verificação de segurança ou um desafio JavaScript em vez da página, por mais limpo que seja o IP e qualquer que seja o User-Agent definido.

### O que o Web Unlocker devolveu em 2026-11-11

**200**

88.9% de 81 chamadas a 27 alvos protegidos voltaram como a página real: mediana 4.1 s, p95 28.8 s.

O nosso próprio canary, não um número de folheto: os mesmos alvos, 3 execuções cada. A execução é repetida e cada número desta página é regenerado a partir do seu arquivo.

### Taxa de sucesso por sistema anti-bot

Gerada a partir da execução do canary de 2026-11-11, 3 execuções sobre os mesmos alvos. Páginas com captcha interativo ficam excluídas.

| Sistema anti-bot | Sucesso | Tempo mediano | Chamadas |
| --- | --- | --- | --- |
| Cloudflare | 100% | 8.9 s | 9 |
| DataDome | 91.7% | 10.4 s | 12 |
| Akamai | 75% | 2.4 s | 12 |
| PerimeterX / HUMAN | 100% | 1.8 s | 9 |
| Kasada | 100% | 16.1 s | 6 |
| F5 BIG-IP | 100% | 3.4 s | 6 |
| Imperva | 83.3% | 7.4 s | 6 |
| AWS WAF | 66.7% | 14.3 s | 6 |
| Amazon | 66.7% | 4.1 s | 3 |
| Google | 66.7% | 7.5 s | 3 |
| Other sites | 100% | 2.0 s | 6 |
| Reddit | 100% | 1.7 s | 3 |

### Como medimos

Estes números vêm do nosso próprio canary, uma execução que repetimos nas mesmas páginas. O tráfego de clientes nunca faz parte dela.

- Uma lista fixa de páginas protegidas, agrupadas pelo sistema de proteção à frente delas.
- 3 execuções sobre a lista inteira.
- Uma chamada só é um sucesso quando traz a página real com status 200.
- Páginas de desafio, corpos vazios e timeouts contam como falhas.
- As páginas demo com captcha também são executadas, mas ficam fora da contagem.

**Última execução: 2026-11-11. 27 páginas, 3 execuções cada: 81 chamadas, 72 páginas reais (88.9%).**

- [Baixar o arquivo de dados desta execução (JSON)](https://quantumproxies.io/data/unlocker-canary.json)
- [Página de status ao vivo](https://quantumproxies.io/web-unlocker/status)

## Qual produto você precisa

Três produtos compartilham a mesma rede residencial. Qual chamar depende do que o alvo faz com o seu pedido.

### Web Unlocker

A página recusa o seu cliente com um 403, uma verificação de segurança ou um desafio: uma chamada traz a resposta real, com qualquer método, seus próprios headers e body, um login ou um carrinho mantidos em uma só saída, cobrado por GB de um saldo pré-pago.

### [Proxies residenciais](https://quantumproxies.io/pt/residential-proxies)

O seu cliente já passa e você só precisa de outro IP: uma saída residencial com a mesma gramática de usuário (país, estado, cidade, sessão) por HTTP ou SOCKS5.

### [Extract API](https://quantumproxies.io/pt/extract-api)

Você quer a página como Markdown, texto ou JSON e não precisa da resposta bruta, de um POST nem de um cookie jar próprio.

## Qual endpoint

O mesmo motor atrás de três portas. Escolha pelo que o seu código já fala; os trechos são os que o painel preenche com as suas próprias credenciais.

### API REST

Você pode mudar o seu código: uma chamada JSON entra, uma resposta JSON sai, nenhum certificado para instalar.

`POST https://app.quantumproxies.io/api/v1/scraper/unlock`

```
curl -X POST https://app.quantumproxies.io/api/v1/scraper/unlock \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/", "country": "us"}'
```

### Proxy (CONNECT)

Você já tem um scraper que fala proxy: aponte-o para o host e a porta com o seu usuário e senha do unlocker, e instale a CA uma vez.

`http://unlock.quantumproxies.io:9000`

```
# once: curl -o unlocker-ca.pem https://app.quantumproxies.io/api/v1/scraper/unlock/ca
curl --proxy http://unlock.quantumproxies.io:9000 \
  --proxy-user "USER:PASS" \
  --cacert unlocker-ca.pem \
  https://example.com/
```

### Modo direto

Proxy sem certificado: envie o pedido para http://unlock/ através do proxy e indique o alvo no header x-qp-url.

`http://unlock.quantumproxies.io:9000, then http://unlock/`

```
curl --proxy http://unlock.quantumproxies.io:9000 \
  --proxy-user "USER:PASS" \
  -H "x-qp-url: https://example.com/" \
  http://unlock/
```

## Ações do navegador, lotes, cache e clientes prontos

### Ações do navegador antes da captura

Na chamada REST você pode listar o que o navegador faz antes de a página ser capturada: clicar, digitar, rolar, esperar.

### Lotes de até 100 URLs

Envie até 100 URLs em um único lote e receba um webhook quando terminarem.

### Um cache com a duração que você escolher

Você define por quanto tempo uma página fica em cache. Enquanto estiver em cache, pedir a mesma página de novo não custa nada.

### Dois clientes para baixar e uma tabela de migração

A documentação traz dois clientes de arquivo único, um para Node.js e outro para Python, e uma tabela de migração para código escrito para outro unlocker.

[Abrir a documentação do Web Unlocker](https://quantumproxies.io/docs/#tag/Web-Unlocker)

## Vídeo: o Web Unlocker no painel

Um passeio pela página Web Unlocker do painel: compre GB, escolha como se conectar e envie o primeiro pedido. Em inglês, com legendas.

## Como o Web Unlocker funciona

### 1 · O seu pedido sai como um navegador

Os headers de identidade que o seu cliente envia (User-Agent, Accept, Sec-Fetch-*) são substituídos por um conjunto coerente com o handshake TLS de um navegador real. Authorization, cookies, content type e headers personalizados passam intactos.

### 2 · Uma recusa tenta de novo em uma saída residencial nova

Um desafio ou um 403 dispara uma nova tentativa em uma saída nova com outra família de fingerprint, até três tentativas TLS, todas dentro de um único orçamento de tempo: 60 segundos por padrão, até 120 com timeout_ms.

### 3 · Ainda bloqueado? Um navegador real assume

Quando o nível TLS continua recebendo desafios, um navegador real abre a página e responde ao desafio JavaScript. Com uma sessão sticky, a clearance obtida é guardada e reutilizada nos seus próximos pedidos àquele site.

A Web Unlocker API serve para as páginas que um cliente HTTP comum não consegue obter: aquelas em que a camada anti-bot pontua o handshake TLS e as configurações HTTP/2 antes de ler um único header. Uma chamada fetch ou requests carrega a assinatura do seu runtime, seja qual for o User-Agent definido. O unlocker corrige isso na camada de transporte, tenta de novo em uma saída residencial nova quando a origem recusa, abre um navegador real quando JavaScript é exigido e devolve a resposta bruta da origem: qualquer método, seus próprios headers e body, um login ou um carrinho mantidos em um só IP de saída.

## O que um web unlocker faz que um proxy não faz

Um proxy residencial rotativo muda de onde o pedido sai. Não muda a aparência do pedido: o handshake TLS, a ordem dos frames HTTP/2 e o conjunto de headers continuam dizendo Python ou Node, e é exatamente isso que os sistemas anti-bot modernos pontuam. Um web unlocker reescreve o pedido como um navegador real o enviaria, tenta de novo com outro fingerprint quando a origem o recusa e passa para um navegador real quando a origem exige JavaScript. Você mantém a interface proxy; o unlocker acrescenta o julgamento.

## Fingerprints TLS de navegadores reais

Cada tentativa sai com o perfil TLS de um navegador real e com os headers de identidade reescritos para combinar com ele, porque um handshake Chrome com um User-Agent Firefox é um sinal mais forte do que qualquer um dos dois sozinho. Fixe um perfil (Chrome, Firefox, Safari, Safari iOS, Edge, Brave ou Safari móvel no endpoint REST) quando um site o espera; sem perfil fixo, as novas tentativas alternam entre Chrome, Firefox e Brave, de modo que um site que queimou um handshake encontra outro. Authorization, Cookie, Content-Type e headers X-* personalizados são repassados sem alteração, e keepHeaders envia os seus como estão quando você repete um pedido capturado de um app.

## Modos, formatos e orçamento de tempo

mode auto, o padrão, sobe a escada: primeiro o nível TLS, uma saída nova a cada recusa, o navegador chamado quando o site continua desafiando. mode tls nunca abre o navegador; mode browser começa nele. format devolve o body como html, markdown ou text, e render png tira uma captura de tela. A chamada inteira, tentativas e renderização incluídas, cabe em um único orçamento de 60 segundos por padrão, até 120 com timeout_ms, e max_bytes limita o tráfego que uma chamada pode mover. A resposta diz qual nível venceu (tier_served), lista cada tentativa com nível, perfil, país de saída, resultado, milissegundos e bytes (attempt_log) e imprime o custo em bytes e dólares ao preço do seu nível.

## Um bloqueio é reportado, nunca disfarçado de sucesso

Cada resposta é classificada antes de chegar a você. O classificador lê aquilo com que os sistemas anti-bot assinam as suas páginas e nomeia tanto o sistema (Cloudflare, DataDome, Akamai, PerimeterX e outros) quanto a classe do bloqueio: js_challenge, captcha, access_denied, rate_limited, fingerprint, geo ou timeout. No endpoint REST, uma página ainda bloqueada chega como 200 com blocked em true e a própria página para inspeção, ou como 424 target_blocked se você definir fail_on_block. No forward proxy, o status da origem é repassado com o header x-qp-unlocker-blocked. Captchas interativos não são resolvidos: voltam rotulados como captcha.

## Sessões, geolocalização e memória por site

Passe um país, e um estado ou uma cidade onde a rede os tenha, para sair daquele mercado. Deixe vazio e o país de saída é lido do domínio de topo do alvo, depois do país da sua conta, com os Estados Unidos apenas como último recurso. Um id de sessão sticky mantém um só IP de saída entre chamadas por 3 a 1.440 minutos, então um login, um carrinho ou uma listagem paginada ficam em uma só identidade. O unlocker também lembra, por domínio, qual nível e qual família de fingerprint passaram recentemente e começa por aí da próxima vez, e põe em quarentena uma saída que um site acabou de recusar em vez de oferecê-la de novo àquele site.

## Níveis Premium e Mobile, pré-pagos por GB

O Web Unlocker roda em dois pools de saída: Premium em IPs residenciais e Mobile em IPs de operadoras 4G/5G, cada um com o seu próprio saldo de GB pré-pago comprado no painel a partir de 1 GB, com cartão, PayPal, cripto ou saldo da conta. O uso é medido em bytes movidos, tentativas e renderizações do navegador incluídas, e quando um saldo acaba a resposta é um 402 com o link para recarregar em vez de uma falha silenciosa. O preço por GB de cada nível aparece na página Web Unlocker do painel, ao lado do botão de compra. Sem assinatura e sem prazo mínimo.

## Um só catálogo de erros, com o que fazer depois

REST e proxy compartilham um só catálogo. Cada erro nomeia o seu código e diz se vale a pena tentar de novo, se foi cobrado e o que fazer a seguir: no_credit (402) com o link de compra, target_blocked (424) com a classe do bloqueio e o registro de tentativas, rate_limited (429, 20 chamadas por minuto e 10 em andamento no pagamento por uso, com Retry-After), render_failed e upstream_failed (503), timeout (504) quando timeout_ms se esgotou. Um 403 ou 429 que traz uma página real não é um bloqueio e é devolvido como tal.

## Perguntas Frequentes

### O que é um web unlocker?

Um web unlocker é um serviço que entrega um pedido HTTP comum a um site protegido por anti-bot como um navegador real faria: de um IP residencial, com o fingerprint TLS de um navegador e headers coerentes, tentando de novo em um IP novo quando recusado e abrindo um navegador real para desafios JavaScript. Devolve a resposta bruta da origem, com as tentativas e o custo.

### Qual a diferença entre um web unlocker e um proxy residencial?

Um proxy muda apenas o IP de origem. O handshake TLS e o conjunto de headers do seu cliente continuam revelando uma ferramenta automatizada, e é isso que os sistemas anti-bot modernos pontuam. O unlocker reescreve o pedido para combinar com um navegador, tenta de novo com outro fingerprint quando recusado e escala para um navegador real quando JavaScript é exigido. Proxies residenciais são a compra certa quando o seu cliente já passa.

### O Web Unlocker resolve CAPTCHAs?

Ele responde a desafios JavaScript com um navegador real e, dentro de uma sessão sticky, guarda o cookie de clearance para os próximos pedidos àquele site. Captchas interativos que precisam de uma pessoa, como hCaptcha, reCAPTCHA ou uma caixa de verificação, não são resolvidos: a resposta volta rotulada como captcha, com o fornecedor nomeado, e o tráfego movido é cobrado por GB salvo indicação em contrário no painel.

### Existe um teste grátis do Web Unlocker?

Criar a conta é grátis e leva um minuto, e a página Web Unlocker do painel tem uma caixa Test a URL que mostra status, tentativas, tempo e custo de uma chamada. Os GB do unlocker são pré-pagos por nível a partir de 1 GB, e o custo das primeiras chamadas de teste está escrito ao lado da caixa. O teste residencial grátis cobre os proxies residenciais comuns, não o unlocker.

### Posso chamá-lo de Python, Node.js, PHP, Go ou curl?

Sim. O endpoint REST é um POST HTTPS comum que qualquer linguagem fala; as abas acima trazem os mesmos trechos curl, Python, Node.js, PHP e Go que o painel preenche com as suas credenciais. Scrapy, Playwright ou qualquer cliente com configuração de proxy usa o proxy CONNECT, e o modo direto funciona onde um certificado não pode ser instalado.

### O Web Unlocker é um proxy ou uma API?

Os dois, em uma só conta e um só saldo. REST quando você pode mudar o seu código: JSON entra, JSON sai, sem certificado. Proxy quando o seu scraper já fala proxy: host, porta, usuário e senha, com a CA instalada uma vez. Modo direto quando você quer o proxy sem certificado: envie o pedido para http://unlock/ e indique o alvo em x-qp-url.

### O que acontece quando uma página continua bloqueada após todas as tentativas, e eu pago por isso?

Ela nunca é devolvida como um sucesso silencioso. O endpoint REST define blocked como true e nomeia a classe do bloqueio e o fornecedor ao lado da página, ou responde 424 target_blocked se você definir fail_on_block; o proxy repassa o status da origem com x-qp-unlocker-blocked. Os bytes movidos são cobrados por GB salvo indicação em contrário no painel, e o registro de tentativas mostra o que eles compraram.

### Posso manter o mesmo IP em vários pedidos?

Sim. Passe um id de sessão, no body do pedido ou no usuário do proxy, e cada chamada com esse id sai do mesmo IP por 3 a 1.440 minutos. É assim que um login, um carrinho ou uma listagem paginada ficam em uma só identidade em vez de trocar de IP a cada página.

### De quais países posso sair?

Passe country, e state ou city onde a rede os tenha, e o nível Premium sai daquele mercado em IPs residenciais; o nível Mobile faz o mesmo em IPs de operadoras 4G/5G. Deixe vazio e a saída é escolhida pelo domínio de topo do alvo, depois pelo país da sua conta, com os Estados Unidos como último recurso.

### Preciso instalar um certificado?

Só para HTTPS pelo proxy CONNECT, que termina o TLS para reescrever o pedido: baixe a CA uma vez da API com a sua chave. O modo direto, em que o alvo vai no header x-qp-url, e o endpoint REST não precisam de certificado algum.

### Ele pode clicar, digitar ou rolar antes de a página ser capturada?

Sim, na chamada REST. Adicione uma lista de ações do navegador (clicar, digitar, rolar, esperar) e o navegador as executa em ordem antes de capturar a página.

### Posso enviar muitas URLs de uma vez?

Sim. Um lote aceita até 100 URLs em uma única chamada, e um webhook avisa quando terminarem.

### Pago de novo se pedir a mesma página duas vezes?

Não enquanto a página estiver em cache. Você escolhe a duração do cache na chamada: até ela acabar, a mesma página é respondida pelo cache e não custa nada.

### Quanto custa o Web Unlocker?

É cobrado por GB movido, de um saldo pré-pago que você compra no painel para o nível que usa, Premium em saídas residenciais ou Mobile em saídas de operadoras, a partir de 1 GB. Tentativas e renderizações do navegador contam. O preço por GB em vigor aparece na página Web Unlocker do painel antes da compra; sem assinatura e sem prazo mínimo.

## Produtos relacionados

- [Web Unlocker residencial](https://quantumproxies.io/web-unlocker/residential)
- [Web Unlocker móvel com IPs 4G/5G](https://quantumproxies.io/web-unlocker/mobile)
- [Status do Web Unlocker e taxa de sucesso medida](https://quantumproxies.io/web-unlocker/status)
- [Web Unlocker para Cloudflare](https://quantumproxies.io/web-unlocker/cloudflare)
- [Web Unlocker para DataDome](https://quantumproxies.io/web-unlocker/datadome)
- [Web Unlocker para Akamai Bot Manager](https://quantumproxies.io/web-unlocker/akamai)
- [Web Unlocker para PerimeterX (HUMAN)](https://quantumproxies.io/web-unlocker/perimeterx)
- [Web Unlocker para Kasada](https://quantumproxies.io/web-unlocker/kasada)
- [Web Unlocker para Imperva (Incapsula)](https://quantumproxies.io/web-unlocker/imperva)
- [Web Unlocker para F5 (BIG-IP, Shape)](https://quantumproxies.io/web-unlocker/f5)
- [Web Unlocker para AWS WAF](https://quantumproxies.io/web-unlocker/aws-waf)
- [Extract API: qualquer página como Markdown, HTML ou JSON](https://quantumproxies.io/pt/extract-api)
- [SERP API: resultados de pesquisa em JSON estruturado](https://quantumproxies.io/pt/serp-api)
- [Proxies Residential Premium](https://quantumproxies.io/pt/residential-proxies)
- [Proxies móveis em IPs de operadoras 4G/5G](https://quantumproxies.io/pt/mobile-proxies)
- [Referência da API REST](https://quantumproxies.io/pt/api)
- [Servidor MCP para agentes de IA](https://quantumproxies.io/pt/mcp-server)

## Sources

- [RFC 9110: HTTP Semantics — safe and idempotent methods](https://www.rfc-editor.org/rfc/rfc9110.html#name-safe-methods)
- [RFC 9110: The CONNECT method](https://www.rfc-editor.org/rfc/rfc9110.html#name-connect)
- [RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3](https://www.rfc-editor.org/rfc/rfc8446.html)
- [Proxy-Authorization header (MDN Web Docs)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Proxy-Authorization)
- [JA3: a method for profiling SSL/TLS clients (Salesforce, GitHub)](https://github.com/salesforce/ja3)
