# Résoudre DataDome — API Anti-bot Cookies d'OpenScraper

*Page HTML : https://openscraper.ai/fr/bypass-datadome-api · Index pour agents : https://openscraper.ai/llms.txt*

> Résolvez DataDome sur n'importe quel site en un appel API. Le module Anti-bot Cookies résout le challenge DataDome une fois et renvoie une session valide et rejouable — le cookie `datadome`, ainsi que le user agent, l'en-tête `Accept-Language` et le profil TLS sous lesquels il a été émis. Vous la rejouez sur autant de pages qu'elle tient et payez 0,0085 $ la session avec l'abonnement Super Utilisateur (0,01 $ sans), pas des frais par requête.

## Ce qu'il fait

Le module `antibot_cookies_matrix` obtient une vraie session DataDome par votre propre proxy sticky et vous la remet. Il ne récupère pas vos pages : vous rejouez la session vous-même, en simple HTTP.

- Un cookie `datadome` valide, prêt à rejouer
- Le CAPTCHA DataDome résolu pour vous
- Une session, de nombreuses pages
- Facturé à la session, pas à la page
- Replay en simple HTTP — sans navigateur

## Comment fonctionne la résolution de DataDome

1. **DataDome note un visiteur, puis lui remet un cookie.** À la première visite, son script côté client relève les signaux du navigateur (canvas, WebGL, polices, timing des événements, poignée de main TLS) et, si le visiteur paraît humain ou réussit le puzzle de `captcha-delivery.com`, délivre un cookie `datadome`. Les requêtes suivantes passent tant qu'elles portent ce cookie et ressemblent encore au visiteur qui l'a obtenu.
2. **Le cookie est obtenu une seule fois, par votre proxy.** Vous envoyez l'URL cible et un proxy sticky. Le solver ouvre la page par cette IP de sortie avec une vraie preuve de navigateur et passe le challenge s'il apparaît.
3. **Vous récupérez toute la session.** Un cookie seul est rejeté dès que la requête qui l'entoure ne correspond plus ; l'API renvoie donc `cookies`, `user_agent`, `accept_language` et `impersonate` (le profil TLS, par ex. `chrome146`, `firefox147`).
4. **Vous rejouez la session vous-même.** Même proxy, mêmes en-têtes, même profil TLS : une requête HTTP ordinaire de votre propre code, non facturée par OpenScraper.
5. **Vous ne relancez un solve que lorsque la session est rejetée.** Une 403 ou la page CAPTCHA signifie que la session est terminée ; demandez-en une nouvelle et continuez.

## Coût comparé à un unlocker

| | Avec abonnement | Sans abonnement |
|---|---|---|
| Anti-bot Cookies | 0,0085 $ par session DataDome | 0,01 $ par session DataDome |
| Web Unlocker | 0,81 $ pour 1 000 requêtes | 0,95 $ pour 1 000 requêtes |

Un unlocker résout DataDome à nouveau à chaque requête et facture chaque requête. Avec les cookies de session, la résolution est payée une fois. Coût de 1 000 pages, aux tarifs avec abonnement :

| Pages rejouées par session | Sessions pour 1 000 pages | Anti-bot Cookies | Unlocker |
|---|---|---|---|
| 10 | 100 | 0,85 $ | 0,81 $ |
| 50 | 20 | 0,17 $ | 0,81 $ |
| 100 | 10 | 0,085 $ | 0,81 $ |
| 500 | 2 | 0,017 $ | 0,81 $ |

Une session coûte autant qu'environ 11 requêtes d'unlocker : en dessous de ce nombre de pages par session, l'unlocker revient moins cher ; au-dessus, les cookies de session l'emportent. Le nombre de pages que tient une session dépend du site cible et de votre rythme de requêtes, et le trafic proxy des replays reste à votre charge.

## Cookies de session ou unlocker

Choisissez Anti-bot Cookies quand vous récupérez beaucoup de pages sur un même site protégé par DataDome, que les données sont dans le HTML ou dans une API JSON, et que vous avez déjà des proxys sticky résidentiels ou ISP.

