DataDome CAPTCHA Solving Service
Supports invisible verification, slider CAPTCHA, device verification and all DataDome verification modes with intelligent recognition and automatic handling
Register NoCaptcha.io Now β
Professional CAPTCHA Solutions | High Success Rate | Fast Response | 24/7 Support
π₯ Product Advantages
Why Choose Our DataDome Solution
- π Full Mode Support: Supports invisible verification, slider CAPTCHA, device verification and all DataDome verification modes
- β‘ Smart Recognition: Automatically identifies verification types without manual judgment
- π Stable & Reliable: Timely updates to provide stable support for your business
- π― High Success Rate: Professional algorithm optimization ensures high pass rates
π DataDome Verification Modes
π How to Identify DataDome Verification
When you see datadome
in cookies
, it indicates the presence of DataDome verification. There are three scenarios:
1οΈβ£ Invisible Verification Mode (Status Code 200)
Characteristics: The target page returns status code 200, and F12 shows an interface ending with /js/
with the following response:
{
"status": 200,
"cookie": "datadome=66wPBABk21P4x28BLuVse__8_z141EPJEjbgi1HBvNGBcHmX91OT1Z9Z63G4x_suPlRPQ_tgwljYmI5mWxpmkMJ3pKrcnAVKHZs2ymS_2O4nM5wEblvP~~nK3orSol0W; Max-Age=31536000; Domain=.soundcloud.com; Path=/; Secure; SameSite=Lax"
}
Handling: Must pass the js_url
parameter, and the interface will return a did
parameter for subsequent verification

2οΈβ£ Device Verification Mode (Status Code 403)
Characteristics: Direct redirect to device verification page or redirect after slider verification
Handling: Set interstitial: true
parameter

3οΈβ£ Slider CAPTCHA Mode (Status Code 403)
Characteristics: Direct redirect to slider verification page

π Verification Flow Example
// Request target page
const response = await fetch(href);
if (response.status === 200) {
// Invisible verification mode
// Need to pass js_url and js_key parameters
} else if (response.status === 403) {
// CAPTCHA mode
// Set interstitial: true to handle all verification types
}
π API Information
Request URL (POST)
Version Type | API Endpoint |
---|---|
Universal | http://api.nocaptcha.io/api/wanda/datadome/universal |
Request Headers
Parameter | Description | Required |
---|---|---|
User-Token |
User token, get from dashboard | β |
Content-Type |
application/json |
β |
Developer-Id |
Developer ID for developer users, string from invite link (e.g., xxx/register?c=abcdef, then abcdef is Developer ID) | β |
POST Parameters (JSON Format)
Parameter | Type | Description | Required |
---|---|---|---|
href |
String | π¨Target page URL that triggers DataDome verification | β |
proxy |
String | Proxy address, recommend overseas proxy, format: ip:port or usr:pwd@ip:port | β |
js_url |
String | Required for JS mode, interface ending with /js/ that returns datadome cookie | β |
js_key |
String | Required for JS mode, search for ddjskey value in F12 | β |
captcha_url |
String | CAPTCHA URL triggered by POST interface | β |
interstitial |
Boolean | Whether to trigger device verification mode, default false | β |
user_agent |
String | Custom User-Agent, must be consistent | β |
did |
String | Fingerprint ID returned by JS mode, required for subsequent verification | β |
cookies |
String | Current page cookies | β |
timeout |
Integer | Verification timeout in seconds | β |
π€ Response Format
Parameter | Type | Description |
---|---|---|
status |
Integer |
Call status: 1=success, 0=failure |
msg |
String |
Call result description |
id |
String |
Unique request ID (for record query) |
data.datadome |
String |
Datadome cookie returned upon successful verification |
cost |
String |
Verification time (milliseconds) |
Response Example
{
"status": 1,
"msg": "Verification successful",
"id": "639e056b-49bd-4895-94ab-68d59e00873e",
"cost": "4635.12ms",
"data": {
"datadome": "HYvnTVSxppxMMrSk_Z_MOHoSKkQRd2ppQr~pOeo2nDlL7Lg7QBwb2ew5OYQxSSSH1CR9NzO78A25KHM7kLV6OydtvwvJZ773Jil1mPC7ZoFSQQDrDYVeHZtjq_BWUai6"
}
}
π» Code Examples
CURL Command
curl -L 'http://api.nocaptcha.io/api/wanda/datadome/universal' \
-H 'User-Token: xxx' \
-H 'Developer-Id: hqLmMS' \
-H 'Content-Type: application/json' \
--data-raw '{"href": "https://soundcloud.com/", "js_url": "https://dwt.soundcloud.com/js/", "proxy": "user:pass@ip:port"}'
Python Examples
Install Dependencies
pip install -U pynocaptcha -i https://pypi.python.org/simple
Basic Usage
from pynocaptcha import DatadomeCracker
# DataDome CAPTCHA solving
cracker = DatadomeCracker(
user_token="your_user_token_here",
developer_id="hqLmMS", # Developer ID
href="https://soundcloud.com/",
js_url="https://dwt.soundcloud.com/js/",
proxy="user:pass@ip:port",
debug=True
)
result = cracker.crack()
print(f"Result: {result}")
Complete Flow Example
import requests
from pynocaptcha import DatadomeCracker
def handle_datadome_verification(href, user_agent, proxy):
"""Complete DataDome verification handling flow"""
# 1. First request target page to determine verification type
response = requests.get(href, headers={"User-Agent": user_agent})
if response.status_code == 200:
# Invisible verification mode
cracker = DatadomeCracker(
user_token="your_user_token_here",
developer_id="hqLmMS",
href=href,
user_agent=user_agent,
js_url="https://example.com/js/", # Get from F12
js_key="E6EAF460AA2A8322D66B42C85B62F9", # Search ddjskey
proxy=proxy
)
elif response.status_code == 403:
# CAPTCHA mode
cracker = DatadomeCracker(
user_token="your_user_token_here",
developer_id="hqLmMS",
href=href,
user_agent=user_agent,
interstitial=True, # Handle all verification types
proxy=proxy
)
return cracker.crack()
# Usage example
result = handle_datadome_verification(
href="https://www.vinted.com/",
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
proxy="user:pass@ip:port"
)
print(f"Verification result: {result}")
π― Related Services
Contact us for professional technical support