Documentation Menu

Tasks

Updated 8/6/2026

Imperva/Incapsula Solver API

POST
https://solver.solverify.net/createTask

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 reese84 cookie and related visid_incap_*, incap_ses_*, and nlbi_* session cookies when available.
  • UT.mvc returns ___utmvc and related Incapsula session cookies.

The Imperva integration follows the standard Solverify task workflow:

  1. Identify the challenge mode and its script URL.
  2. Create an imperva task with the target URL.
  3. Store the returned taskId.
  4. Poll POST /getTaskResult until processing completes.
  5. Read cookies and the solver user-agent from solution.
  6. Replay the cookies with matching session context.

Request Parameters

FieldTypeRequiredDescription
clientKeystringYesYour private Solverify API key.
task.typestringYesMust be imperva.
task.websiteURLstringYesFull URL of the Imperva-protected target page. Maximum 2,048 characters.
task.reeseScriptUrlstringReese84Full Reese84 challenge script URL. Maximum 4,096 characters.
task.scriptURLstringUT.mvcFull UT.mvc /_Incapsula_Resource?SWJIYLWA=... script URL. Maximum 4,096 characters.
task.isUtmvcbooleanNoSet to true for UT.mvc. Defaults to false for Reese84.
task.cookiesarrayNoPreset { name, value } cookies used to seed UT.mvc browser context.
task.languagestringNoBrowser Accept-Language value. Maximum 64 characters.
task.useragentstringNoChrome-family user-agent. Maximum 512 characters.
task.proxyTypestringNoProxy type. Only http is accepted. Defaults to http when address and port are supplied.
task.proxyAddressstringNoProxy IP address or hostname. Maximum 256 characters.
task.proxyPortstringNoProxy port as a numeric string containing 1 to 5 digits.
task.proxyLoginstringNoUsername for an authenticated proxy.
task.proxyPasswordstringNoPassword 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

FieldDescription
cookiesImperva cookies captured from the solved browser session.
useragentUser-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 codeDescription
ERROR_INVALID_REQUESTThe top-level request is missing or contains invalid JSON.
ERROR_INVALID_TASKThe target URL, mode-specific script URL, cookie seed, or proxy configuration is invalid.
ERROR_INSUFFICIENT_BALANCEThe account balance is too low to create the task.
ERROR_NO_CAPACITYImperva solver capacity is temporarily unavailable.
ERROR_TASK_FAILEDThe selected Imperva challenge could not be completed.
ERROR_TIMEOUTSolving 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.