Skip to content

How to Scrape Past Imperva (Incapsula) With Residential Proxies

Imperva bypass, tested: a home IP got 200 OK challenge pages. Imperva's own error codes, its cookie and JavaScript checks, and what proxies fix.

HProxy TeamJuly 17, 2026Updated October 22, 202616 min read

How to Scrape Past Imperva (Incapsula) With Residential Proxies

Imperva handles a doubtful request in steps. It names the client first, then can ask for a cookie, a JavaScript token or a CAPTCHA, in that order. A residential proxy changes one input to those steps: the address. On October 22, 2026, we sent a plain request with a Chrome user agent from a home internet connection to three sites behind Imperva. All three answered 200 OK. Only one of them sent a real page.

This guide covers how to read Imperva's answers, what it checks and what our requests got. It also covers where Imperva runs, the two ways to answer its scripts, and what a browser job costs in residential traffic. We sell residential proxies, so we have a stake in the address part of the problem. The rest is most of this page.

Can residential proxies get past Imperva?

Not on their own. Imperva's product page describes a "multi-layered approach to detect malicious bots". It combines "direct client interrogation, behavior analysis, machine learning (ML), connection characteristics, and threat intelligence feeds". An address can move the connection and threat intelligence parts. Client interrogation and behavior read the program you run and how it acts.

Its own docs name two places where the address counts. A site can block sources by country and IP. And the CAPTCHA a client meets, hCaptcha, reCAPTCHA or GeeTest, depends on the site's setup and "the client IP geolocation". Our requests show the limit. The home address did not stop Pokemon Center's challenge, and a datacenter server got 7-Eleven's real homepage in August.

How do you know Imperva answered you?

Imperva rarely sends a plain client a clean 403. Our three requests, with cookie values, site ids and anything that could carry our address cut:

Our own capture, October 22, 2026, 12:45 UTC. Cookie values, site ids and the X-Iinfo value cut.

The signs to look for:

  • Imperva's cookies. visid_incap_ and incap_ses_ followed by a site number, sometimes nlbi_ too. Imperva documents the first: it uses visid_incap "To correlate HTTP sessions to specific visitors to your sites".
  • Its headers. X-CDN: Imperva, and X-Iinfo, which Imperva's documentation describes as a header "used by Imperva to track and troubleshoot caching of resources".
  • A script or frame from /_Incapsula_Resource. All three of our pages loaded one. On Coles it was the whole page.
  • A 200 that is a challenge. Pokemon Center's 1,048 bytes held a frame reading "Request unsuccessful. Incapsula incident ID" and a number. A scraper that checks only the status saves that as data.
  • "Pardon Our Interruption". The title of the bot check page Pokemon Center showed our server in September 2026. It named disabled JavaScript or cookies and browsing "with super-human speed" as the usual causes.

The 200 trap is old. "POST request works in Postman, but not in Python Requests (200 response with robot detection)" has 22,861 views on Stack Overflow.

What do Imperva's error codes mean?

An Imperva error page carries a code, and the vendor's own table explains each one. The page also shows the visitor's IP address and an incident ID the site owner can look up. The docs add that the code travels in a field named edet: Pokemon Center's frame address carried edet=12.

CodeWhat the docs say
12A CAPTCHA challenge page instead of the expected content
14Blocked by the site's Block User or Block IP settings; the session stays blocked
15Blocked by the site's WAF settings: Block Request, Block User or Block IP
16Blocked by security settings: Bot Access Control or Block Specific Sources
17A blocked visitor whose session had no cookie

Codes 14 to 17 are blocks. The table adds that once a user or IP is blocked, the later requests of that session fail too. Code 12 is a question your client can still answer.

What does Imperva check?

Imperva publishes much of its first layer and almost nothing of its bot product. The public pages cover the client list, the challenges and the error codes. The docs of its Advanced Bot Protection are "available to authorized users upon login".

The client you send

Imperva classifies every client first. In its words, the classification "can tell whether your website visitors are humans or bots". The result decides whether to challenge, alert or block. Its public list names 965 clients in 15 types. Common scraping tools land here:

