# Web Unlocker API — 403에서 200으로 | QuantumProxies.io

Web Unlocker API와 프록시: 주거용 IP, 실제 브라우저 TLS 지문, 거부될 때마다 새 출구, JavaScript 챌린지는 실제 브라우저로. 성공률과 p50은 자체 canary로 측정.

## 스크래퍼를 거부하는 페이지를 위한 Web Unlocker API

URL을 보내면 403을 돌려준 페이지를 가져옵니다. 주거용 IP, 실제 브라우저의 TLS 지문, 거부될 때마다 새 출구, 사이트가 JavaScript를 요구하면 실제 브라우저. 응답에는 상태, 시도 횟수, 소요 시간, 비용이 담겨 있어 무슨 일이 있었는지 항상 알 수 있습니다.

- **88.9%** 의 호출이 실제 페이지를 반환
- **4.1 s** 페이지까지의 중앙값 시간(p50)
- **27** 개의 안티봇 보호 대상, 각 3회 실행

2026-11-11에 자체 canary가 측정: 81회 중 72회. 캡차 데모 페이지는 실행하지만 집계에서 제외합니다. 대화형 캡차는 풀지 않기 때문입니다.

![QuantumProxies Web Unlocker: URL과 국가를 담아 /api/v1/scraper/unlock에 보내는 한 번의 POST, 주거용 IP에서 브라우저 TLS 지문으로 다시 보내지는 요청과 대기 중인 실제 브라우저, 그리고 403을 돌려줬던 페이지가 상태, blocked 플래그, 이긴 계층, 시도 로그와 함께 200 OK로 돌아오는 모습.](https://quantumproxies.io/images/web-unlocker/web-unlocker-403-to-200.webp?v=20261104)

## 403에서 200으로, 측정됨

### 당신의 클라이언트가 받는 것

**403**

IP가 아무리 깨끗하고 User-Agent를 어떻게 설정해도, 페이지 대신 403, 보안 검사 또는 JavaScript 챌린지.

### 2026-11-11에 Web Unlocker가 반환한 것

**200**

보호된 대상 27개에 대한 81회 호출 중 88.9%가 실제 페이지로 돌아왔습니다: 중앙값 4.1초, p95 28.8초.

브로슈어 숫자가 아니라 자체 canary입니다. 같은 대상을 각 3회 실행했습니다. 실행은 반복되며 이 페이지의 모든 숫자는 그 파일에서 다시 생성됩니다.

### 안티봇 시스템별 성공률

2026-11-11의 canary 실행에서 생성. 같은 대상에 대해 3회 실행. 대화형 캡차 페이지는 제외.

| 안티봇 시스템 | 성공률 | 중앙값 시간 | 호출 수 |
| --- | --- | --- | --- |
| 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 |

### 측정 방법

이 숫자는 같은 페이지에 반복해서 실행하는 자체 canary에서 나옵니다. 고객 트래픽은 절대 포함되지 않습니다.

- 보호된 페이지의 고정 목록으로, 앞단의 보호 시스템별로 묶었습니다.
- 전체 목록을 3회 실행합니다.
- 상태 200과 함께 실제 페이지를 가져온 호출만 성공으로 칩니다.
- 챌린지 페이지, 빈 본문, 타임아웃은 실패로 집계합니다.
- 캡차 데모 페이지도 실행하지만 집계에서는 제외합니다.

**최근 실행: 2026-11-11. 27개 페이지를 각 3회, 총 81회 호출 중 실제 페이지 72회(88.9%).**

- [이 실행의 데이터 파일 다운로드(JSON)](https://quantumproxies.io/data/unlocker-canary.json)
- [실시간 상태 페이지](https://quantumproxies.io/web-unlocker/status)

## 어떤 제품이 필요한가

세 제품이 같은 주거용 네트워크를 공유합니다. 무엇을 호출할지는 대상이 당신의 요청에 어떻게 반응하는지에 달려 있습니다.

### Web Unlocker

페이지가 403, 보안 검사 또는 챌린지로 클라이언트를 거부하는 경우: 한 번의 호출로 실제 응답을 가져옵니다. 어떤 메서드든, 직접 지정한 헤더와 본문, 한 출구에 고정된 로그인이나 장바구니. 선불 잔액에서 GB 단위로 과금.

### [주거용 프록시](https://quantumproxies.io/ko/residential-proxies)

클라이언트는 이미 통과하고 다른 IP만 필요한 경우: 같은 사용자 이름 문법(국가, 주, 도시, 세션)으로 HTTP 또는 SOCKS5를 통한 주거용 출구.

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

페이지를 Markdown, 텍스트 또는 JSON으로 원하고, 원시 응답이나 POST, 직접 관리하는 cookie jar가 필요 없는 경우.

## 어떤 엔드포인트

세 개의 문 뒤에 있는 것은 같은 엔진입니다. 코드가 이미 쓰는 방식으로 고르세요. 스니펫은 대시보드가 당신의 자격 증명으로 채워 주는 것과 같습니다.

### REST API

코드를 바꿀 수 있다면: JSON 호출 하나 들어가고 JSON 응답 하나 나옵니다. 설치할 인증서가 없습니다.

`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"}'
```

### 프록시(CONNECT)

프록시를 쓰는 스크래퍼가 이미 있다면: unlocker 사용자 이름과 비밀번호로 호스트와 포트를 가리키고 CA를 한 번만 설치하세요.

`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/
```

### 다이렉트 모드

인증서 없는 프록시: 프록시를 통해 http://unlock/ 로 요청을 보내고 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/
```

## 브라우저 동작, 배치, 캐시, 바로 쓰는 클라이언트

### 캡처 전 브라우저 동작

REST 호출에서 페이지를 캡처하기 전에 브라우저가 할 일을 나열할 수 있습니다. 클릭, 입력, 스크롤, 대기입니다.

### 최대 100개 URL 배치

한 번의 배치로 최대 100개의 URL을 보내고, 완료되면 웹훅을 받습니다.

### 수명을 직접 정하는 캐시

페이지를 캐시에 얼마나 둘지 직접 정합니다. 캐시에 있는 동안 같은 페이지를 다시 요청해도 비용이 들지 않습니다.

### 내려받을 수 있는 클라이언트 2종과 마이그레이션 표

문서에는 단일 파일 클라이언트가 Node.js용과 Python용으로 2종 있고, 다른 unlocker용으로 작성한 코드를 위한 마이그레이션 표가 있습니다.

[Web Unlocker 문서 열기](https://quantumproxies.io/docs/#tag/Web-Unlocker)

## 영상: 대시보드의 Web Unlocker

대시보드의 Web Unlocker 페이지를 살펴봅니다. GB를 구매하고, 연결 방식을 고르고, 첫 요청을 보냅니다. 영어, 자막 포함.

## Web Unlocker의 작동 방식

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

클라이언트가 보내는 식별 헤더(User-Agent, Accept, Sec-Fetch-*)는 실제 브라우저의 TLS 핸드셰이크와 맞는 세트로 교체됩니다. Authorization, 쿠키, content type, 사용자 지정 헤더는 그대로 통과합니다.

### 2 · 거부되면 새 주거용 출구에서 재시도

챌린지나 403을 받으면 다른 지문 계열로 새 출구에서 재시도합니다. TLS 시도는 최대 세 번, 모두 하나의 시간 예산 안에서: 기본 60초, timeout_ms로 최대 120초.

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

TLS 계층이 계속 챌린지를 받으면 실제 브라우저가 페이지를 열어 JavaScript 챌린지에 응답합니다. 스티키 세션에서는 얻은 clearance가 보존되어 그 사이트로의 다음 요청에 재사용됩니다.

Web Unlocker API는 일반 HTTP 클라이언트가 가져올 수 없는 페이지를 위한 것입니다. 안티봇 계층이 헤더를 하나 읽기도 전에 TLS 핸드셰이크와 HTTP/2 설정을 채점하는 페이지들입니다. fetch나 requests 호출은 어떤 User-Agent를 설정하든 런타임의 서명을 지니고 있습니다. unlocker는 이를 전송 계층에서 바로잡고, 원본이 거부하면 새 주거용 출구에서 재시도하며, JavaScript가 요구되면 실제 브라우저를 열고, 원본의 원시 응답을 돌려줍니다. 어떤 메서드든, 직접 지정한 헤더와 본문, 하나의 출구 IP에 고정된 로그인이나 장바구니까지.

## 프록시는 못 하고 web unlocker는 하는 것

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

## 실제 브라우저의 TLS 지문

모든 시도는 실제 브라우저의 TLS 프로필로 나가고 식별 헤더도 그에 맞게 다시 쓰입니다. Firefox User-Agent를 단 Chrome 핸드셰이크는 둘 중 하나만보다 더 눈에 띄는 신호이기 때문입니다. 사이트가 특정 프로필을 기대하면 고정할 수 있습니다(Chrome, Firefox, Safari, Safari iOS, Edge, Brave, REST 엔드포인트에서는 모바일 Safari도). 고정하지 않으면 재시도는 Chrome, Firefox, Brave 사이를 순환하므로 핸드셰이크 하나를 태운 사이트는 다른 것을 만납니다. Authorization, Cookie, Content-Type, 사용자 지정 X-* 헤더는 그대로 전달되고, 캡처한 앱 요청을 재생할 때 keepHeaders는 당신의 헤더를 있는 그대로 보냅니다.

## 모드, 형식, 시간 예산

기본값인 mode auto는 사다리를 오릅니다. 먼저 TLS 계층, 거부되면 새 출구, 사이트가 계속 챌린지하면 브라우저. mode tls는 브라우저를 절대 열지 않고, mode browser는 처음부터 브라우저에서 시작합니다. format은 본문을 html, markdown 또는 text로 돌려주고 render png는 스크린샷을 찍습니다. 재시도와 렌더링을 포함한 전체 호출은 하나의 예산 안에 들어갑니다. 기본 60초, timeout_ms로 최대 120초이며 max_bytes는 한 호출이 옮길 수 있는 트래픽의 상한입니다. 응답은 어느 계층이 이겼는지(tier_served)를 말하고, 각 시도의 계층, 프로필, 출구 국가, 결과, 밀리초, 바이트(attempt_log)를 나열하며, 당신 계층의 단가로 바이트와 달러 비용을 표시합니다.

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

모든 응답은 도착하기 전에 분류됩니다. 분류기는 봇 방어 시스템이 페이지에 남기는 서명을 읽고 시스템(Cloudflare, DataDome, Akamai, PerimeterX 등)과 차단 클래스(js_challenge, captcha, access_denied, rate_limited, fingerprint, geo, timeout)를 모두 지목합니다. REST 엔드포인트에서 여전히 차단된 페이지는 blocked가 true인 200과 검토용 페이지 본문으로 오거나, fail_on_block을 설정했다면 424 target_blocked로 옵니다. 포워드 프록시에서는 원본의 상태가 x-qp-unlocker-blocked 헤더와 함께 중계됩니다. 대화형 캡차는 풀지 않습니다. captcha로 표시되어 돌아옵니다.

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

국가를, 네트워크에 있다면 주나 도시도 넘기면 그 시장에서 출구합니다. 비워 두면 출구 국가는 대상의 최상위 도메인에서, 다음은 계정 국가에서 읽히고, 미국은 최후의 수단일 뿐입니다. 스티키 세션 id는 3분에서 1,440분까지 호출 간에 하나의 출구 IP를 유지하므로 로그인, 장바구니, 페이지가 나뉜 목록이 하나의 신원에 머뭅니다. unlocker는 또한 도메인별로 최근 어느 계층과 지문 계열이 통과했는지 기억해 다음번에 거기서 시작하고, 사이트가 방금 거부한 출구는 그 사이트에 다시 내놓지 않고 격리합니다.

## Premium과 Mobile 계층, GB 단위 선불

Web Unlocker는 두 출구 풀에서 돌아갑니다. 주거용 IP의 Premium과 4G/5G 통신사 IP의 Mobile로, 각각 대시보드에서 1 GB부터 카드, PayPal, 암호화폐 또는 계정 잔액으로 구매하는 독립된 선불 GB 잔액을 가집니다. 사용량은 재시도와 브라우저 렌더링을 포함한 이동 바이트로 측정되며, 잔액이 떨어지면 조용히 실패하는 대신 충전 링크가 담긴 402가 돌아옵니다. 각 계층의 GB당 가격은 대시보드의 Web Unlocker 페이지 구매 버튼 옆에 표시됩니다. 구독도 최소 기간도 없습니다.

## 하나의 오류 카탈로그와 다음 할 일

REST와 프록시는 하나의 카탈로그를 공유합니다. 각 오류는 코드를 밝히고 재시도할 가치가 있는지, 과금됐는지, 다음에 무엇을 할지 알려 줍니다. 구매 링크가 있는 no_credit(402), 차단 클래스와 시도 로그가 있는 target_blocked(424), rate_limited(429, 종량제에서 분당 20회와 동시 10건, Retry-After 포함), render_failed와 upstream_failed(503), timeout_ms가 소진된 timeout(504). 실제 페이지를 담은 403이나 429는 차단이 아니며 그대로 반환됩니다.

## 자주 묻는 질문

### web unlocker란 무엇인가요?

web unlocker는 일반 HTTP 요청을 안티봇 보호 사이트에 실제 브라우저처럼 전달하는 서비스입니다. 주거용 IP에서, 브라우저 TLS 지문과 맞는 헤더로 보내고, 거부되면 새 IP로 재시도하며, JavaScript 챌린지에는 실제 브라우저를 엽니다. 원본의 원시 응답을 시도 횟수와 비용과 함께 돌려줍니다.

### web unlocker와 주거용 프록시는 어떻게 다른가요?

프록시는 출발 IP만 바꿉니다. 클라이언트의 TLS 핸드셰이크와 헤더 집합은 여전히 자동화 도구임을 드러내고, 현대의 봇 방벽은 그것을 채점합니다. unlocker는 요청을 브라우저에 맞게 다시 쓰고, 거부되면 다른 지문으로 재시도하며, JavaScript가 요구되면 실제 브라우저로 올라갑니다. 클라이언트가 이미 통과한다면 주거용 프록시가 올바른 선택입니다.

### Web Unlocker가 CAPTCHA를 풀어 주나요?

JavaScript 챌린지는 실제 브라우저로 응답하고, 스티키 세션 안에서는 clearance 쿠키를 보존해 그 사이트로의 다음 요청에 씁니다. hCaptcha, reCAPTCHA, 클릭 확인 상자처럼 사람이 필요한 대화형 캡차는 풀지 않습니다. 응답은 captcha로 표시되고 공급업체가 명시되어 돌아오며, 이동한 트래픽은 대시보드에 달리 명시되지 않는 한 GB 단위로 과금됩니다.

### Web Unlocker 무료 체험이 있나요?

계정 만들기는 무료이고 1분이면 되며, 대시보드의 Web Unlocker 페이지에는 호출의 상태, 시도 횟수, 시간, 비용을 보여 주는 Test a URL 상자가 있습니다. unlocker GB는 계층별로 1 GB부터 선불이며, 첫 테스트 호출 비용은 상자 옆에 적혀 있습니다. 무료 주거용 체험은 일반 주거용 프록시용이며 unlocker는 포함하지 않습니다.

### Python, Node.js, PHP, Go, curl에서 호출할 수 있나요?

네. REST 엔드포인트는 어떤 언어든 쓸 수 있는 일반 HTTPS POST이며, 위 탭에는 대시보드가 당신의 자격 증명으로 채우는 것과 같은 curl, Python, Node.js, PHP, Go 스니펫이 있습니다. Scrapy, Playwright 또는 프록시 설정이 있는 어떤 클라이언트든 CONNECT 프록시를 쓰고, 인증서를 설치할 수 없는 곳에서는 다이렉트 모드가 동작합니다.

### Web Unlocker는 프록시인가요, API인가요?

둘 다이며, 하나의 계정과 하나의 잔액으로 씁니다. 코드를 바꿀 수 있으면 REST: JSON 들어가고 JSON 나오며 인증서 없음. 스크래퍼가 이미 프록시를 쓰면 프록시: 호스트, 포트, 사용자 이름, 비밀번호, CA는 한 번 설치. 인증서 없이 프록시를 원하면 다이렉트 모드: http://unlock/ 로 요청을 보내고 x-qp-url에 대상을 지정합니다.

### 모든 시도 후에도 페이지가 차단된 채라면 어떻게 되고, 비용을 내나요?

조용한 성공으로 돌려주는 일은 절대 없습니다. REST 엔드포인트는 blocked를 true로 두고 페이지 옆에 차단 클래스와 공급업체를 밝히거나, fail_on_block을 설정했다면 424 target_blocked로 응답합니다. 프록시는 원본 상태를 x-qp-unlocker-blocked와 함께 중계합니다. 이동한 바이트는 대시보드에 달리 명시되지 않는 한 GB 단위로 과금되며, 시도 로그가 그 바이트로 무엇을 샀는지 보여 줍니다.

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

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

### 어느 국가에서 출구할 수 있나요?

country를, 네트워크에 있다면 state나 city도 넘기면 Premium 계층은 그 시장의 주거용 IP에서 출구하고, Mobile 계층은 4G/5G 통신사 IP에서 같은 일을 합니다. 비워 두면 출구는 대상의 최상위 도메인으로, 다음은 계정 국가로 정해지며, 미국은 최후의 수단입니다.

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

요청을 다시 쓰기 위해 TLS를 종단하는 CONNECT 프록시로 HTTPS를 쓸 때만입니다. API에서 키로 CA를 한 번 내려받으세요. 대상을 x-qp-url 헤더에 넣는 다이렉트 모드와 REST 엔드포인트는 인증서가 전혀 필요 없습니다.

### 페이지를 캡처하기 전에 클릭, 입력, 스크롤을 할 수 있나요?

네, REST 호출에서 가능합니다. 브라우저 동작(클릭, 입력, 스크롤, 대기) 목록을 추가하면 브라우저가 페이지를 캡처하기 전에 순서대로 실행합니다.

### 여러 URL을 한 번에 보낼 수 있나요?

네. 배치는 한 번의 호출로 최대 100개의 URL을 받고, 완료되면 웹훅으로 알려 줍니다.

### 같은 페이지를 두 번 요청하면 다시 과금되나요?

페이지가 캐시에 있는 동안은 과금되지 않습니다. 캐시 수명은 호출에서 직접 정합니다. 만료되기 전까지 같은 페이지는 캐시에서 응답하며 비용이 들지 않습니다.

### Web Unlocker 요금은 얼마인가요?

이동한 GB 단위로, 사용하는 계층(주거용 출구의 Premium 또는 통신사 출구의 Mobile)에 대해 대시보드에서 1 GB부터 구매하는 선불 잔액에서 과금됩니다. 재시도와 브라우저 렌더링도 포함됩니다. 현재 GB당 가격은 구매 전 대시보드의 Web Unlocker 페이지에 표시됩니다. 구독도 최소 기간도 없습니다.

## 관련 제품

- [레지덴셜 Web Unlocker](https://quantumproxies.io/web-unlocker/residential)
- [4G/5G IP 기반 모바일 Web Unlocker](https://quantumproxies.io/web-unlocker/mobile)
- [Web Unlocker 상태와 측정된 성공률](https://quantumproxies.io/web-unlocker/status)
- [Cloudflare용 Web Unlocker](https://quantumproxies.io/web-unlocker/cloudflare)
- [DataDome용 Web Unlocker](https://quantumproxies.io/web-unlocker/datadome)
- [Akamai Bot Manager용 Web Unlocker](https://quantumproxies.io/web-unlocker/akamai)
- [PerimeterX (HUMAN)용 Web Unlocker](https://quantumproxies.io/web-unlocker/perimeterx)
- [Kasada용 Web Unlocker](https://quantumproxies.io/web-unlocker/kasada)
- [Imperva (Incapsula)용 Web Unlocker](https://quantumproxies.io/web-unlocker/imperva)
- [F5 (BIG-IP, Shape)용 Web Unlocker](https://quantumproxies.io/web-unlocker/f5)
- [AWS WAF용 Web Unlocker](https://quantumproxies.io/web-unlocker/aws-waf)
- [Extract API: 어떤 페이지든 Markdown, HTML, JSON으로](https://quantumproxies.io/ko/extract-api)
- [SERP API: 구조화된 JSON 검색 결과](https://quantumproxies.io/ko/serp-api)
- [Residential Premium 프록시](https://quantumproxies.io/ko/residential-proxies)
- [4G/5G 통신사 IP 기반 모바일 프록시](https://quantumproxies.io/ko/mobile-proxies)
- [REST API 참조](https://quantumproxies.io/ko/api)
- [AI 에이전트용 MCP 서버](https://quantumproxies.io/ko/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)
