Web Unlocker · Akamai Bot Manager
Akamai Bot Manager bypass: from Access Denied to the page
Akamai Bot Manager refuses a scraper with a 403 page that reads "Access Denied" and ends with a reference number. The Web Unlocker sends the URL from a residential or mobile IP with a browser-grade client, opens a real browser when the site asks for one, retries on a fresh exit, and returns the page as JSON.
- 88.9%
- calls answered with the real page across 27 protected targets, Akamai among them, canary of 11 November 2026
- 81
- calls, 3 runs, default settings
- 4.1 s
- median response across the run
What an Akamai block looks like
Akamai shows the same plain page on thousands of sites. The words and the reference number are the giveaway; the status code is always the same.
| Where to look | What an Akamai block shows |
|---|---|
| Status code | 403. Some sites answer nothing at all instead: the connection hangs until your client times out. |
| Page text | "Access Denied. You don't have permission to access "http://..." on this server.", then "Reference #18." and a long number. |
| Reference number | The digits after Reference # identify the edge server and the request. The site owner can look them up; they do not tell you which rule matched. |
| Error link | A link to errors.edgesuite.net that carries the same reference. |
| Cookies | _abck and bm_sz are set on the first answer, ak_bmsc on many sites. _abck holds the verdict on your client. |
| Challenge page | On some sites, a short page with a progress bar that reloads by itself after a few seconds. |
| Scripts | A script served from the site's own domain, on a long random path, that posts data about the browser back to the site. |
Why Akamai blocks a scraper
Akamai runs on the edge servers that deliver the site, so it sees the connection itself and not only the request. It decides in steps.
- Before any script runs: the IP reputation, the TLS handshake, the order of the HTTP/2 settings and of the headers. A client that claims to be Chrome and connects like a script is refused here, with the Access Denied page.
- After the page loads: a script reports what the browser is and how it behaves. The verdict is written into the
_abckcookie. - On the next requests: a missing or invalid
_abckgets the refusal again, often only on the paths that matter, such as search, product and checkout pages. - This is why a scraper can load the home page of an Akamai site and still get Access Denied on every product page.
Get the page behind Akamai with one call
Send the URL you need to the REST endpoint, as it is. With mode: "auto", the default, the first attempt is a browser-grade request from a residential IP; when the site wants more, a real browser opens the page and the call retries on a fresh exit.
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 a site that serves one country only, set country. For a flow that has to stay on one IP, such as a search followed by its result pages, add a session id to the call.
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 guide: akamai. |
blockClass | Usually fingerprint when Akamai refuses the client with the Access Denied page, and js_challenge when it serves a check that a browser clears. |
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
The canary of 11 November 2026 runs a fixed list of 27 protected targets, Akamai sites among them: 72 of 81 calls came back with the real page, 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.
Your own scraper or the Web Unlocker
Getting past Akamai once is an afternoon. Staying past it every week is the work. This is what has to stay right, and who keeps it right.
| What has to be right | With your own scraper | With the Web Unlocker |
|---|---|---|
| The IP address | You rent residential or mobile IPs and rotate them yourself. | Residential (Premium) or mobile exits, chosen by country, state and city. |
| The browser identity | Handshake, HTTP/2 settings and headers must describe one browser, and be updated with every browser release. | A browser-grade request on the first attempt, kept current for you. |
| The JavaScript check | You run real browsers for the pages that need one, and keep them from looking automated. | A real browser opens the page only when the site asks for one. |
| After a pass | You keep _abck valid: it is tied to the browser that earned it and it expires. | The session is kept for you while it is valid. |
| When a call still fails | You recognise the Akamai block page yourself and decide what to retry. | Retries on a fresh exit. The answer says blocked, blockClass and vendor. |
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.
Akamai and scraping: questions people ask
What does "Access Denied: You don't have permission to access ... on this server" mean?
It is the refusal page of Akamai's edge servers. Your request was stopped before the site saw it, usually because the IP or the client looked automated, sometimes because the site blocks your country. The reference number at the bottom identifies the request for the site owner. Reloading from the same client gets the same page.
What is the Akamai reference number (Reference #18...)?
An identifier of the refused request. It encodes the edge server and the moment, so that the site's own team can find the log line and the rule behind it. It is not an error code you can look up yourself, and two refusals for the same reason carry different numbers.
Can I bypass Akamai Bot Manager with Python?
With a plain HTTP library, rarely for long. The handshake gives the script away before the first header is read, and the _abck cookie needs a browser to become valid. From Python you can send one POST to the Web Unlocker, which makes the request with a browser-grade client and opens a real browser when the site requires one.
Does a residential proxy alone get past Akamai?
It removes one reason for the refusal, the IP. The handshake and the missing browser signals remain, so the same script behind a home IP still meets Access Denied on protected paths. The Web Unlocker uses residential and mobile exits and takes care of the client side as well.
Why does the home page load but product pages return Access Denied?
Akamai lets the site owner protect paths one by one. Many sites leave the home page open and guard search, product, price and checkout pages, where an invalid or missing _abck cookie is refused. A scraper that tests itself on the home page looks fine and then fails where the data is.
Is it legal to scrape a site protected by Akamai?
The protection system does not decide that. What matters is the page and the data: whether the page is public, what the terms of the site say, and which law covers the data, personal data above all. The Web Unlocker fetches pages anyone can open without signing in; it does not log in and it does not create accounts.
Send the URL that Akamai blocks
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
- Akamai TechDocs: about bots
- Akamai TechDocs: handle adversarial bots
- Akamai TechDocs: translate an error reference string
- RFC 9110, section 15.5.4: 403 Forbidden
- Web Unlocker in the QuanticData API docs: request, answer, errors and blocked pages
- Web Unlocker status: the canary list, the method and every run