Block pages · Cloudflare
Cloudflare "Just a moment...": what the page is and why it gets stuck
"Just a moment..." with "Verifying you are human" is Cloudflare's challenge page. It holds the request while a script checks that a real browser is asking, then lets it through, usually within a few seconds. It gets stuck when that script cannot finish. A script that meets it gets the page with one Web Unlocker call.
- 9 of 9
- calls to Cloudflare-protected pages answered with the real page, canary of 11 November 2026
- 88.9%
- across all 27 protected targets of the same run
- 4.1 s
- median response across the run
What you are looking at
The page is a waiting room, not a refusal. It has one job, to run a check in the browser, and one header that names it.
| Where to look | What it shows |
|---|---|
| Status code | 403 on the challenge page. 503 on older JavaScript challenges. |
| Text on the page | "Just a moment..." as the title, with "Verifying you are human. This may take a few seconds." or "Checking your browser before accessing". |
| Response header | cf-mitigated: challenge. Cloudflare sets it on every type of challenge page, and the content type is HTML whatever you asked for. |
| Script | Loaded from /cdn-cgi/challenge-platform/ on the site's own domain. |
| What it may ask | Nothing, when the check clears by itself. Otherwise a box to tick: "Verify you are human". The check inside the page is Cloudflare Turnstile. |
| Cookie after a pass | cf_clearance. It is tied to the visitor and the device it was issued to, and valid for the time the site set. |
| Which system | Cloudflare, on a rule of the site: its firewall, its bot management or its rate limiting can all send a challenge. |
If you are a visitor
In a normal browser the page goes away by itself: the script runs, the check passes and the site loads. When it stays, or comes back in a loop, the check could not finish or its result could not be saved.
- Allow JavaScript and cookies for the site. The check is a script, and its pass is stored in the
cf_clearancecookie: without either, the page repeats. - Disable extensions for a moment, ad blockers above all, then reload once. They may block the scripts the check needs.
- Update the browser, or try a private window, then another browser or device. Old and unsupported browsers fail the check.
- Turn off the VPN or proxy, or switch to another network such as a mobile hotspot. A shared address is challenged more often.
- If a box appears, tick it. If nothing works in a clean browser, the rule of the site is the cause: tell its owner.
If your script gets it
A script receives the same page as a 403 with HTML it did not ask for, even on an API call. Four things explain why it never becomes the real page.
- No JavaScript, no pass:
requests, cURL and similar clients cannot run the challenge script, so they get the403every time. - The handshake counts first: a client whose TLS and HTTP/2 fingerprint does not match the browser in its
User-Agentis challenged more, and harder. - A copied cookie does not travel:
cf_clearanceis tied to the visitor and the device it was issued to. Pasted into a script on another machine, it is ignored. - To detect it, read the header:
cf-mitigated: challengeis there on every challenge page, so there is no need to guess from the body.
The whole picture of the system is in the guide: How to Bypass Cloudflare When Scraping. See also Cloudflare Turnstile.
Get the page with one call
Send the URL to the REST endpoint. With mode: "auto", the default, the first attempt is a browser-grade request from a residential IP. If Cloudflare answers with the challenge, a real browser opens the page, waits for the check to clear and returns what it sees.
curl -X POST https://app.quanticdata.io/api/v1/scraper/unlock \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/", "country": "us"}'
For many pages of one site, keep calling from the same account: once a challenge is passed, the next calls reuse that session and come back faster. With mode: "tls" no browser is opened, and a challenged call comes back blocked.
What the answer tells you
| Field | What it says |
|---|---|
blocked | false when the real page came back. true only when every attempt met the block; the block page is then in body. |
vendor | The system the engine recognised on a blocked attempt. For this page: cloudflare. |
blockClass | js_challenge when the check did not clear in time, captcha when the page that came back still asks a person. |
tier_served | tls for a browser-grade request, browser when a real browser had to open the page. |
attempts, latency_ms | How many tries the call took and how long it lasted. |
cost | The bytes this call moved and what it was charged. |
Measured, with a date
In the canary of 11 November 2026, all 9 calls to Cloudflare-protected pages came back with the real page. Across the whole run, 72 of 81 calls on 27 protected targets did, with a median response of 4.1 s.
A call counts only when the answer is 2xx and carries the real page, not a challenge. The list, the method and every run are on the Web Unlocker status page.
What it is for, and what it does not do
- It is for pages anyone can open in a browser without signing in: prices, listings, reviews, search results, public profiles.
- Challenges that need no human input are handled by the browser tier. An interactive captcha that asks a person to click, pick images or type is not solved: the answer comes back with
blocked: trueandblockClass: "captcha", so your code can skip the page or try later. - It does not log in for you and it does not create accounts. Pages behind a login stay behind it.
- Whether you may collect a page depends on the terms of the site and on the law that covers the data. A protection system does not change that, in either direction.
Just a moment: questions people ask
What is the Cloudflare "Just a moment..." page?
It is a challenge page. The site sits behind Cloudflare, and one of its rules asked Cloudflare to verify the visitor before passing the request on. The page runs a script in your browser, and when the script finishes the site loads. Most people never have to click anything.
Why am I stuck on "Verifying you are human"?
Because the check cannot finish or cannot save its result. The usual causes are JavaScript or cookies turned off, an extension that blocks the check script, an outdated or in-app browser, or a VPN address that keeps being challenged. Fix those in that order and reload the page once.
Why does the page loop after I pass the check?
A pass is stored in the cf_clearance cookie, which is tied to the visitor and the device that earned it. If the browser refuses the cookie, or the address changes between requests as on some VPNs and mobile networks, Cloudflare sees a new visitor each time and asks again.
Why does cURL or Python get 403 with "Just a moment..."?
The challenge is a script, and an HTTP client cannot run it, so the 403 never turns into the page. Changing the User-Agent does not help, because the handshake still shows what the client is. Send the URL to the Web Unlocker: a real browser passes the check and the answer carries the page.
How can my code tell a challenge from a real answer?
Look at the response headers. Cloudflare sets cf-mitigated: challenge on every type of challenge page, and the content type is HTML even when you asked for JSON. The Web Unlocker does this reading for you: its answer says blocked, blockClass and vendor, so you never parse a challenge as data.
What does the Web Unlocker return when the check does not clear?
The answer says so, instead of handing you the challenge page as if it were content: blocked: true, with blockClass js_challenge or captcha and vendor cloudflare. The call has already been retried from a fresh exit, and a new call starts from another one, so your code can simply retry or skip the page.
Send the URL that shows you this page
Create the free account, open Web Unlocker in the dashboard and paste the URL into the test box. The answer shows the status, the tier that served the page, the attempts and the cost of the call.
References
- Cloudflare docs: interstitial challenge pages
- Cloudflare docs: detect a challenge page response (the cf-mitigated header)
- Cloudflare docs: clearance and the cf_clearance cookie
- Cloudflare docs: challenge solve issues (loops, causes and the troubleshooting steps for visitors)
- RFC 9110, section 15.5.4: 403 Forbidden
- Web Unlocker in the QuanticData API docs: request, answer, errors and how to read a block (vendor and blockClass)
- Web Unlocker status: the canary list, the method and every run