ClientImperva client IDFiled as
cURL47HackingTool
python-requests130HackingTool
python-aiohttp888HackingTool
Node.js891HackingTool
Java HTTP Client1053HackingTool
Headless Chrome827HackingTool
Scrapy474Crawler
Chrome3Browser

The vendor describes the HackingTool type broadly: "All tools that can be programmed for any purpose, malicious or not". A client it cannot name becomes a "Suspected Bot", which a site can send to a CAPTCHA or other challenges. Setting a Chrome user agent on a Python client does not settle it either. Hyper Solutions, which sells an Imperva solver, says the TLS handshake and header order are checked too, and that "HTTP libraries betray automation here". Our JA3 and JA4 explainer covers the handshake fingerprint.

The challenges

For a client it doubts, Imperva climbs a ladder. Its docs list three steps: a cookie to store and send back, a script to run, and a CAPTCHA. The script is a test "that the browser must execute to generate a validation token". A client that fails one step gets the next.

Imperva names the client, then climbs a challenge ladder
  1. Classify

    browser, bot or suspected

  2. Cookie

    store it, send it back

  3. JavaScript

    run a script for a token

  4. CAPTCHA

    hCaptcha, reCAPTCHA or GeeTest

Source: Imperva documentation, read October 22, 2026: Client Classification and CAPTCHA and challenge behavior (both updated October 21, 2026), DDoS Settings (August 20, 2026) · hproxy.comProxy.

Two details matter for scrapers. A client that passed a challenge "can still receive a stricter one later", for example when its request rate trips a rule. And once a client passes a CAPTCHA, Imperva issues no further progressive challenges in that session, though a custom rule can still ask again. Imperva also says legitimate users "are not served a CAPTCHA on 99.999% of requests" where customers choose it as a response. A scraper that meets one on most pages has already been sorted out of that group.

The bot product's scripts

Past the public challenges, the docs stop. The names in circulation come from responses and solver vendors. A reese84 cookie is set through a sensor script, and a ___utmvc cookie by a second script. Hyper Solutions' account of both is in the solver section below.

Behavior

Imperva lists behavior analysis and machine learning among its detection layers. The Pokemon Center check page named one behavioral cause outright: moving through the site "with super-human speed".

What did our requests at Imperva sites get?

Three answers with the same status told three different stories:

Three plain requests to Imperva sites, three 200 OK answers
7-Eleven: the real homepageImperva cookies and script on the page
119,331 bytes
Pokemon Center: a challenge pageincident ID frame, error code 12
1,048 bytes
Coles: one script, no contentnothing until a browser runs it
212 bytes
All three answered 200 OK, and only the 119,331-byte answer was a page a reader could use.
Source: HProxy's plain curl requests with a Chrome 141 user agent from a home internet connection, October 22, 2026, 12:45 UTC; body sizes as received · hproxy.comProxy.
  • Pokemon Center sent the challenge page with error code 12. Its script stores a value named distil_referrer, after Distil Networks, the bot company Imperva bought in 2019. In September the store showed our server a "Pardon Our Interruption" page or a 403 instead, as our Pokemon Center guide records.
  • Coles, an Australian supermarket, sent an empty page with one script. No content reaches a client until a browser runs it.
  • 7-Eleven sent its real homepage, with the vendor's cookies and script on the page. In August a datacenter server in Germany got the same homepage, with PerimeterX scripts beside Imperva's, as our 7-Eleven guide shows.

A homepage that loads proves little, because the script on it keeps working on the pages after. In our retail bot-defense study of August 24, 2026, Imperva was the main defense at 1 of 52 US stores. Its home ground is elsewhere.

Where does Imperva run, and which exit country should you pick?

Wappalyzer, which detects the technology behind websites, tracks 99,000 live websites using Imperva. Its most visited are rarely shops: French government services, Chilean and Colombian banks, and the Spanish newspaper El Confidencial. By industry, insurance agents hold 23% of the sites Wappalyzer classifies, hotels 9% and banks 8%.

