Tasks
Updated 10/23/2026
DataDome Solver API
Solve DataDome interstitial and CAPTCHA challenges with the Solverify DataDome Solver API. Create a browser-based task from the triggered DataDome captchaUrl, then retrieve the validated datadome cookie from solution.cookies.
Use this task type after a DataDome challenge URL has been generated by your authorized workflow. The challenge URL, target website, and proxy must represent the same session context.
The DataDome integration follows the standard Solverify task workflow:
- Capture the target
websiteURLand triggered DataDomecaptchaUrl. - Create a
datadometask with the proxy used for the target session. - Store the returned
taskId. - Poll
POST /getTaskResultuntil processing completes. - Read the
datadomecookie and user-agent fromsolution. - Replay the cookie with the same proxy and
solution.useragent.
Choosing the DataDome User-Agent
The optional useragent request field selects the browser the solve runs in: its family (Chrome/Chromium or Firefox), its platform (Windows, macOS, Linux, Android, iOS), and its exact version — for example Chrome/150.0.0.0 runs Chrome 150 and Firefox/153.0 runs Firefox 153. See Supported User Agents for every supported version and platform.
When useragent is omitted, the solver runs the newest installed Chrome version with its default macOS desktop profile:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36
The completed result returns the solved browser profile's actual user-agent in solution.useragent. DataDome cookies are bound to the solved identity and exit IP, so replay the cookie with that exact user-agent and the same proxy.
Request Parameters
| Field | Type | Required | Description |
|---|---|---|---|
clientKey | string | Yes | Your private Solverify API key. |
task.type | string | Yes | Must be datadome. |
task.websiteURL | string | Yes | Target website URL where the DataDome challenge was triggered. Maximum 2,048 characters. |
task.captchaUrl | string | Yes | Full DataDome challenge URL. Maximum 4,096 characters. |
task.useragent | string | No | Optional browser user-agent. Selects the browser family (Chrome/Chromium or Firefox), platform (Windows, macOS, Linux, Android, iOS), and exact version — for example Chrome/150.0.0.0 runs Chrome 150 and Firefox/153.0 runs Firefox 153. Omit for the newest installed Chrome version. See Supported User Agents. Maximum 512 characters. |
task.proxyType | string | Yes | Proxy type. Only http is accepted. |
task.proxyAddress | string | Yes | Proxy IP address or hostname. Maximum 256 characters. |
task.proxyPort | string | Yes | 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. |
DataDome challenge URLs commonly use the geo.captcha-delivery.com domain and may contain session-specific query parameters. Submit the complete URL without removing or rewriting those parameters.
Create DataDome Task Request
{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "datadome",
"websiteURL": "https://accounts.shutterstock.com/login",
"captchaUrl": "https://geo.captcha-delivery.com/interstitial/?initialCid=AHrlqAAAAAMA...",
"proxyType": "http",
"proxyAddress": "1.1.1.1",
"proxyPort": "8080",
"proxyLogin": "username",
"proxyPassword": "password"
}
}
Omit proxyLogin and proxyPassword when the proxy does not require authentication. Add useragent only when you need a specific browser version or platform; omit it to run the newest installed Chrome version.
DataDome Solver Code Examples
These examples create a DataDome task and print the returned task ID.
curl --request POST \
--url https://solver.solverify.net/createTask \
--header "Content-Type: application/json" \
--data '{
"clientKey": "YOUR_API_KEY",
"task": {
"type": "datadome",
"websiteURL": "https://accounts.shutterstock.com/login",
"captchaUrl": "https://geo.captcha-delivery.com/interstitial/?initialCid=AHrlqAAAAAMA...",
"proxyType": "http",
"proxyAddress": "1.1.1.1",
"proxyPort": "8080"
}
}'
Create Task Response
{
"errorId": 0,
"taskId": "UUID"
}
Completed DataDome Result
{
"errorId": 0,
"status": "completed",
"solution": {
"value": "",
"cookies": {
"datadome": "3qVi5y0ySWd4RyHLMtm"
},
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36"
},
"errorCode": null,
"errorDescription": null
}
Solution Fields
| Field | Description |
|---|---|
cookies.datadome | Validated DataDome cookie returned by the solved browser session. |
useragent | Actual user-agent of the solved browser profile. Replay the cookie with this exact value and the same proxy. |
DataDome Timeout
DataDome tasks can run for up to approximately 210 seconds before timing out internally. Configure an overall polling deadline and stop when the API returns an error.
DataDome API Errors
| Error code | Description |
|---|---|
ERROR_INVALID_REQUEST | The top-level request is missing or contains invalid JSON. |
ERROR_INVALID_TASK | The target URL, DataDome challenge URL, or proxy settings are missing or invalid. |
ERROR_INSUFFICIENT_BALANCE | The account balance is too low to create the task. |
ERROR_NO_CAPACITY | DataDome solver capacity is temporarily unavailable. |
ERROR_TASK_FAILED | The DataDome challenge could not be completed or the proxy was blocked. |
ERROR_TIMEOUT | Solving exceeded the allowed processing time. |
For recovery guidance and every supported response, see Solverify API Error Codes.
Next Steps
After creating a DataDome 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
What does the DataDome Solver API return?
The completed task returns a validated datadome cookie in solution.cookies and the solver user-agent in solution.useragent.
Do I need to send a user-agent?
No, it is optional. Without useragent, the solver runs the newest installed Chrome version with its default macOS desktop profile. Send one when you need a specific browser version or platform — see Supported User Agents. The completed result returns the actual profile user-agent, which you must reuse when replaying the cookie.
Why must I reuse the same proxy and user-agent?
The datadome cookie is associated with the solved session. Replay it with the same proxy and solution.useragent to preserve that context.
Why is captchaUrl required?
The URL contains the DataDome challenge and session parameters generated for the target request. Submit the complete URL without modifying its query string.
What happens when the proxy is blocked?
The solver cannot produce a usable cookie when DataDome blocks the proxy IP. Use an appropriate proxy with a clean reputation and create a new task.
Can I use a custom user-agent for DataDome?
Yes, optionally. task.useragent selects the exact browser version, family, and platform the solve runs in — for example Chrome/150.0.0.0 runs Chrome 150 and Firefox/153.0 runs Firefox 153. The solver mints a matching browser profile and returns its actual user-agent in solution.useragent; a version that is not available fails the task instead of silently substituting another version. See Supported User Agents.