Looking for an overview? See the DataDome product page

Resolving DataDome 403 Errors

DataDome uses behavioral analysis and device fingerprinting to detect automated traffic. When requests fail verification, servers return 403 errors or serve deceptive block pages. MeshPrivacy generates valid datadome cookies by completing the behavioral verification process.

Error Codes

CodeMeaningResolution
403Access denied, challenge requiredGenerate valid datadome cookie via API
200Deceptive block page (challenge HTML)Detect and solve embedded challenge

Note: DataDome may return 200 status with challenge HTML instead of 403. Check response content for dd= parameters.

Real-time API status: trust.meshprivacy.com

Cookies & Detection

Primary Cookie
datadome - Main verification token

Cookie TTL: approximately 10 minutes

Detection Indicators
dd= parameter in HTML
Challenge JavaScript loading
WebSocket connections for validation
GPU rendering pattern analysis

Service Variants

DataDome ships three distinct service IDs in the MeshPrivacy API. Pick the one that matches the challenge type the target site serves.

datadome-invisiblePrimary

Background behavioral verification without user interaction. Analyzes browser fingerprint and behavior patterns silently.

FieldTypeRequiredDescription
urlstringYesProtected page URL
script_urlstringNoDataDome script URL (e.g. tags.js)
initial_cidstringNoInitial datadome cookie value for session continuity
proxy_configstringNoProxy in http://user:pass@ip:port format
user_agentstringNoCustom user agent
datadome-invisible.js
// Submit DataDome Invisible task
const response = await fetch('https://api.meshprivacy.com/v1/tasks/submit', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'X-API-Key': API_KEY },
  body: JSON.stringify({
    service: 'datadome-invisible',
    url: 'https://target-site.com/',                        // required
    script_url: 'https://js.datadome.co/tags.js',           // optional
    initial_cid: '',                                        // optional - existing datadome cookie
    proxy_config: 'http://user:pass@ip:port',               // optional
    user_agent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)...' // optional
  })
});
const { task_id } = await response.json();
const result = await fetch(`https://api.meshprivacy.com/v1/tasks/result/${task_id}`, {
  headers: { 'X-API-Key': API_KEY }
});
const { cookies } = await result.json();
// Use cookies.datadome in your requests

datadome-device-check

Device fingerprint validation challenge. Collects and verifies hardware and software characteristics without visual interaction.

FieldTypeRequiredDescription
urlstringYesProtected page URL triggering device check
script_urlstringNoDataDome script URL
device_linkstringNoDevice link token
http_methodstringNoHTTP method (GET/POST)
initial_cidstringNoInitial datadome cookie value
proxy_configstringNo
user_agentstringNo
datadome-device-check.js
// Submit DataDome Device Check task
const response = await fetch('https://api.meshprivacy.com/v1/tasks/submit', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'X-API-Key': API_KEY },
  body: JSON.stringify({
    service: 'datadome-device-check',
    url: 'https://target-site.com/',                        // required
    script_url: 'https://js.datadome.co/tags.js',           // optional
    device_link: '',                                        // optional - device link token
    http_method: 'GET',                                     // optional - GET or POST
    initial_cid: '',                                        // optional
    proxy_config: 'http://user:pass@ip:port',               // optional
    user_agent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)...' // optional
  })
});
const { task_id } = await response.json();

datadome-slider

Interactive slider captcha challenge. Requires drag interaction to verify human behavior patterns.

FieldTypeRequiredDescription
urlstringYesOriginal protected page URL
script_urlstringNoDataDome script URL
device_linkstringNoDevice link token
http_methodstringNoHTTP method (GET/POST)
captcha_urlstringNoCaptcha redirect URL from geo.captcha-delivery.com
initial_cidstringNoInitial datadome cookie value
proxy_configstringNo
user_agentstringNo
datadome-slider.js
// Submit DataDome Slider task
const response = await fetch('https://api.meshprivacy.com/v1/tasks/submit', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json', 'X-API-Key': API_KEY },
  body: JSON.stringify({
    service: 'datadome-slider',
    url: 'https://target-site.com/',                        // required
    script_url: 'https://js.datadome.co/tags.js',           // optional
    device_link: '',                                        // optional
    http_method: 'GET',                                     // optional
    captcha_url: 'https://geo.captcha-delivery.com/...',    // optional - redirect URL
    initial_cid: '',                                        // optional
    proxy_config: 'http://user:pass@ip:port',               // optional
    user_agent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)...' // optional
  })
});
const { task_id } = await response.json();

FAQ

Check the response HTML for DataDome challenge indicators: dd= parameters, DataDome JavaScript includes, or challenge-specific HTML structure. A valid response will have your expected content.

Related Services