Tool: Akamai Bypass and Bot Manager Unblocker
Pricing
from $0.04 / page unblocked
Tool: Akamai Bypass and Bot Manager Unblocker
Return the real HTML from Akamai Bot Manager protected and geo restricted sites. Get past Access Denied bot walls. 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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Akamai Bypass and Bot Manager Unblocker
Here is one real result, with every field the tool returns (the html value is truncated here for readability):
{"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>...<h2 class=\"challenge-title text-xl font-bold\">You bypassed the Cloudflare challenge! :D</h2>...</body></html>","json": null,"generatedSchema": null,"attempts": 6,"errorReason": null,"source": "www.scrapingcourse.com","observedAt": "2026-08-10T14:34:14.407Z"}
An HTTP unblocker that fetches pages sitting behind bot-protection challenges and returns the full rendered HTML with a clear success flag. It reports the protection it detected, retries automatically, follows redirects, supports GET and POST with custom headers and body, can render JavaScript pages, lets you pick a viewing country, and optionally converts the unblocked page to structured JSON with AI.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The tool takes one or more page URLs, fetches each one through an unblocking stack that works through bot-protection challenges, and writes one record per URL to the run's dataset. Each record carries the requested URL and the final URL after redirects, a success flag, the HTTP status code, the protection it detected (for example cloudflare), the page title, the content length, the full page HTML, and the number of attempts it took.
It supports GET and POST with custom request headers and a request body, can render JavaScript-heavy pages and single-page apps when renderJavaScript is on, and lets you view the page from a chosen country. An optional AI add-on (extractToJson) converts the unblocked page to structured JSON, following a custom jsonSchema you supply or inferring one and returning it in generatedSchema. When a page cannot be unblocked, success is false and errorReason explains why. Values are returned as null, never invented.
Quickstart
Open the tool, paste this into the input, and press Run.
{"urls": ["https://www.scrapingcourse.com/cloudflare-challenge"],"httpMethod": "GET"}
Add more URLs to urls to process many in one run. Turn on renderJavaScript for pages whose content is built in the browser.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
urls | string[] | no | (example URL) | One or more page URLs to fetch. One run can process many URLs. |
httpMethod | string | no | GET | Request method for every URL. GET or POST. |
headers | object | no | (none) | Extra request headers to send with every URL, as key/value pairs. |
payload | string | no | (empty) | Request body to send when httpMethod is POST (JSON or form-encoded). |
renderJavaScript | boolean | no | false | Turn on for JavaScript-heavy pages and single-page apps. Off is faster for normal HTML. |
country | string | no | auto | Country to view the page from, for geo-specific content. auto picks the best match, or one of US, GB, CA, AU, DE, FR, ES, IT, NL, BR, MX, AR, CL, CO, PE, JP, KR, IN, SG, HK, AE, ZA. |
waitForMs | integer | no | (none) | Extra settle time in milliseconds for JavaScript pages before capture (0 to 30000). |
maxUrls | integer | no | 25 | Maximum number of URLs to process in this run. |
extractToJson | boolean | no | false | AI add-on. Convert the unblocked page to structured JSON. Billed separately and only for pages that were successfully unblocked. |
jsonSchema | object | no | (none) | A JSON schema for the AI extraction to follow exactly. Leave empty and the AI infers the structure and returns it in generatedSchema. Only used when extractToJson is on. |
Output reference
One dataset item per URL. Types: string, number, boolean, object, or null when the value is absent.
| Field | Type | Description |
|---|---|---|
url | string | The requested URL. |
finalUrl | string | The final URL after redirects. |
success | boolean | true when the page was unblocked and returned. |
statusCode | number | HTTP status code of the fetched page, or null. |
protectionDetected | string | The bot protection detected on the page, for example cloudflare, or null when none. |
pageTitle | string | The page title, or null. |
contentLength | number | Length of the returned HTML in bytes. |
html | string | The full page HTML, or null when the page could not be unblocked. |
json | object | AI-extracted structured JSON when extractToJson is on, else null. |
generatedSchema | object | The schema the AI used when none was supplied, else null. |
attempts | number | Number of fetch attempts it took. |
errorReason | string | null on success; a reason string when the page could not be unblocked. |
source | string | The hostname of the requested URL. |
observedAt | string | ISO 8601 timestamp of when the record was produced. |
Example output record
Real record from a live run (input {"urls": ["https://www.scrapingcourse.com/cloudflare-challenge"]}, html truncated for readability):
{"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\">...<h2 class=\"challenge-title\">You bypassed the Cloudflare challenge! :D</h2>...</html>","json": null,"generatedSchema": null,"attempts": 6,"errorReason": null,"source": "www.scrapingcourse.com","observedAt": "2026-08-10T14:34:14.407Z"}
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~akamai-bypass-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"urls":["https://www.scrapingcourse.com/cloudflare-challenge"],"httpMethod":"GET"}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~akamai-bypass-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"urls":["https://example.com/product/123"],"renderJavaScript":true,"country":"US"}'
Apify CLI:
apify call scrapers_lat/akamai-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:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "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 page. Each URL is billed as a
page-requestedevent, plus apage-unblockedevent only when the page is successfully unblocked. See the pricing tab for current prices. - Premium unblock for the hardest pages. Some pages behind the strongest protections can only be returned through a premium last-resort retrieval path. When that path is what returns the page, a single
premium-unblockevent is billed instead ofpage-unblocked(never both, and never on failure). Ordinary pages continue to bill the standardpage-unblockedevent. - AI extraction billed separately. When
extractToJsonis on, anai-json-requestedevent is billed per attempt and anai-json-deliveredevent only when structured JSON is returned. - No charge for a failed unblock beyond the request. If a page cannot be unblocked,
successisfalseand neither thepage-unblockednor thepremium-unblockevent is charged. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the tool stops emitting and charging further billable events.
FAQ and troubleshooting
Which protection did it hit?
Check protectionDetected on each record. It reports the challenge the tool encountered, for example cloudflare.
A page returned success: false. Why?
The page could not be unblocked within the attempt budget. errorReason explains the cause. Only the page request is billed in that case, not the unblock.
How do I handle JavaScript-rendered pages?
Turn on renderJavaScript, and add waitForMs if the content needs extra settle time before capture.
Can I get structured data instead of raw HTML?
Yes. Turn on extractToJson. Supply a jsonSchema to control the shape, or leave it empty and read the inferred schema from generatedSchema.
Can I send POST requests?
Yes. Set httpMethod to POST and pass the body in payload, with any headers in headers.
Is this tool affiliated with Akamai or Cloudflare? No. It is an independent unblocking tool and has no affiliation with Akamai, Cloudflare or any protection vendor. Use it only on pages you are permitted to access.
Related scrapers
- Cloudflare Bypass Scraper: Fetch pages behind Cloudflare challenges.
- DataDome Bypass Scraper: Fetch pages behind DataDome protection.
- Gen5 Website Unblocker: General-purpose page unblocker.
- Website Contacts Scraper: Emails and contacts from any site.
- Website Tech Stack Scraper: Detect the technologies a site uses.
- Text to JSON Tool: Convert raw text to structured JSON.
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 unblocking tool, not affiliated with any bot-protection vendor. Use only on pages you are permitted to access.
