Some websites redirect you to the challenge page directly, while others provide a dd dictionary in the response.
In such cases, you need to build the challenge URL manually.
Our /build endpoint simplifies this by constructing the URL for you.
POSThttps://datadome.takionapi.tech/build
Body
htmlstring
The HTML response content
datadomestring
Your session's datadome cookie value
referrerstring
The requested URL
Response
OK
Body
urlstring
The generated challenge URL
challenge_typestring
The type of challenge found
Request
constresponse=awaitfetch('https://datadome.takionapi.tech/build', { method:'POST', headers: {"Content-Type":"application/json" }, body:JSON.stringify({ "html": "<html><head><title>footlocker.pt</title><style>#cmsg{animation: A 1.5s;}@keyframes A{0%{opacity:0;}99%{opacity:0;}100%{opacity:1;}}</style></head><body style=\"margin:0\"><p id=\"cmsg\">Please enable JS and disable any ad blocker</p><script data-cfasync=\"false\">var dd={'rt':'i','cid':'AHrlqAAAAAMAK1HHpFSn9fUAs2mALA==','hsh':'A55FBF4311ED6F1BF9911EB71931D5','b':1239798,'s':17434,'host':'geo.captcha-delivery.com'}</script><script data-cfasync='false'>window.pageName=(dd.rt==='i'?'device check':(dd.t==='fe'?'captcha':'block'));</script><script data-cfasync='false' src='https://assets.adobedtm.com/b714f0d8126e/b1fc23a898e9/launch-ec6a8b19468e.min.js'></script><script data-cfasync='false'>(function(){if(window.dd){var ecid=_satellite.getVisitorId().getMarketingCloudVisitorID(),orgId=_satellite.getVisitorId().marketingCloudOrgID;if(ecid&&orgId){var paramValue='MCMID='+ecid+'|'+'MCORGID='+orgId+'|'+'TS='+Math.floor(Date.now()/1000);window.dd.cp={name:'adobe_mc',value:paramValue};}}})();</script><script data-cfasync=\"false\" src=\"https://ct.captcha-delivery.com/i.js\"></script></body></html>",
"datadome": "VYIKn29U1bbDJriauSK2IElXfDL2AZQvQG_UFam7DGpctXpBi6i_t8B~U6bP6Q945NHlzXVfmaLWqvHW_mCgQBwCG7~1_NonrM2M8aeKH8RNlSiscP946D~IucnyO25i",
"referrer":"https://www.footlocker.pt/en/product/~/314206535404.html" }),});constdata=awaitresponse.json();
Response
{"url":"text","challenge_type":"text"}
Solve the challenge
After loading the challenge page, our /solve endpoint generates the required payload to post and obtain the Datadome cookie.
After loading a challenge url, you'll just need to pass the response text to our api to get the challenge
solved, no matter the type of it.
The API will return you the needed payload for the cookie generating request.
POSThttps://datadome.takionapi.tech/solve
Header parameters
Body
htmlstring
The HTML of the challenge page
Response
OK
Body
urlstring
The URL for the cookie generation post
payloadstring
The payload for the cookie generation post (params in case of a GET required method)
methodstring
The HTTP method for the cookie generation post
Request
constresponse=awaitfetch('https://datadome.takionapi.tech/solve', { method:'POST', headers: {"Content-Type":"application/json" }, body:JSON.stringify({ "html": "<!DOCTYPE html>\n<html lang=\"en\" style=\"background-color:#ffffff\">\n <head>\n <title>You have been blocked</title>\n<!--[if !mso]>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\"></meta>\n<![endif]-->\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0\">\n<meta name=\"robots\" content=\"noindex\">\n\n<link rel=\"preconnect\" href=\"https://js.datadome.co\">\n<link rel=\"preconnect\" href=\"//static.captcha-delivery.com\">\n<link rel=\"preconnect\" href=\"https://api-js.datadome.co\">\n <link rel=\"preload\" href=\"https://dd.prod.captcha-delivery.com/image/2024-07-05/0bdc30a9146e4316cd7586b6438cbeb6.jpg\" as=\"image\" crossorigin=\"anonymous\">\n <link rel=\"preload\" href=\"https://dd.prod.captcha-delivery.com/image/2024-07-05/0bdc30a9146e4316cd7586b6438cbeb6.frag.png\" as=\"image\" crossorigin=\"anonymous\">\n\n <link rel=\"stylesheet\" href=\"//static.captcha-delivery.com/captcha/assets/tpl/6dc485c0c428c35b53577b146dc6f9179f55ef9ad41b327a2a179998839364bf/index.css\"/>\n <button id=\"human-contact-form-submit\" type=\"submit\" class=\"captcha__contact__submit\" data-dd-captcha-contact-submit>\n Send\n </button>\n <img\n data-dd-captcha-humanLoader\n id=\"human-contact-form-loader\"\n class=\"captcha__human__loader\"\n src=\"//static.captcha-delivery.com/captcha/assets/tpl/6dc485c0c428c35b53577b146dc6f9179f55ef9ad41b327a2a179998839364bf/loading_spinner.gif\"\n alt=\"Loading...\"\n style=\"display: none\"\n loading=\"lazy\"\n >\n </form>\n <div data-dd-human-contact-form-submit-success id=\"human-contact-form-submit-success\" class=\"captcha__contact_support_success\" style=\"display: none\" role=\"status\"><p class=\"no-margin\">Your message has been sent.</p></div>\n <div data-dd-human-contact-form-submit-failure id=\"human-contact-form-submit-failure\" class=\"captcha__contact_support_failure\" style=\"display: none\" role=\"alert\"><p class=\"no-margin\">An error has occurred...</p></div>\n</div>\n\n </div>\n</div>\n\n <div class=\"captcha__footer\" data-dd-captcha-footer>\n <div class=\"captcha__footer__container\" data-dd-captcha-footer-container>\n </div>\n</div>\n </div>\n\n <script>\n\n !function r(t,e,n){function a(u,i){if(!e[u]){if(!t[u]){var h=\"function\"==typeof require&&require;if(!i&&h)return h(u,!0);if(o)return o(u,!0);var c=new Error(\"Cannot find module '\"+u+\"'\");throw c.code=\"MODULE_NOT_FOUND\",c}var s=e[u]={exports:{}};t[u][0].call(s.exports,(function(r){return a(t[u][1][r]||r)}),s,s.exports,r,t,e,n)}return e[u].exports}for(var o=\"function\"==typeof require&&require,u=0;u<n.length;u++)a(n[u]);return a}({1:[function(r,t,e){window.ddExecuteCaptchaChallenge=function(r,t){function e(r,t,e){this.seed=r,this.currentNumber=r%t,this.offsetParameter=t,this.multiplier=e,this.currentNumber<=0&&(this.currentNumber+=t)}e.prototype.getNext=function(){return this.currentNumber=this.multiplier*this.currentNumber%this.offsetParameter,this.currentNumber};for(var n=[function(r,t){var e=26157,n=0;if(s=\"VEc5dmEybHVaeUJtYjNJZ1lTQnFiMkkvSUVOdmJuUmhZM1FnZFhNZ1lYUWdZWEJ3YkhsQVpHRjBZV1J2YldVdVkyOGdkMmwwYUNCMGFHVWdabTlzYkc5M2FXNW5JR052WkdVNklERTJOMlJ6YUdSb01ITnVhSE0\",navigator.userAgent){for(var a=0;a<s.length;a+=1%Math.ceil(1+3.1425172/navigator.userAgent.length))n+=s.charCodeAt(a).toString(2)|e^t;return n}return s^t},function(r,t){for(var e=(navigator.userAgent.length<<Math.max(r,3)).toString(2),n=-42,a=0;a<e.length;a++)n+=e.charCodeAt(a)^t<<a%3;return n},function(r,t){for(var e=0,n=(navigator.language?navigator.language.substr(0,2):void 0!==navigator.languages?navigator.languages[0].substr(0,2):\"default\").toLocaleLowerCase()+t,a=0;a<n.length;a++)e=((e=((e+=n.charCodeAt(a)<<Math.min((a+t)%(1+r),2))<<3)-e+n.charCodeAt(a))&e)>>a;return e}],a=new e(function(r){for(var t=126^r.charCodeAt(0),e=1;e<r.length;e++)t+=(r.charCodeAt(e)*e^r.charCodeAt(e-1))>>e%2;return t}(r),1723,7532),o=a.seed,u=0;u<t;u++){o^=(0,n[a.getNext()%n.length])(u,a.seed)}window.ddCaptchaChallenge=o}},{}]},{},[1]);\nwindow.ddExecuteCaptchaChallenge( \"8~~e2uCZ6VEIA80CKauUcJd4858APR2_aPI0m7lVU5AeveMh7h98fFKRvUTswvUGdnWVY7pR7IFPW_s2eYtxdH7EaQKIorTeeEUFuFsL6La_wT1DijkeNpHU487mGrae\" , 10);\n var startTime = Date.now();\n\nvar ddm = {\n cid: '8~~e2uCZ6VEIA80CKauUcJd4858APR2_aPI0m7lVU5AeveMh7h98fFKRvUTswvUGdnWVY7pR7IFPW_s2eYtxdH7EaQKIorTeeEUFuFsL6La_wT1DijkeNpHU487mGrae' ,\n hash: 'EC3B9FB6F2A31D3AF16C270E6531D2' ,\n ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36' ,\n s: '43337' \n};\n\nvar htmlDecode = function(input) {\n if (!input) {\n return '';\n }\n var res = new DOMParser().parseFromString(input, 'text/html');\n return res ? res.documentElement.textContent : input;\n};\nddm.referer = htmlDecode( 'https://www.footlocker.pt/en/product/~/314206535404.html' );\n\nwindow.captchaCallback = function() {\n var cid = ddm.cid;\n var hash = ddm.hash;\n\n if (window.ga && ga.create) {\n ga('send', 'event', 'Challenge', 'Access to website', 'JSKey: ' + hash + ' - ClientId: ' + cid);\n }\n\n\n var re = new RegExp(\"datadome=([^;]+)\");\n var value = re.exec(document.cookie);\n var ccid = (value != null) ? unescape(value[1]) : null;\n\n var parentFrameUrl = (window.location != window.parent.location) ? document.referrer : document.location.href;\n\n var url = \"/captcha/check?\";\n var getRequest = 'cid=' + encodeURIComponent(cid);\n getRequest += '&icid=' + encodeURIComponent( 'AHrlqAAAAAMA87i-keBJuloAs2mALA==' );\n getRequest += '&ccid=' + encodeURIComponent( 'VYIKn29U1bbDJriauSK2IElXfDL2AZQvQG_UFam7DGpctXpBi6i_t8B~U6bP6Q945NHlzXVfmaLWqvHW_mCgQBwCG7~1_NonrM2M8aeKH8RNlSiscP946D~IucnyO25i' );\n getRequest += '&userEnv=' + encodeURIComponent( '1c189c99776f2c393d87a0edd5c892d28c7caafcaf1afd2f739a0abe682515a8' );\n getRequest += '&dm=' + encodeURIComponent( 'cd' );\n\n\n getRequest += '&ddCaptchaChallenge=' + encodeURIComponent( '0bdc30a9146e4316cd7586b6438cbeb6' );\n if (window.captchaResponse) {\n getRequest += '&ddCaptchaResponse=' + encodeURIComponent(window.captchaResponse);\n } else if (window.captchaEncodedPayload) {\n getRequest += '&ddCaptchaEncodedPayload=' + encodeURIComponent(window.captchaEncodedPayload);\n }\n getRequest += '&ddCaptchaEnv=' + encodeURIComponent( '166cbfd8e7da33822453c0728641a49a78c5bc4ba1b3f4e63b14e1dcdffa34936dde8f91d0386403772f288fa5ef79ccdfff87539919b85d6486389c0ddad0cc2926432beca65184dc1797fdf16a0fda' );\n getRequest += '&ddCaptchaAudioChallenge=' + encodeURIComponent( '09911e5d7fc2d898ed8ad8d762ef6a8d' );\n\n getRequest += '&hash=' + encodeURIComponent(hash);\n getRequest += '&ua=' + encodeURIComponent(ddm.ua);\n getRequest += '&referer=' + encodeURIComponent(ddm.referer);\n getRequest += '&parent_url=' + encodeURIComponent(parentFrameUrl);\n getRequest += '&x-forwarded-for=' + encodeURIComponent( '' );\n if (window.ddCaptchaChallenge) {\n getRequest += '&captchaChallenge=' + encodeURIComponent(window.ddCaptchaChallenge);\n }\n getRequest += '&s=' + encodeURIComponent(ddm.s);\n getRequest += '&ir=' + encodeURIComponent( '' );\n\n var request = new XMLHttpRequest();\n request.open(\n 'GET',\n url + getRequest,\n true\n );\n\n request.setRequestHeader(\"Content-Type\", \"application/x-www-form-urlencoded; charset=UTF-8\");\n var captcha = sliderCaptcha({\n id: 'ddv1-captcha-container',\n audioId: 'captcha__audio',\n repeatIcon: 'fa fa-redo',\n captchaChallengeSeed: '0bdc30a9146e4316cd7586b6438cbeb6',\n captchaChallengePath: 'https://dd.prod.captcha-delivery.com/image/2024-07-05/0bdc30a9146e4316cd7586b6438cbeb6.jpg',\n captchaAudioChallenge: '09911e5d7fc2d898ed8ad8d762ef6a8d',\n captchaAudioChallengePath: 'https://dd.prod.captcha-delivery.com/audio/2024-07-05/en/09911e5d7fc2d898ed8ad8d762ef6a8d.wav',\n width: 280,\n height: 155,\n sliderL: 42,\n sliderR: 9,\n offset: 5,\n maxLoadCount: 3,\n rt: 15,\n imagePath: \"/images-encoded\",\n labels: {\n title: 'Complete the CAPTCHA.',\n puzzleLoading: 'Loading...',\n puzzleIntro: 'Slide right to complete the puzzle.',\n puzzleFailure: 'The position of the slider is not correct.',\n puzzleSuccess: 'Puzzle solved in ## seconds.',\n puzzleRetry: 'Retry',\n puzzleRetryHidden: 'Retry the verification',\n audioIntro: 'Please type the numbers you hear.',\n audioPlay: 'Listen to the numbers to write',\n audioVerify: 'Verify',\n audioFailure: 'Incorrect response.',\n audioSuccess: 'Audio challenge solved.',\n switchToPuzzle: 'Switch to the visual verification',\n switchToAudio: 'Switch to the audio verification',\n reload: 'Reload the verification',\n offline: 'No Internet access'\n }\n});\n\n\n document.addEventListener(\"DOMContentLoaded\", function() {\n var responseType = 'captcha';\n if (window.parent && window.parent.postMessage){\n window.parent.postMessage(JSON.stringify({eventType:'load', 'responseType': responseType, 'responseUrl': window.location.href}), '*');\n }\n });\n\n</script>\n\n\n </body>\n</html>\n"
}),});constdata=awaitresponse.json();