Tool: Cloudflare Bypass and Website Unblocker avatar

Tool: Cloudflare Bypass and Website Unblocker

Pricing

from $0.04 / page unblocked

Go to Apify Store
Tool: Cloudflare Bypass and Website Unblocker

Tool: Cloudflare Bypass and Website Unblocker

Return the real HTML from Cloudflare protected and geo restricted sites. Get past Just a Moment, Turnstile and 403 challenge pages. Pay a small fee per request and more only on success. Optional AI converts the page into structured JSON.

Pricing

from $0.04 / page unblocked

Rating

0.0

(0)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

2

Monthly active users

6 days ago

Last modified

Share

Tool: Cloudflare Bypass and Website Unblocker

Tool: Cloudflare Bypass and Website Unblocker

Here is one real result, with every field the actor returns (the html field is truncated; the value shown is real):

{
"url": "https://www.scrapingcourse.com/cloudflare-challenge",
"finalUrl": "https://www.scrapingcourse.com/cloudflare-challenge",
"success": true,
"statusCode": 200,
"protectionDetected": "cloudflare",
"pageTitle": "Cloudflare Challenge - ScrapingCourse.com",
"contentLength": 3854,
"html": "<!DOCTYPE html><html lang=\"en\"><head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"> ... [html truncated]",
"json": null,
"generatedSchema": null,
"attempts": 6,
"errorReason": null,
"source": "www.scrapingcourse.com",
"observedAt": "2026-08-10T14:06:50.975Z"
}

The most complete Cloudflare bypass and website unblocker available. It fetches a protected page, clears the Cloudflare interstitial, and returns the final unblocked HTML plus the detected protection vendor, status code, page title, content length and attempt count, with optional country targeting, JavaScript rendering, and AI extraction of the page to structured JSON.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor takes one or more URLs, fetches each one through an anti-bot ladder that clears the Cloudflare challenge, and writes one record per URL to the run's dataset. Each record carries the requested and final URL, a success flag, the HTTP status code, the detected protection vendor, the page title, the HTML content length, the full unblocked HTML, the number of attempts, and a human-readable reason when a page cannot be unblocked. You can render JavaScript for single-page apps, target a specific country, send custom headers and a POST body, and optionally convert the unblocked page to structured JSON with AI.

It clears Cloudflare and similar interstitial-style protection, and escalates the toughest high-value sites to a heavier last-resort retrieval path. Pages behind an interactive human-verification challenge (for example a hard CAPTCHA) are reported honestly with success: false and an errorReason, and are not charged any unblock fee.

Quickstart

Open the actor, paste this into the input, and press Run. It unblocks one Cloudflare-challenged demo page.

{
"urls": ["https://www.scrapingcourse.com/cloudflare-challenge"],
"httpMethod": "GET",
"renderJavaScript": false,
"country": "auto",
"maxUrls": 25
}

Pass many URLs in urls to process them in one run. Turn on renderJavaScript for JavaScript-heavy pages.

Input reference

FieldTypeRequiredDefaultDescription
urlsstring[]yes["https://www.scrapingcourse.com/cloudflare-challenge"]One or more page URLs to fetch. One run can process many URLs.
httpMethodenumnoGETRequest method for every URL: GET or POST.
headersobjectno(none)Extra request headers to send with every URL, as key/value pairs.
payloadstringno(empty)Request body to send when httpMethod is POST.
renderJavaScriptbooleannofalseTurn on for JavaScript-heavy pages and single-page apps. Off is faster for normal HTML.
countryenumnoautoCountry to view the page from (for example US, GB, BR, MX). auto picks the best match per URL.
waitForMsintegerno(none)Extra settle time in milliseconds for JavaScript pages before the HTML is captured (max 30000).
maxUrlsintegerno25Maximum number of URLs to process in this run.
extractToJsonbooleannofalseAdd-on. Convert the unblocked page to structured JSON with AI. Billed separately and only for pages that were successfully unblocked.
jsonSchemaobjectno(none)Optional JSON schema for the AI extraction to follow. Leave empty to let the AI infer the structure and return it in generatedSchema. Only used when extractToJson is on.