Where Imperva's websites are, by country
United States
59%
Australia
9%
France
7%
Japan
6%
Chile
4%
Spain
4%
Poland
3%
Brazil
3%
United Kingdom
2%
Italy
2%
Six in ten Imperva sites are American, and Australia, France and Japan hold another fifth.
Source: Wappalyzer, Imperva technology page, read October 22, 2026; share of the websites it detects Imperva on · hproxy.comProxy.

A US exit fits most targets, but four in ten sites are elsewhere. The country matters twice at Imperva: a site can block whole countries, and Imperva picks the CAPTCHA provider by the client IP's location. Every one of our residential pools targets by country, and Residential Premium adds state, city and ISP targeting. Match the browser's language and time zone to the exit, too.

Why keep one exit per session?

Imperva follows a visitor through cookies: visid_incap exists "To correlate HTTP sessions to specific visitors". Keep the address steady while a session runs, because a solver's payload is made for one address. Hyper Solutions defines its ip field as "The egress IP the payload is generated for. It must match the IP your target request exits from". Its FAQ names "an IP mismatch, a rotated user-agent" as usual reasons valid sensor data still gets blocked.

The pattern that follows:

  • One sticky exit per session. Hold one residential address for a whole browsing flow, so the cookies, the address and the browser stay together. Our sticky and rotating sessions guide shows how sessions are set.
  • A static ISP address for logged-in work. An account that signs in from one place every day is better served by an ISP proxy, whose exit does not change.
  • Rotate between sessions. A new session gets a new address, a new browser context and an empty cookie jar.

What are the two ways to answer Imperva's scripts?

The cookie and JavaScript steps are where most scrapers stall, and there are two ways through them.

Run a real browser

A real browser runs Imperva's JavaScript the way the script expects and keeps its cookies. A hardened Playwright or Puppeteer, or an anti-detect browser, also renders the page you probably need anyway. A stock headless build starts behind, since the client list files Headless Chrome as a HackingTool. Stack Overflow's "How do I avoid imperva bot detection?" (5,058 views) is the Selenium version of that wall. The cost is memory per worker and full page weight per fetch, which the cost section prices.

Generate the payloads with a solver

The alternative skips the browser. Hyper Solutions sells an API for it, and its product page describes the scripts in more detail than Imperva does in public:

  • The reese84 sensor. "A hidden JavaScript sensor collects device, canvas and timing entropy, then expects a signed reese84 payload posted back". It fires "On virtually every Incapsula-protected endpoint".
  • The ___utmvc gate. "The ___utmvc cookie is only issued after a rotating, obfuscated challenge script is executed correctly". Hyper adds that "Re-implementing the sensor by hand breaks on every Imperva update". "Some sites use one, some use both".
  • A CAPTCHA on top. "When trust is low, Incapsula can fall back to a third-party captcha such as hCaptcha or GeeTest inside an iframe instead of the page", "typically after repeated automated-looking requests or from a flagged IP range". Hyper does not solve those. Our guides to solving hCaptcha when scraping and solving GeeTest cover that half.

Two details of that route matter for anyone running proxies:

  • You still make every request. The solver returns a payload; your proxy, your session, your cookie jar and your bandwidth carry the traffic.
  • The payload belongs to one exit address, as the ip field above says. Sticky sessions become a requirement. Our guide to proxy setup for antibot solver APIs covers the pairing.

What does an Imperva job cost in residential traffic?

Residential proxies bill per GB, and the two routes move very different amounts. A challenge page is tiny: Coles sent 212 bytes, Pokemon Center 1,048. A browser that passes the challenge then loads the whole page. At the HTTP Archive's October 2024 medians, a desktop page weighs 2,652 KB. Of that, 1,054 KB is images and 18 KB is the HTML. One GB carries about 377 full desktop page loads. At our one-GB residential price of $0.50 per GB, 1,000 desktop pages come to about 2.65 GB, or $1.33, before caching.

The solver route moves request-sized traffic instead. Hyper Solutions puts a browser session at 200 to 500 MB of memory, against under 1 MB per API call. The figures come from its own tests on airline award searches. Those are a vendor's figures, so test on your target before you budget. Our headless browser bandwidth cost page compares the two routes at more volumes.

What can a proxy not fix at Imperva?

