Tasks
Updated 8/6/2026
Imperva/Incapsula Solver API
Solve Imperva and Incapsula anti-bot challenges with the Solverify Imperva Solver API. Create a browser-based task in Reese84 or UT.mvc mode, then retrieve the resulting Incapsula cookies from solution.cookies.
Two challenge modes are supported:
- Reese84 returns the
reese84cookie and relatedvisid_incap_*,incap_ses_*, andnlbi_*session cookies when available. - UT.mvc returns
___utmvcand related Incapsula session cookies.
The Imperva integration follows the standard Solverify task workflow:
- Identify the challenge mode and its script URL.
- Create an
impervatask with the target URL. - Store the returned
taskId. - Poll
POST /getTaskResultuntil processing completes. - Read cookies and the solver user-agent from
solution. - Replay the cookies with matching session context.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
clientKey | string | Yes | Your private Solverify API key. |
task.type | string | Yes | Must be imperva. |
task.websiteURL | string | Yes | Full URL of the Imperva-protected target page. Maximum 2,048 characters. |
task.reeseScriptUrl | string | Reese84 | Full Reese84 challenge script URL. Maximum 4,096 characters. |
task.scriptURL | string | UT.mvc | Full UT.mvc /_Incapsula_Resource?SWJIYLWA=... script URL. Maximum 4,096 characters. |
task.isUtmvc | boolean | No | Set to true for UT.mvc. Defaults to false for Reese84. |
task.cookies | array | No | Preset { name, value } cookies used to seed UT.mvc browser context. |
task.language | string | No | Browser Accept-Language value. Maximum 64 characters. |
task.useragent | string | No | Chrome-family user-agent. Maximum 512 characters. |
task.proxyType | string | No | Proxy type. Only http is accepted. Defaults to http when address and port are supplied. |
task.proxyAddress | string | No | Proxy IP address or hostname. Maximum 256 characters. |
task.proxyPort | string | No | Proxy port as a numeric string containing 1 to 5 digits. |
task.proxyLogin | string | No | Username for an authenticated proxy. |
task.proxyPassword | string | No | Password for an authenticated proxy. |
Each preset cookie requires a name of at most 256 characters and a value of at most 4,096 characters.
Proxy use is optional for both modes. Use an appropriate regional proxy when the target is geolocked or when follow-up requests must continue from the same network context. If custom proxy details are supplied, provide proxyAddress and proxyPort together.
If useragent is supplied, use desktop Chrome/Chromium or Android Chrome. Android Chrome is accepted when the worker can generate a compatible device fingerprint. Firefox, Edge, Opera, iOS, and non-Chrome Android user-agents are rejected.
Reese84 Mode
Use Reese84 mode when the target serves the obfuscated Reese84 anti-bot script. isUtmvc can be omitted or set to false.
The reeseScriptUrl is typically a <script src="..."> URL with an obfuscated path similar to:
/Vnsane-to-done-I-set-I-praten-Gods-nor-thy-Mind-?d=example.com
Create Reese84 Task
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "imperva",
"websiteURL": "https://www.safeway.com/",
"reeseScriptUrl": "https://www.safeway.com/Vnsane-to-done-I-set-I-praten-Gods-nor-thy-Mind-?d=www.safeway.com",
"language": "en-US,en;q=0.9",
"useragent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"
}
}
Reese84 Result
{
"errorId": 0,
"status": "completed",
"solution": {
"value": "",
"cookies": {
"reese84": "3:oJxU9SzGz/LwDLVYhQh...",
"visid_incap_...": "2XVJDM1...",
"incap_ses_...": "GFxUFkj15j...",
"nlbi_...": "jw2XbBi2dUf..."
},
"useragent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"
},
"errorCode": null,
"errorDescription": null
}
UT.mvc Mode
Set isUtmvc to true and provide scriptURL when the target serves a UT.mvc challenge. The script URL usually contains /_Incapsula_Resource?SWJIYLWA=....
If an earlier target request supplied an incap_ses_* cookie, include it in cookies so the solver starts with the same session state.
Create UT.mvc Task
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "imperva",
"websiteURL": "https://www.payback.de/login",
"scriptURL": "https://www.payback.de/_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3&ns=1",
"isUtmvc": true,
"cookies": [
{
"name": "incap_ses_...",
"value": "5cm8QUYL/3ZxrFEUDWLYE1..."
}
],
"language": "en-US,en;q=0.9",
"useragent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"
}
}
UT.mvc Result
{
"errorId": 0,
"status": "completed",
"solution": {
"value": "",
"cookies": {
"___utmvc": "btYHVoGJEaeb+...",
"visid_incap_...": "7+YP0Iq7Q9iaFgFt...",
"incap_ses_...": "NP/lJUzQgTl5QPXx8C..."
},
"useragent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/149.0.0.0 Safari/537.36"
},
"errorCode": null,
"errorDescription": null
}
Imperva Solver Code Examples
These examples create a proxyless Reese84 task and print the returned task ID. Add optional proxy fields when your target requires a specific region or network context.
curl --request POST \
--url https://solver.solverify.net/createTask \
--header "Content-Type: application/json" \
--data '{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "imperva",
"websiteURL": "https://www.safeway.com/",
"reeseScriptUrl": "https://www.safeway.com/Vnsane-to-done-I-set-I-praten-Gods-nor-thy-Mind-?d=www.safeway.com"
}
}'
Create Task Response
{
"errorId": 0,
"taskId": "UUID"
}
Solution Fields
| Field | Description |
|---|---|
cookies | Imperva cookies captured from the solved browser session. |
useragent | User-agent used by the solver. Use it when replaying the cookies. |
Imperva Timeout
Imperva tasks can run for up to approximately 120 seconds before timing out internally. Configure an overall polling deadline and stop when the API returns an error.
Imperva API Errors
| Error code | Description |
|---|---|
ERROR_INVALID_REQUEST | The top-level request is missing or contains invalid JSON. |
ERROR_INVALID_TASK | The target URL, mode-specific script URL, cookie seed, or proxy configuration is invalid. |
ERROR_INSUFFICIENT_BALANCE | The account balance is too low to create the task. |
ERROR_NO_CAPACITY | Imperva solver capacity is temporarily unavailable. |
ERROR_TASK_FAILED | The selected Imperva challenge could not be completed. |
ERROR_TIMEOUT | Solving exceeded the allowed processing time. |
For recovery guidance and every supported response, see Solverify API Error Codes.
Next Steps
After creating an Imperva task, poll the Get Task Result API every 2 to 3 seconds with the returned taskId. Stop polling after completion or failure.
Frequently Asked Questions
Which Imperva mode should I use?
Use Reese84 when the target loads an obfuscated Reese84 script. Use UT.mvc when it loads a /_Incapsula_Resource?SWJIYLWA=... script and set isUtmvc to true.
Does the Imperva solver require a proxy?
No. Both modes support proxyless operation. Use a proxy when the target is geolocked or when existing cookies and follow-up requests must remain on the same IP.
What cookies does Reese84 return?
The solver returns reese84 and related Incapsula cookies such as visid_incap_*, incap_ses_*, and nlbi_* when they are present in the solved session.
What cookies does UT.mvc return?
The solver returns ___utmvc and related visid_incap_* or incap_ses_* cookies when available.
Should I pass preset cookies in UT.mvc mode?
If you already have an incap_ses_* cookie from the target session, include it in task.cookies so the solver starts with matching session state.
How should I replay the returned cookies?
Send the cookies with the user-agent returned in solution.useragent. When a proxy was used for the solve, use the same proxy for the follow-up request.