봇을 차단하는 사이트를 위한 Web Unlocker API

Web unlocker는 일반 HTTP 요청을 받아 실제 브라우저의 TLS 지문을 가진 주거용 IP에서 다시 전송합니다. 대상 사이트가 차단하면 새 IP로 재시도하고, JavaScript 챌린지가 나타나면 실제 브라우저로 전환합니다. QuantumProxies.io는 이를 REST 엔드포인트와 포워드 프록시 두 가지로, 하나의 선불 잔액 위에서 제공합니다.

Web Unlocker 작동 방식

1 · 요청이 브라우저처럼 나갑니다

클라이언트가 보내는 식별 헤더(User-Agent, Accept, Sec-Fetch-*)는 TLS 핸드셰이크와 일치하는 세트로 교체됩니다. Authorization, 쿠키, Content-Type, 사용자 정의 헤더는 그대로 통과합니다.

2 · 차단된 GET은 새 IP로 재시도합니다

챌린지나 거부가 발생하면 다른 지문 계열(Chrome, Firefox, Brave)로 새 주거용 출구에서 재시도합니다. 90초 예산 안에서 최대 세 번의 TLS 시도.

3 · 여전히 차단? 실제 브라우저가 이어받습니다

모든 TLS 시도가 챌린지를 받으면 헤드리스 브라우저가 페이지를 가져와 JavaScript 챌린지에 응답합니다. 스티키 세션 ID를 전달하면 이때 얻은 클리어런스 쿠키가 보관되어 같은 세션 안에서 해당 사이트로의 다음 요청에 재사용됩니다.

세 가지 호출 방법

내부 엔진은 같습니다. 코드가 이미 사용하는 인터페이스를 고르세요.

REST 엔드포인트

API 키로 POST /api/v1/scraper/unlock을 호출합니다. 프록시 프로토콜도 인증서도 필요 없습니다. 일반 HTTPS 호출 한 번으로 대상의 상태 코드, 헤더, 본문과 blocked 플래그를 돌려받습니다.

포워드 프록시

어떤 HTTP 클라이언트든 대시보드에서 만든 프록시 하위 사용자로 unlock.quantumproxies.io:9000에 연결합니다. 국가, 주, 도시, 세션, TLS 프로필, 티어 같은 타깃팅은 사용자 이름에 실립니다.

제어 헤더

x-qp-url, x-qp-country, x-qp-session, x-qp-render, x-qp-keep-headers, x-qp-success-status, x-qp-timeout으로 개별 요청을 제어합니다. 가장 널리 쓰이는 상용 언로커 두 곳의 헤더 표기도 받아들입니다.

QuantumProxies.io의 Web Unlocker는 단순 HTTP 클라이언트로는 받을 수 없는 페이지를 위해 만들어졌습니다. 안티봇 계층이 헤더를 읽기도 전에 TLS 핸드셰이크와 HTTP/2 설정을 채점하는 페이지들입니다. fetch나 requests 호출은 어떤 User-Agent를 설정하든 런타임 고유의 서명을 지니고 있습니다. Unlocker는 이를 전송 계층에서 바로잡고, Extract API와 달리 원본 서버의 가공되지 않은 응답을 돌려줍니다. 어떤 메서드든, 여러분의 헤더와 본문 그대로, 하나의 출구 IP에 고정된 로그인이나 장바구니까지 다룹니다.

프록시는 못 하고 web unlocker는 하는 일

회전 주거용 프록시는 요청이 어디서 오는지를 바꿉니다. 요청이 어떻게 보이는지는 바꾸지 못합니다. TLS 핸드셰이크, HTTP/2 프레임 순서, 헤더 조합은 여전히 Python이나 Node라고 말하고, 현대의 봇 차단벽은 바로 그것을 채점합니다. Web unlocker는 요청을 실제 브라우저가 보낼 형태로 다시 쓰고, 원본 서버가 거부하면 다른 지문으로 재시도하며, JavaScript를 요구하면 실제 브라우저로 전환합니다. 프록시 인터페이스는 그대로 두고, Unlocker가 판단력을 더합니다.

실제 브라우저의 TLS 지문

모든 시도는 Chrome, Firefox, Safari, Safari iOS, Edge, Brave 여섯 가지 브라우저 프로필 중 하나로 나가며, REST 엔드포인트에서는 모바일 Safari도 선택할 수 있습니다. 프로필을 고정하지 않으면 재시도마다 계열을 순환하므로, 하나의 핸드셰이크를 태운 사이트는 다른 핸드셰이크를 만나게 됩니다. 식별 헤더는 프로필에 맞게 다시 쓰입니다. Chrome 핸드셰이크에 Firefox User-Agent를 얹는 것은 둘 중 하나만 있을 때보다 더 큰 신호이기 때문입니다. Authorization, Cookie, Content-Type, 사용자 정의 X-* 헤더는 그대로 전달되고, 캡처한 앱 요청을 재생할 때는 keepHeaders로 여러분의 헤더를 손대지 않고 보낼 수 있습니다.