A proxy forwards your bytes untouched. Say those bytes come from a client on the HackingTool list, return no cookie and never run the script. A residential address then only means Imperva challenges a residential address.

Imperva: what a residential proxy fixes, and what it leaves to you

The proxy fixes

  • The address's reputation

    a home IP instead of a hosting range

  • The exit country

    country blocks and the CAPTCHA you meet

  • Volume per address

    rotating between sessions keeps each one quiet

Still on you

  • The client Imperva names

    curl and Headless Chrome are on its HackingTool list

  • The cookie and JavaScript steps

    a real browser or a solver payload

  • Pace and behavior

    no super-human speed

Source: Imperva documentation, read October 22, 2026; HProxy's plain requests of October 22, 2026 · hproxy.comProxy.

The same split runs through DataDome, PerimeterX and Kasada. It sits behind all web scraping with proxies: the proxy makes the address believable, and the rest is yours.

What setup gets through?

None of this is a single trick. Getting past a real Imperva deployment means lining up every signal:

  1. Exit from a residential or mobile address in the site's country, with one sticky session per flow.
  2. Send a client Imperva files as a browser. A real browser, or a client whose TLS handshake and header order match the browser it claims to be.
  3. Answer the ladder. Keep the cookie, run the JavaScript, and plan for a CAPTCHA, or send a solver payload made for your exit address.
  4. Make everything agree. The user agent, the handshake, the language, the time zone and the exit country should describe one plausible person.
  5. Pace like a person. Randomized delays, real time on each page, no even intervals and no "super-human speed".
  6. Check what you received. Read the title and size of every response, and look for /_Incapsula_Resource and an incident ID: a 200 can be a challenge.

How do you test before you scale?

Confirm your exits are alive and residential with our IP lookup and proxy checker. Then run one full session against one page and read the answer: the status, the title and the size. Check whether visid_incap and incap_ses were set, and whether an incident ID or error code came back. One identity tested end to end shows which layer failed, so you fix that one instead of buying addresses you did not need.

When is the wall not your problem to solve?

Everything above assumes you have to get through Imperva yourself. If we already run endpoints for the site's platform, our scraper APIs return the data as JSON from one call. The Imperva layer is then our problem instead of yours. Building a bypass is worth the engineering time for targets nobody has solved yet.

What this page could not check

We ran no bypass tool, stealth browser or solver against Imperva, and we tested no proxy's success rate on it, ours included. Our requests were plain clients, so they show what fails, never what passes. The October captures cover three sites on one day from one home connection; the August and September results come from our own earlier pages. Imperva's bot product documents itself only behind a login, so the reese84 and ___utmvc details rest on Hyper Solutions' account. Wappalyzer's counts are its detections on the sites it crawls. We will re-read the sources by January 22, 2027.

Sources

  • Imperva docs, read October 22, 2026: CAPTCHA and challenge behavior, Cloud WAF Error Pages and Codes and Client Classification, all updated October 21, 2026. Also DDoS Settings (August 20, 2026), Security Settings (October 26, 2025), Caching (April 19, 2026), the April 25, 2021 release note on visid_incap, and the Advanced Bot Protection overview (June 16, 2026).
  • Imperva, Advanced Bot Protection product page, read October 22, 2026: the five detection layers, "over 700 dimensions", and legitimate users spared a CAPTCHA on 99.999% of requests.
  • Our requests: a plain curl request with a Chrome 141 user agent from a home internet connection to pokemoncenter.com, coles.com.au and 7-eleven.com, October 22, 2026, 12:45 UTC; our Pokemon Center reads of September 27 and 28, 2026; our 7-Eleven request of August 24, 2026; the retail bot-defense study of August 24, 2026.
  • Wappalyzer, Imperva technology page, read October 22, 2026: live website count, top sites, industries and country split.
  • HTTP Archive, Web Almanac 2024, Page Weight, medians of the October 2024 crawl.
  • Stack Overflow questions about Incapsula and Imperva, read through the Stack Exchange API on October 22, 2026: views and dates as quoted.
  • Imperva (Wikipedia), read October 22, 2026: full ownership of Incapsula in 2014, Distil Networks in July 2019, Thales on December 4, 2023.
  • Hyper Solutions, Incapsula solver product page, read October 22, 2026: the reese84 sensor, the rotating ___utmvc script, the hCaptcha or GeeTest fallback it does not solve, the ip field the payload must match, and its browser comparison. Provenance: they sell Imperva and Incapsula bypass tooling, so they have a commercial interest in the system reading as both formidable and beatable. The technical detail is specific and nobody else publishes it, which is why those claims stay on this page, but weigh the framing with that interest in mind. Not linked here.
  • JA3 (Salesforce) and JA4 (FoxIO): the TLS ClientHello fingerprints your client has to match.

