> For the complete documentation index, see [llms.txt](https://docs.hypersolutions.co/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hypersolutions.co/api-reference/datadome.md).

# DataDome API Reference

This page shows the API Reference for our DataDome API.

{% hint style="info" %}
Tip: Use one of the [SDKs](/start-here/readme-1.md) instead of directly calling the API.
{% endhint %}

{% hint style="success" %}
Compress your request body, some payloads are large. We support "gzip", "br", "deflate", and "zstd"; set the `content-encoding` header. More info: [Compression](/api-reference/compression.md).
{% endhint %}

The [DataDome API](https://hypersolutions.co/products/datadome) covers the interstitial, slider and tags challenges documented below.

## Interstitial

Generates the payload for the DataDome **interstitial** challenge (the device-check page solved without a captcha). See the [interstitial guide](/datadome/interstitial.md).

## Solve interstitial

> Solves the interstitial challenge. After getting this payload, make a POST request to \`<https://geo.captcha-delivery.com/interstitial/\\`> with it in the payload and you will receive the datadome cookie in the response. Set this cookie in your cookiejar, you have now successfully solved DataDome interstitial.

```json
{"openapi":"3.0.0","info":{"title":"DataDome Captcha Solving API","version":"1.0.0"},"servers":[{"url":"https://datadome.hypersolutions.co","description":"Server for captcha solving endpoint"}],"paths":{"/interstitial":{"post":{"summary":"Solve interstitial","description":"Solves the interstitial challenge. After getting this payload, make a POST request to `https://geo.captcha-delivery.com/interstitial/` with it in the payload and you will receive the datadome cookie in the response. Set this cookie in your cookiejar, you have now successfully solved DataDome interstitial.","operationId":"solveInterstitial","parameters":[{"in":"header","name":"Content-Type","required":true,"schema":{"type":"string","enum":["application/json"]},"description":"The Content-Type of the request body"},{"in":"header","name":"x-api-key","required":true,"schema":{"type":"string"},"description":"Your API key for authentication"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["userAgent","deviceLink","html","ip","acceptLanguage"],"properties":{"userAgent":{"type":"string","description":"Your chrome UserAgent"},"deviceLink":{"type":"string","description":"The deviceLink you constructed"},"html":{"type":"string","description":"The response body of the GET request to the deviceLink"},"script":{"type":"string","description":"Optional. The DataDome challenge bundle, only needed when the challenge page loads it with a script tag such as <script defer src=\"https://ct.captcha-delivery.com/interstitial.1.33.0.202609141.js\"> instead of inlining it. DataDome switches between the two per request, so check every challenge. Fetch that URL yourself with the same client, proxy and headers you used for the deviceLink, and pass the response body here. Leave it out when the page inlines the bundle."},"ip":{"type":"string","description":"The IP that is used to post the sensor data to the target site. You can use /ip to get the IP from a connection. If you are not using proxies, this will be the IPv4 or IPv6 address of your pc."},"acceptLanguage":{"type":"string","description":"Your accept-language header"}}}}}},"responses":{"200":{"description":"OK Interstitial solved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"payload":{"type":"string","description":"The payload for POST request to /interstitial/"},"headers":{"type":"object","properties":{"sec-ch-device-memory":{"type":"string"},"sec-ch-ua-mobile":{"type":"string"},"sec-ch-ua-arch":{"type":"string"},"sec-ch-ua-platform":{"type":"string"},"sec-ch-ua-model":{"type":"string"},"sec-ch-ua-full-version-list":{"type":"string"}}}}}}}},"400":{"description":"Bad Request Error occurred","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}}}}}},"403":{"description":"Forbidden Authentication error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}}}}}}}}}}}
```

## Slider

Solves the DataDome **slider** captcha from the challenge images and returns the check URL. See the [slider guide](/datadome/slider-captcha.md).

## Solve captcha

> Solves the captcha challenge. After getting this URL in the payload, make a GET request to it and you will receive the datadome cookie in the response. Set this cookie in your cookiejar, you have now successfully solved DataDome slider.

```json
{"openapi":"3.0.0","info":{"title":"DataDome Captcha Solving API","version":"1.0.0"},"servers":[{"url":"https://datadome.hypersolutions.co","description":"Server for captcha solving endpoint"}],"paths":{"/slider":{"post":{"summary":"Solve captcha","description":"Solves the captcha challenge. After getting this URL in the payload, make a GET request to it and you will receive the datadome cookie in the response. Set this cookie in your cookiejar, you have now successfully solved DataDome slider.","operationId":"solveCaptcha","parameters":[{"in":"header","name":"Content-Type","required":true,"schema":{"type":"string","enum":["application/json"]},"description":"The Content-Type of the request body"},{"in":"header","name":"x-api-key","required":true,"schema":{"type":"string"},"description":"Your API key for authentication"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["userAgent","deviceLink","html","puzzle","piece","parentUrl","ip","acceptLanguage"],"properties":{"userAgent":{"type":"string","description":"Your chrome UserAgent"},"deviceLink":{"type":"string","description":"The deviceLink you constructed"},"parentUrl":{"type":"string","description":"The parentUrl visible in the form fields"},"html":{"type":"string","description":"The response body of the GET request to the deviceLink"},"script":{"type":"string","description":"Optional. The DataDome challenge bundle, only needed when the challenge page loads it with a script tag such as <script defer src=\"https://ct.captcha-delivery.com/captcha.1.34.0.202609141.js\"> instead of inlining it. DataDome switches between the two per request, so check every challenge. Fetch that URL yourself with the same client, proxy and headers you used for the deviceLink, and pass the response body here. Leave it out when the page inlines the bundle."},"puzzle":{"type":"string","description":"The response body from the GET request to the `.jpg` image, base64 encoded."},"piece":{"type":"string","description":"The response body from the GET request to the `.frag.png` image, base64 encoded."},"ip":{"type":"string","description":"The IP that is used to post the sensor data to the target site. You can use /ip to get the IP from a connection. If you are not using proxies, this will be the IPv4 or IPv6 address of your pc."},"acceptLanguage":{"type":"string","description":"Your accept-language header"}}}}}},"responses":{"200":{"description":"OK Captcha solved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"payload":{"type":"string","description":"The URL for captcha verification"},"headers":{"type":"object","properties":{"sec-ch-device-memory":{"type":"string"},"sec-ch-ua-mobile":{"type":"string"},"sec-ch-ua-arch":{"type":"string"},"sec-ch-ua-platform":{"type":"string"},"sec-ch-ua-model":{"type":"string"},"sec-ch-ua-full-version-list":{"type":"string"}}}}}}}},"400":{"description":"Bad Request Error occurred","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}}}}}},"403":{"description":"Forbidden Authentication error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}}}}}}}}}}}
```

## Tags

Generates the telemetry ("tags") payload you post to DataDome's collector to raise your session's trust score. See [Tags](/datadome/tags.md).

## Solve tags

> Solves the tags challenge.

```json
{"openapi":"3.0.0","info":{"title":"DataDome Captcha Solving API","version":"1.0.0"},"servers":[{"url":"https://datadome.hypersolutions.co","description":"Server for captcha solving endpoint"}],"paths":{"/tags":{"post":{"summary":"Solve tags","description":"Solves the tags challenge.","operationId":"solveTags","parameters":[{"in":"header","name":"Content-Type","required":true,"schema":{"type":"string","enum":["application/json"]},"description":"The Content-Type of the request body"},{"in":"header","name":"x-api-key","required":true,"schema":{"type":"string"},"description":"Your API key for authentication"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["userAgent","ddk","referer","type","ip","acceptLanguage","version"],"properties":{"userAgent":{"type":"string","description":"Your chrome UserAgent"},"ddk":{"type":"string","description":"sitekey, static for each site. parse it from the /js/ payload request from browser"},"cid":{"type":"string","description":"Your current datadome cookie"},"referer":{"type":"string","description":"The referer visible as the referer header in the payload POST"},"type":{"type":"string","description":"First time 'ch', second time 'le'"},"ip":{"type":"string","description":"The IP that is used to post the sensor data to the target site. You can use /ip to get the IP from a connection. If you are not using proxies, this will be the IPv4 or IPv6 address of your pc."},"acceptLanguage":{"type":"string","description":"Your accept-language header"},"version":{"type":"string","description":"The value you will find in the ddv form field"}}}}}},"responses":{"200":{"description":"OK Interstitial solved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"payload":{"type":"string","description":"The payload for POST request"}}}}}},"400":{"description":"Bad Request Error occurred","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}}}}}},"403":{"description":"Forbidden Authentication error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Error message"}}}}}}}}}}}
```