새 IP로 재시도, 그다음은 실제 브라우저

차단된 GET은 순환된 지문으로 새 주거용 출구에서 재시도되며, 90초 예산 안에서 최대 세 번의 TLS 시도를 합니다. 모든 시도가 챌린지로 돌아오면 요청은 헤드리스 브라우저로 넘어가 JavaScript 챌린지에 응답하고 렌더링된 페이지를 돌려줍니다. POST, PUT, DELETE는 HTTP 응답 이후 절대 재시도하지 않습니다. 403은 원본 서버가 요청을 봤다는 뜻이고, 재전송하면 주문이나 양식이 두 번 제출될 수 있기 때문입니다. render를 html이나 png로 설정하면 처음부터 브라우저에서 시작하고, false로 설정하면 TLS 계층에 머뭅니다.

차단은 보고되며, 성공으로 위장되지 않습니다

모든 응답은 여러분에게 도달하기 전에 분류됩니다. 분류기는 안티봇 업체들이 페이지에 남기는 헤더와 본문의 흔적을 읽어 업체(cloudflare, datadome, akamai 등)와 차단 유형(js_challenge, captcha, ip_reputation, fingerprint, geo, timeout)을 모두 식별합니다. REST 엔드포인트에서는 여전히 차단된 페이지가 blocked가 true인 상태로, 검사를 위한 페이지 본문과 함께 도착합니다. 포워드 프록시에서는 2xx로 전달된 챌린지가 x-qp-unlocker-blocked 헤더가 붙은 502가 되고, 원본 서버의 진짜 거부(403, 429, 503)는 그대로 중계됩니다. 대화형 캡차는 풀지 않으며 captcha 라벨이 붙어 돌아옵니다.

세션, 지역 타깃팅, 사이트별 기억

국가를 지정하고 필요하면 주나 도시까지 지정해 해당 시장에서 나갈 수 있습니다. 비워 두면 대상의 최상위 도메인으로 출구 국가가 정해지며, 기본값은 미국입니다. 고정 세션 ID를 쓰면 3분에서 1,440분 동안 호출을 넘어 같은 출구 IP가 유지되어, 로그인, 장바구니, 페이지가 나뉜 목록이 하나의 신원에 머뭅니다. Unlocker는 또한 도메인별로 최근 어떤 계층과 어떤 지문 계열이 통과했는지 기억해 다음번에는 거기서 시작하고, 사이트가 방금 거부한 출구는 격리해 그 사이트에 다시 내주지 않습니다.

Premium과 Mobile 티어, GB 단위 선불

Web Unlocker는 두 개의 출구 풀에서 동작합니다. 주거용 IP의 Premium과 4G/5G 통신사 IP의 Mobile로, 각각 대시보드에서 구매하는 별도의 선불 GB 잔액을 가집니다. 사용량은 재시도와 브라우저 렌더링을 포함한 전송 바이트로 측정되며, 잔액이 소진되면 프록시는 조용히 실패하는 대신 402를 응답합니다. 각 티어의 GB당 가격은 대시보드의 Web Unlocker 페이지 구매 버튼 옆에 표시됩니다. 구독도 최소 이용 기간도 없습니다.

기존 언로커 연동 이전하기

포워드 프록시는 자체 x-qp-* 헤더와 함께 가장 널리 쓰이는 상용 언로커 두 곳의 제어 헤더 표기도 받아들이므로, 기존 연동은 보통 프록시 호스트와 자격 증명만 바꾸면 이전됩니다. 프록시 모드에서는 주거용 프록시가 이미 그렇듯 국가, 주, 도시, 세션, 프로필, 티어 타깃팅이 사용자 이름에 실립니다. 프록시를 통한 HTTPS에는 가로채기 인증서가 필요하며, API에서 키로 내려받을 수 있습니다. x-qp-url을 쓰는 직접 모드와 REST 엔드포인트에는 인증서가 전혀 필요 없습니다.

Extract API 대신 Web Unlocker를 써야 할 때

페이지를 Markdown, HTML, 구조화된 JSON으로 받고 싶고 어떻게 가져왔는지는 상관없다면 Extract API를 쓰세요. 원본 서버의 가공되지 않은 응답이 필요하다면 Web Unlocker입니다. 봇 차단벽 뒤의 JSON API, 양식을 제출하는 POST, 자체 인증 헤더가 붙은 요청, 직접 관리하는 쿠키 저장소, 이미 프록시 프로토콜로 동작하는 기존 스크래퍼가 그런 경우입니다. 둘은 같은 계정과 같은 주거용 네트워크 위에 있으며, Unlocker만 자체 선불 GB 잔액에서 과금됩니다.

