/interact pour commencer à effectuer des actions sur cette page : cliquer sur des boutons, remplir des formulaires, extraire du contenu dynamique ou naviguer plus en profondeur. Décrivez simplement ce que vous voulez faire, ou écrivez du code si vous avez besoin d’un contrôle total.
Utilisez Interact lorsque vous avez besoin de :
- Scrape derrière un formulaire de connexion — connectez-vous une fois, puis lisez les pages qui n’apparaissent qu’après authentification. See Profils persistants avec Scrape + Interact.
- Parcourir la pagination par clics — passez à la page suivante et récupérez chaque ensemble de résultats en réutilisant une seule session. See Interagir par prompt et Cycle de vie d’une session.
- Remplir et soumettre un formulaire — saisissez du texte dans les champs et soumettez, depuis un prompt ou depuis du code Playwright. See Interagir par prompt et Exécution de code.
- Réutiliser une session authentifiée — enregistrez l’état du navigateur dans un profil nommé et chargez-le lors de scrapes ultérieurs. See Profils persistants avec Scrape + Interact.
- Démarrer une session sans scraping préalable — ouvrez un browser autonome que vous pilotez directement. See Browser Sandbox.
Choisissez le bon modèle d’interaction
Utilisez Interact lié au scraping lorsque le workflow commence par
POST /v2/scrape et que la réponse inclut data.metadata.scrapeId. Utilisez Browser Sandbox lorsque vous avez besoin d’une session autonome avec son propre cycle de vie. Le Python SDK utilise les équivalents en snake_case (browser(), browser_execute(), list_browsers(), delete_browser(), interact(), stop_interaction()).
Prompts IA
Décrivez l’action que vous souhaitez effectuer sur la page
Exécution de code
Interagissez en toute sécurité via l’exécution de code avec playwright, agent-browser
Vue en direct
Observez ou interagissez avec le Browser en temps réel via un flux intégrable
Comment ça fonctionne
- Scrape une URL avec
POST /v2/scrape. La réponse inclut unscrapeIddansdata.metadata.scrapeId. Si vous souhaitez conserver l’état du navigateur, transmettezprofiledans cette requête. - Interact en appelant
POST /v2/scrape/{scrapeId}/interactavec unpromptou du codeplaywright. Ne transmettez pasprofileici ; la session d’interaction hérite du profil de la tâche de scraping. - Arrêtez la session avec
DELETE /v2/scrape/{scrapeId}/interactlorsque vous avez terminé. Pour les profils inscriptibles, les modifications sont enregistrées à l’arrêt de la session.
Démarrage rapide
Scrapez une page, interagissez avec elle, puis arrêtez la session :Response
Interagir par prompt
La manière la plus simple d’interagir avec une page. Décrivez ce que vous voulez en langage naturel, et l’agent cliquera, saisira du texte, fera défiler la page et extraira automatiquement les données.output avec la réponse de l’agent :
Response
Gardez les prompts courts et ciblés
Les prompts sont plus efficaces lorsque chacun correspond à une tâche unique et claire. Au lieu de demander à l’agent d’exécuter un workflow complexe en plusieurs étapes en une seule fois, décomposez-le en appelsinteract distincts. Chaque appel réutilise la même session de navigateur, de sorte que l’état est conservé d’un appel à l’autre.
Exécution de code
Pour un contrôle total, vous pouvez exécuter du code directement dans le sandbox du navigateur. La variablepage (un objet Playwright Page) est disponible en Node.js et en Python. Le mode Bash inclut agent-browser en préinstallation. Vous pouvez également prendre des captures d’écran pendant la session : utilisez (await page.screenshot()).toString("base64") en Node.js, await page.screenshot(path="/tmp/screenshot.png") en Python, ou agent-browser screenshot en Bash.
Node.js (Playwright)
Le langage par défaut. Écrivez directement du code Playwright.page est déjà connectée au navigateur.
Python
Définissezlanguage sur "python" pour l’API Python de Playwright.
Bash (agent-browser)
agent-browser est une CLI préinstallée dans le sandbox avec plus de 60 commandes. Elle fournit un arbre d’accessibilité avec des références d’éléments (@e1, @e2, …), ce qui est idéal pour l’automatisation pilotée par un LLM.
Vue en direct
Chaque réponse Interact renvoie unliveViewUrl que vous pouvez intégrer pour voir le navigateur en temps réel. Utile pour le débogage, les démonstrations ou la création d’interfaces pilotées par le navigateur.
Response
Vue en direct interactive
La réponse inclut également uninteractiveLiveViewUrl. Contrairement à la vue en direct standard, qui est en lecture seule, la vue en direct interactive permet aux utilisateurs de cliquer, de saisir du texte et d’interagir directement avec la session du navigateur via le flux intégré. Cela est utile pour créer des interfaces de navigateur destinées aux utilisateurs, par exemple pour des parcours de connexion ou des workflows guidés dans lesquels les utilisateurs finaux doivent contrôler le navigateur.
URL CDP
Chaque réponse Interact renvoie également uncdpUrl : l’URL WebSocket brute du protocole Chrome DevTools Protocol (CDP) pour la session de navigateur. Utilisez-la pour vous connecter directement à la session en cours depuis Playwright, Puppeteer ou n’importe quel client CDP, et piloter le navigateur avec votre propre code.
Cycle de vie d’une session
Création
Le premier appelPOST /v2/scrape/{scrapeId}/interact poursuit la session d’extraction et démarre l’interaction.
La session navigue depuis le même pays que l’extraction : elle utilise le location.country de l’extraction, ou les États-Unis si aucun pays n’a été défini lors de l’extraction. Ne transmettez pas location à interact ; définissez-le dans la requête POST /v2/scrape.
Réutilisation
Les appelsinteract suivants sur le même scrapeId réutilisent la session existante. Le navigateur reste ouvert et conserve son état entre les appels, ce qui vous permet d’enchaîner plusieurs interactions :
Nettoyage
Arrêtez explicitement la session une fois terminé :Profils persistants avec Scrape + Interact
Par défaut, chaque session de scrape + interact démarre avec un navigateur propre. Avecprofile, vous pouvez enregistrer et réutiliser l’état du navigateur (cookies, localStorage, sessions) entre plusieurs scrapes. C’est utile pour rester connecté et conserver les préférences.
Passez l’objet profile dans la requête initiale POST /v2/scrape. Ne passez pas profile à POST /v2/scrape/{scrapeId}/interact ; la session interact réutilise la session de navigateur et les paramètres de profil de la tâche de scraping. Arrêtez la session interact avec DELETE /v2/scrape/{scrapeId}/interact afin que les modifications apportées au profil puissent être enregistrées.
cURL
- Créez le scrape avec
profile.nameetsaveChanges: true. - Exécutez des interactions par prompt ou par code sur le
scrapeIdrenvoyé. - Arrêtez la session pour enregistrer les cookies, le localStorage et les autres données d’état du navigateur.
- Démarrez plus tard un scrape avec le même
profile.name. UtilisezsaveChanges: falselorsque vous voulez uniquement lire l’état existant sans réécrire les modifications.
Une seule session peut enregistrer dans un profil à la fois. Si une autre session enregistre déjà, vous recevrez une erreur
409. Vous pouvez quand même ouvrir le même profil avec saveChanges: false, ou réessayer plus tard.Vérifier la persistance
Vous pouvez tester la persistance sans dépendre d’une véritable procédure de connexion en écrivant une valeur danslocalStorage lors d’une session, en l’arrêtant, puis en lisant cette valeur dans une seconde session avec le même profil.
cURL
localStorage avec la valeur "saved" et cookie avec la valeur true.
Les profils créés via l’API peuvent ne pas encore apparaître dans Dashboard > Interact > Profiles. Le dashboard ne fournit pas encore un inventaire complet des profils persistants créés via l’API.
Aucune Conservation des Données (ZDR)
Interact prend en charge le mode Aucune Conservation des Données (ZDR) pour les équipes soumises à des exigences strictes en matière de traitement des données. Lorsque ce mode est activé, Firecrawl ne fait persister aucun contenu de page ni aucune sortie d’exécution au-delà de la durée de vie de la session. Pour activer le mode ZDR, définissezzeroDataRetention: true lors de votre premier appel à interact :
cURL
zeroDataRetention: true lors de la création d’une session autonome avec POST /v2/interact. Toute interaction avec une extraction elle-même effectuée avec zeroDataRetention: true démarre automatiquement une session ZDR. La politique de conservation est enregistrée au niveau de la session : les appels ultérieurs à cette même session restent donc en mode ZDR, même s’ils omettent l’option.
ZDR est disponible avec les offres Enterprise et doit être activé pour votre équipe. Les requêtes qui définissent zeroDataRetention: true depuis une équipe pour laquelle ZDR n’est pas activé renvoient une erreur 403. Rendez-vous sur firecrawl.dev/enterprise pour commencer.
- Les enregistrements de session et les profils persistants ne sont pas disponibles en mode ZDR. Les requêtes qui combinent
zeroDataRetention: trueavecrecordSessionouprofilerenvoient une erreur400. - Une session existante démarrée sans ZDR ne peut pas basculer en mode ZDR. Toute demande de ZDR sur cette session renvoie une erreur
409: arrêtez la session et démarrez-en une nouvelle aveczeroDataRetention: true. - Les extractions ZDR ne conservent pas l’URL extraite ; il est donc possible que Firecrawl ne puisse pas reconstruire le navigateur à partir de l’extraction d’origine. Si interact renvoie une erreur
409indiquant que le contexte de relecture n’est pas disponible, passezurldans la requête pour ouvrir cette page dans une nouvelle session ZDR. Les actions de l’extraction d’origine ne sont pas rejouées.
Quand utiliser chaque option
Interact vs Browser Sandbox : Interact repose sur la même infrastructure que Browser Sandbox, mais offre une meilleure interface pour le cas le plus courant : scraper une page, puis aller plus loin. Browser Sandbox est préférable lorsque vous avez besoin d’une session de navigateur autonome qui n’est pas liée à un scraping spécifique.
Tarification
- Code uniquement (sans
prompt): 2 crédits par minute de session - Avec des prompts IA: 7 crédits par minute de session
- Extraction: facturée séparément (1 crédit par extraction, plus les coûts spécifiques au format)
- Aucune Conservation des Données : les sessions ZDR ajoutent 2 crédits par minute de session ; les sessions en code uniquement sont donc facturées 4 crédits par minute et les sessions avec des prompts IA 9 crédits, avec le même minimum d’une minute. Une extraction ZDR reste soumise à son propre coût ZDR de 1 crédit supplémentaire par page.
Référence de l’API
- Exécuter Interact:
POST /v2/scrape/{scrapeId}/interact - Arrêter Interact:
DELETE /v2/scrape/{scrapeId}/interact
Corps de la requête (POST)
Réponse
Vous avez des retours ou besoin d’aide ? Envoyez un e-mail à help@firecrawl.com ou contactez-nous sur Discord.