Choisissez le [DataDome Unlocker](https://openscraper.ai/fr/datadome-unlocker.md) quand vous récupérez quelques pages, que la page a besoin du rendu JavaScript, ou que vous ne voulez pas gérer de proxys.

## API

```python
# pip install requests curl_cffi
import requests
from curl_cffi import requests as browser

API_KEY = "sk_live_xxx"
# Un proxy STICKY : le solve et chaque replay doivent sortir par la même IP.
PROXY = "http://user:pass@host:port"


def solve(url):
    """Payé une fois : résout DataDome et renvoie une session rejouable."""
    response = requests.post(
        "https://api.openscraper.ai/runs",
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={
            "module": "antibot_cookies_matrix",
            "params": {"url": url, "proxy": PROXY, "challenge": "datadome"},
            "sync": True,
        },
        timeout=180,  # un solve peut prendre jusqu'à deux minutes
    )
    response.raise_for_status()
    return response.json()["result"][0]


def fetch(url, session):
    """Non facturé : rejoue la session exactement comme elle a été émise."""
    return browser.get(
        url,
        cookies=session["cookies"],
        headers={
            "User-Agent": session["user_agent"],
            "Accept-Language": session["accept_language"],
        },
        impersonate=session["impersonate"],  # même profil TLS que le solve
        proxies={"http": PROXY, "https": PROXY},  # même IP de sortie que le solve
        timeout=30,
    )


session = solve("https://example.com/")

for page in range(1, 201):
    url = f"https://example.com/listings?page={page}"
    response = fetch(url, session)

    if response.status_code == 403:  # DataDome a mis fin à la session : nouveau solve
        session = solve(url)
        response = fetch(url, session)

    print(page, response.status_code, len(response.text))
```

| Paramètre | Type | Requis | Défaut | Description |
|---|---|---|---|---|
| `url` | string | oui | — | L'URL cible pour laquelle récupérer une session. |
| `proxy` | string | oui | — | Votre proxy sticky (`http://user:pass@host:port`). Rejouez par le même. |
| `challenge` | string | non | `datadome` | `datadome`, `cloudflare`, `akamai`, `perimeterx`, `aws_waf`, `turnstile`. |

Le résultat porte `cookies`, `user_agent`, `impersonate`, `accept_language`, `proxy_host` et `proxy_session`. Le mot de passe du proxy n'est jamais renvoyé ni stocké. Référence complète : <https://openscraper.ai/fr/docs.md>.

## FAQ

**Comment résolvez-vous DataDome ?** En obtenant une vraie session DataDome plutôt qu'en en simulant une : le solver charge la page par votre proxy avec une vraie preuve de navigateur, passe le CAPTCHA s'il apparaît, et renvoie la session à rejouer.

**Pourquoi est-ce moins cher qu'un web unlocker ?** L'étape coûteuse n'a lieu qu'une fois. Vous payez 0,0085 $ la session avec l'abonnement Super Utilisateur (0,01 $ sans), et chaque page rejouée avec elle est une simple requête HTTP non facturée. À partir d'environ la douzième page par session, vous êtes gagnant.

**Pourquoi dois-je fournir mon propre proxy ?** Un cookie DataDome est lié à l'IP de sortie qui l'a obtenu. Le solve et les replays doivent partager la même IP sticky ; un proxy rotatif échoue à chaque fois.

**Combien de temps une session reste-t-elle valide ?** Il n'y a pas de durée fixe. Considérez une 403 ou la page CAPTCHA comme le signal pour demander une nouvelle session.

**Combien de temps prend un solve ?** En général 30 à 60 secondes, jusqu'à deux minutes sur un challenge difficile.

## Un usage responsable et licite

OpenScraper est un outil technique neutre : vous choisissez les sites cibles, les données et leur usage, et vous êtes responsable de la licéité de cet usage.

- **Des données publiquement accessibles** — Collectez des données visibles par tous. N'utilisez jamais le service pour accéder à un contenu auquel vous n'avez pas droit, ni pour vous introduire dans un système.
- **Données personnelles (RGPD)** — Si vous collectez des données personnelles, vous en êtes responsable de traitement : base légale, finalité et durée de conservation. Données sensibles et données de mineurs exclues.
- **Bases de données et droit d'auteur** — N'extrayez ni ne réutilisez une partie substantielle d'une base de données protégée, ni un contenu protégé par le droit d'auteur, sans l'accord du titulaire des droits.
- **Respect des sites cibles** — Vérifiez les conditions d'utilisation des sites que vous collectez et gardez un rythme de requêtes raisonnable : ne dégradez ni ne surchargez jamais un site.

Nous refusons ou suspendons toute extraction manifestement illicite. Règles complètes : [Conditions Générales d'Utilisation](https://openscraper.ai/fr/cgu).