자주 묻는 질문

Web unlocker란 무엇인가요?

Web unlocker는 일반 HTTP 요청을 받아 봇 차단이 적용된 사이트에 실제 브라우저처럼 전달하는 서비스입니다. 주거용 IP에서, 브라우저 TLS 지문과 일치하는 헤더로 보내고, 차단되면 새 IP로 재시도하며, JavaScript 챌린지에는 실제 브라우저로 응답합니다. 원본 서버의 가공되지 않은 응답을 돌려줍니다.

Web unlocker는 회전 주거용 프록시와 어떻게 다른가요?

프록시는 출발 IP만 바꿉니다. 클라이언트의 TLS 핸드셰이크와 헤더 조합은 여전히 자동화 도구임을 드러내고, 현대의 봇 차단벽은 바로 그것을 채점합니다. Unlocker는 요청을 브라우저에 맞게 다시 쓰고, 거부되면 다른 지문으로 재시도하며, JavaScript가 요구되면 브라우저로 넘깁니다.

Web Unlocker가 캡차를 풀어 주나요?

JavaScript 챌린지는 실제 브라우저로 응답하고, 스티키 세션 안에서는 클리어런스 쿠키를 같은 사이트로의 이후 요청을 위해 보관합니다. 사람이 필요한 대화형 캡차는 풀지 않습니다. 응답은 captcha 라벨과 업체 이름이 붙어 돌아오므로 다음 조치는 여러분의 코드가 결정할 수 있습니다.

제 헤더와 본문으로 POST 요청을 보낼 수 있나요?

네. 어떤 HTTP 메서드든 텍스트 또는 base64 본문과 함께 전달됩니다. Authorization, Cookie, Content-Type, 사용자 정의 X-* 헤더는 그대로 통과하고 식별 헤더만 다시 쓰입니다. POST는 정확히 한 번만 시도합니다. 응답 뒤에 재전송하면 양식이나 주문이 두 번 제출될 수 있기 때문입니다.

Web Unlocker 요금은 어떻게 부과되나요?

GB 단위로, 사용하는 티어(주거용 출구의 Premium 또는 통신사 출구의 Mobile)에 대해 대시보드에서 구매한 선불 잔액에서 차감됩니다. 재시도와 브라우저 렌더링을 포함한 모든 전송 바이트가 계산됩니다. 잔액이 소진되면 프록시는 402를 응답합니다. 현재 GB당 가격은 대시보드에 표시됩니다.

모든 시도 후에도 페이지가 차단된 상태면 어떻게 되나요?

조용한 성공으로 반환되는 일은 없습니다. REST 엔드포인트는 blocked를 true로 설정하고 차단 유형과 업체를 페이지와 함께 넣어 줍니다. 포워드 프록시는 2xx로 전달된 챌린지를 x-qp-unlocker-blocked 헤더가 붙은 502로 바꾸고, 원본 서버의 진짜 403, 429, 503은 그대로 중계합니다.

여러 요청에 걸쳐 같은 IP를 유지할 수 있나요?

네. 요청 본문이나 프록시 사용자 이름에 세션 ID를 넣으면, 그 ID를 가진 모든 호출이 3분에서 1,440분 동안 같은 출구 IP에서 나갑니다. 로그인, 장바구니, 페이지가 나뉜 목록이 페이지마다 IP를 바꾸지 않고 하나의 신원에 머무는 방식입니다.

인증서를 설치해야 하나요?

요청을 다시 쓰기 위해 TLS를 종료하는 전통적인 포워드 프록시로 HTTPS를 쓸 때만 필요하며, 가로채기 인증서는 API에서 키로 내려받습니다. 대상을 x-qp-url 헤더에 넣는 직접 모드와 REST 엔드포인트에는 인증서가 전혀 필요 없습니다.

어떤 국가에서 나갈 수 있나요?

Premium 티어는 Residential Premium 프록시와 같은 주거용 네트워크를 사용하며, 200개 이상 국가에서 국가, 주, 도시 타깃팅이 가능합니다. Mobile 티어는 4G/5G 통신사 IP를 사용합니다. 국가를 지정하지 않으면 출구는 대상의 최상위 도메인으로 정해지며 기본값은 미국입니다.

관련 제품

Sources

AI 에이전트라면

마케팅은 건너뛰세요. QuantumProxies.io는 LLM용 사이트맵, 모든 페이지의 Markdown, 무료 MCP 서버, 프록시와 같은 잔액으로 청구되는 API를 제공합니다.

명령 하나로 연결: npx -y quantumproxies-mcp