Output reference

One dataset item per URL. Types: string, integer, boolean, object, or null when the value is absent.

FieldTypeDescription
urlstringThe requested URL.
finalUrlstringFinal URL after redirects.
successbooleantrue when the page was unblocked.
statusCodeintegerHTTP status code of the fetched page.
protectionDetectedstringDetected protection vendor, for example cloudflare, or none.
pageTitlestringPage title of the unblocked page, or null.
contentLengthintegerHTML length in characters.
htmlstringThe full unblocked page HTML, or null on failure.
jsonobjectAI-extracted structured JSON (add-on), else null.
generatedSchemaobjectSchema the AI used when none was supplied (add-on), else null.
attemptsintegerNumber of retrieval attempts made.
errorReasonstringHuman-readable reason on failure, else null.
sourcestringSource host.
observedAtstringISO 8601 timestamp of when the record was collected.

Example output record

Real record from a live run (input {"urls":["https://www.scrapingcourse.com/cloudflare-challenge"],"maxUrls":25}). The html field is truncated; the value shown is real:

{
"url": "https://www.scrapingcourse.com/cloudflare-challenge",
"finalUrl": "https://www.scrapingcourse.com/cloudflare-challenge",
"success": true,
"statusCode": 200,
"protectionDetected": "cloudflare",
"pageTitle": "Cloudflare Challenge - ScrapingCourse.com",
"contentLength": 3854,
"html": "<!DOCTYPE html><html lang=\"en\"><head> ... [html truncated]",
"json": null,
"generatedSchema": null,
"attempts": 6,
"errorReason": null,
"source": "www.scrapingcourse.com",
"observedAt": "2026-08-10T14:06:50.975Z"
}

Run via API and CLI

Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~cloudflare-bypass-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"urls":["https://www.scrapingcourse.com/cloudflare-challenge"],"country":"US"}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~cloudflare-bypass-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"urls":["https://example.com/a","https://example.com/b"],"renderJavaScript":true,"maxUrls":50}'

Apify CLI:

apify call scrapers_lat/cloudflare-bypass-scraper \
--input '{"urls":["https://www.scrapingcourse.com/cloudflare-challenge"]}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.

Billing and limits

  • Pay per unblock. The unblock charge lands only when a page is successfully unblocked (success: true). See the pricing tab for the current per-page events and prices.
  • Premium unblock. A few high-value sites can only be returned through a heavier last-resort retrieval path. When that path is what delivers the page, the run is charged the premium-unblock event instead of the standard unblock fee (never both, and never on failure).
  • No charge on a failed unblock. Pages behind an interactive human-verification challenge (for example a hard CAPTCHA) are reported with success: false and an errorReason, and are not charged any unblock fee.
  • AI extraction billed separately. The extractToJson add-on is billed only for pages that were successfully unblocked and produced usable JSON.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable pages.
  • Free Apify plans are capped at 10 URLs per run. Upgrade for higher maxUrls.

FAQ and troubleshooting

A page came back with success: false. Why? It sits behind an interactive human-verification challenge this tool does not clear (for example a hard CAPTCHA), or the challenge could not be solved in time. The errorReason explains which. Failed unblocks are not charged any unblock fee.

Which protections does it clear? Cloudflare and similar interstitial-style challenges. It does not clear interactive human-verification CAPTCHAs, Imperva/Incapsula, or PerimeterX.

When should I turn on Render JavaScript? For single-page apps and pages whose content is built in the browser. Leave it off for normal server-rendered HTML, which is faster.

How do I get geo-specific content? Set country to the target country code (for example MX or DE). Leave it on auto to match the site automatically.

Can I get structured data instead of raw HTML? Yes. Turn on extractToJson. Provide a jsonSchema to force a shape, or leave it empty and the AI returns the schema it inferred in generatedSchema.

Is this an official Cloudflare tool? No. This actor is independent and has no affiliation with Cloudflare. Use it only on pages you are authorized to access and in accordance with the target site terms.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with Cloudflare. Use only on pages you are authorized to access, and in accordance with the target site terms of service.