Frequently asked questions

Can residential proxies get past Imperva?

Not on their own. A residential address changes how Imperva reads the connection, but Imperva also names your client, runs a cookie and JavaScript challenge, and can escalate to a CAPTCHA. On October 22, 2026, a plain client on a home connection got 200 OK challenge pages from Pokemon Center and Coles. The address was residential; the client was curl.

What does 'Request unsuccessful. Incapsula incident ID' mean?

Imperva stopped the request and logged it under that ID, which the site owner can look up. The error code says why. Imperva's table lists 12 for a CAPTCHA challenge page, 15 for a block by the site's WAF settings and 16 for a block by Bot Access Control. In our capture, Pokemon Center's frame carried code 12 under a 200 status.

What is the 'Pardon Our Interruption' page?

A bot check page. Pokemon Center showed it to our server in September 2026, behind Imperva. It blamed disabled JavaScript or cookies, a plugin that blocks JavaScript, or browsing 'with super-human speed', and asked visitors to enable cookies and JavaScript and reload. A plain HTTP client can do neither, which is why scrapers meet it.

What are the reese84 and ___utmvc cookies?

Cookies set by Imperva's sensor and challenge scripts. Imperva's public pages do not cover them, and its bot product's documentation needs a customer login. Hyper Solutions, which sells an Imperva solver, describes reese84 as the result of a sensor that collects 'device, canvas and timing entropy', and ___utmvc as a cookie issued only after 'a rotating, obfuscated challenge script' runs. Imperva's public pages document visid_incap and the X-Iinfo header.

Why does Imperva answer 200 to a blocked request?

Because the 200 carries a challenge. Pokemon Center answered our plain client with a 1,048-byte page holding an incident ID frame, and Coles with a 212-byte page holding one script and no content. Check the size, the title and any /_Incapsula_Resource script before you count a response as data.

Do I need residential or datacenter proxies for Imperva?

Residential or mobile for anything defended, though a home address alone guarantees nothing. Imperva lets sites block sources by IP and country, and Hyper Solutions says its CAPTCHA escalation comes 'typically after repeated automated-looking requests or from a flagged IP range'. Our results cut both ways: a datacenter server got 7-Eleven's homepage in August, and a home connection still got Pokemon Center's challenge.

Is Imperva the same as Incapsula?

Yes. Imperva took full ownership of Incapsula in 2014, bought the bot-defense company Distil Networks in 2019, and became part of Thales on December 4, 2023. The cookies still start with incap, the scripts load from /_Incapsula_Resource, and the documentation now lives on a Thales site.

Which websites use Imperva?

Wappalyzer tracks 99,000 live websites using Imperva, read October 22, 2026: 59% in the United States, 9% in Australia, 7% in France and 6% in Japan. The most visited include French government services, Chilean and Colombian banks and the newspaper El Confidencial. In our August retail test it guarded Pokemon Center.

Proxies that don't die mid-job

Residential, ISP, datacenter and mobile, verified by the same engine that runs tens of millions of checks. They read as a real device and hold up under load. Pay as you go, and your balance never expires. $0.44/GB is the 2,000 GB+ rate; a single gigabyte is $0.50/GB, with no minimum order.

129M+ proxy checks run · 100+ countries · HTTP / HTTPS / SOCKS · re-checked every few minutes · no signup

HProxy.

Honest guides and comparisons on proxies, scraping and staying unblocked, from the team that runs the network.

RSS feed