/interact para empezar a realizar acciones en esa página: hacer clic en botones, completar formularios, extraer contenido dinámico o navegar más a fondo. Solo describe lo que quieres hacer, o escribe código si necesitas un control total.
Usa Interact cuando necesites:
- Scraping detrás de un inicio de sesión — inicia sesión una vez y luego lee las páginas que solo aparecen tras la autenticación. Consulta Perfiles persistentes con scraping + Interact.
- Avanza por la paginación con clics — pasa de página y extrae cada conjunto de resultados reutilizando una misma sesión. Consulta Interactúa mediante prompts y Ciclo de vida de la sesión.
- Rellena y envía un formulario — escribe en los campos y envíalo, ya sea desde un prompt o desde código de Playwright. Consulta Interactúa mediante prompts y Ejecución de código.
- Reutiliza una sesión autenticada — guarda el estado del navegador en un perfil con nombre y cárgalo en scraping posteriores. Consulta Perfiles persistentes con scraping + Interact.
- Inicia una sesión sin hacer scraping primero — abre un navegador independiente que controlas directamente. Consulta Browser Sandbox.
Selecciona el modelo de interacción adecuado
Usa Interact vinculado al scraping cuando el flujo de trabajo comienza con
POST /v2/scrape y la respuesta incluye data.metadata.scrapeId. Usa Browser Sandbox cuando necesites una sesión independiente con su propio ciclo de vida. El SDK de Python usa los equivalentes en snake_case (browser(), browser_execute(), list_browsers(), delete_browser(), interact(), stop_interaction()).
Prompts de IA
Describe qué acción quieres realizar en la página
Ejecución de código
Interactúa de forma segura mediante la ejecución de código con playwright, agent-browser
Vista en vivo
Observa o interactúa con el browser en tiempo real mediante un stream incrustable
Cómo funciona
- Haz scraping de una URL con
POST /v2/scrape. La respuesta incluye unscrapeIdendata.metadata.scrapeId. Si quieres conservar el estado del navegador, pasaprofileen esta solicitud. - Interactúa llamando a
POST /v2/scrape/{scrapeId}/interactcon unprompto con código de Playwrightcode. No pasesprofileaquí; la sesión de interacción hereda el perfil del trabajo de scraping. - Detén la sesión con
DELETE /v2/scrape/{scrapeId}/interactcuando hayas terminado. En los perfiles con escritura, los cambios se guardan cuando la sesión se detiene.
Inicio rápido
Haz scraping de una página, interactúa con ella y detén la sesión:Response
Interactúa mediante prompts
La forma más simple de interactuar con una página. Describe lo que quieres en lenguaje natural y hará clic, escribirá, se desplazará y extraerá datos automáticamente.output con la respuesta del agente:
Response
Mantén los prompts pequeños y enfocados
Los prompts funcionan mejor cuando cada uno consiste en una única tarea clara. En lugar de pedirle al agente que realice un flujo de trabajo complejo de varios pasos de una sola vez, divídelo en llamadasinteract independientes. Cada llamada reutiliza la misma sesión del navegador, por lo que el estado se conserva entre una y otra.
Ejecución de código
Para tener control total, puedes ejecutar código directamente en el sandbox del navegador. La variablepage (un objeto Page de Playwright) está disponible en Node.js y Python. El modo Bash incluye agent-browser preinstalado. También puedes hacer capturas de pantalla dentro de la sesión: usa (await page.screenshot()).toString("base64") en Node.js, await page.screenshot(path="/tmp/screenshot.png") en Python o agent-browser screenshot en Bash.
Node.js (Playwright)
El lenguaje predeterminado. Escribe código de Playwright directamente.page ya está conectado al navegador.
Python
Configuralanguage como "python" para usar la API de Python de Playwright.
Bash (agent-browser)
agent-browser es una CLI preinstalada en el sandbox con más de 60 comandos. Proporciona un árbol de accesibilidad con referencias de elementos (@e1, @e2, …), lo que es ideal para la automatización controlada por LLM.
vista en vivo
Cada respuesta de interact devuelve unaliveViewUrl que puedes incrustar para ver el navegador en tiempo real. Es útil para depuración, demos o para crear interfaces con navegador.
Response
Vista en vivo interactiva
La respuesta también incluye uninteractiveLiveViewUrl. A diferencia de la vista en vivo estándar, que es solo de visualización, la vista en vivo interactiva permite a los usuarios hacer clic, escribir e interactuar con la sesión del navegador directamente a través del stream integrado. Esto resulta útil para crear interfaces de navegador orientadas al usuario, como flujos de inicio de sesión o flujos de trabajo guiados en los que los usuarios finales necesitan controlar el navegador.
URL de CDP
Cada respuesta de interact también devuelve unacdpUrl: la URL de WebSocket sin procesar del Chrome DevTools Protocol (CDP) para la sesión del navegador. Úsala para conectarte directamente a la sesión activa desde Playwright, Puppeteer o cualquier cliente CDP, y controlar el navegador con tu propio código.
Ciclo de vida de la sesión
Creación
La primera llamadaPOST /v2/scrape/{scrapeId}/interact continúa la sesión de scraping e inicia la interacción.
La sesión navega desde el mismo país que el scraping: usa el location.country del scraping o, si este no especificó ningún país, Estados Unidos. No pases location a interact; configúralo en la solicitud POST /v2/scrape.
Reutilización
Las llamadas posteriores ainteract sobre el mismo scrapeId reutilizan la sesión existente. El navegador permanece abierto y conserva su estado entre llamadas, por lo que puedes encadenar varias interacciones:
Limpieza
Detén la sesión explícitamente al terminar:Perfiles persistentes con Scraping + Interact
De forma predeterminada, cada sesión de scraping + interact se inicia con un navegador limpio. Conprofile, puedes guardar y reutilizar el estado del navegador (cookies, localStorage, sesiones) entre scrapings. Esto resulta útil para mantener la sesión iniciada y conservar las preferencias.
Pasa el objeto profile en la solicitud inicial POST /v2/scrape. No pases profile a POST /v2/scrape/{scrapeId}/interact; la sesión de interact reutiliza la sesión del navegador y la configuración del perfil del trabajo de scraping. Detén la sesión de interact con DELETE /v2/scrape/{scrapeId}/interact para que puedan guardarse los cambios del perfil.
cURL
- Crea el scraping con
profile.nameysaveChanges: true. - Ejecuta interacciones con prompt o código usando el
scrapeIddevuelto. - Detén la sesión para guardar cookies, localStorage y otro estado del navegador.
- Inicia un scraping posterior con el mismo
profile.name. UsasaveChanges: falsecuando solo quieras leer el estado existente sin volver a escribir cambios.
Solo una sesión puede guardar en un perfil a la vez. Si otra sesión ya está guardando, recibirás un error
409. Aun así, puedes abrir el mismo perfil con saveChanges: false o volver a intentarlo más tarde.Validar la persistencia
Puedes probar la persistencia sin depender de un flujo de inicio de sesión real: escribe un valor enlocalStorage en una sesión, detenla y luego lee ese valor en una segunda sesión con el mismo perfil.
cURL
localStorage como "saved" y cookie como true.
Puede que los perfiles creados a través de la API todavía no aparezcan en Dashboard > Interact > Profiles. Actualmente, el dashboard no ofrece un inventario completo de los perfiles persistentes creados mediante la API.
Retención cero de datos (ZDR)
Interact admite la Retención cero de datos (ZDR) para equipos con requisitos estrictos de tratamiento de datos. Cuando está habilitada, Firecrawl no conservará ningún contenido de página ni salida de ejecución una vez finalizada la sesión. Para habilitar ZDR, establecezeroDataRetention: true en tu primera llamada a interact:
cURL
zeroDataRetention: true al crear una sesión independiente con POST /v2/interact. Al interactuar con una extracción de datos web que ya se realizó con zeroDataRetention: true, se inicia automáticamente una sesión ZDR. La política de retención se guarda en la sesión, por lo que las llamadas posteriores a esa misma sesión se mantienen en modo ZDR aunque omitan la opción.
ZDR está disponible en los planes Enterprise y debe estar habilitado para tu equipo. Las solicitudes que establecen zeroDataRetention: true desde un equipo que no tiene ZDR habilitado devuelven un 403. Visita firecrawl.dev/enterprise para empezar.
- Las grabaciones de sesión y los perfiles persistentes no están disponibles en modo ZDR. Las solicitudes que combinan
zeroDataRetention: trueconrecordSessionoprofiledevuelven un400. - Una sesión existente que se inició sin ZDR no se puede cambiar a ZDR. Si solicitas ZDR en ella, se devuelve un
409: detén la sesión e inicia una nueva conzeroDataRetention: true. - Las extracciones de datos web con ZDR no conservan la URL extraída, por lo que es posible que Firecrawl no pueda reconstruir el navegador a partir de la extracción de datos web original. Si interact devuelve un
409indicando que el contexto de reproducción no está disponible, pasaurlen la solicitud para abrir esa página en una nueva sesión ZDR. Las acciones de la extracción de datos web original no se vuelven a ejecutar.
Cuándo usar cada opción
Interact vs Browser Sandbox: Interact se basa en la misma infraestructura que Browser Sandbox, pero ofrece una mejor interfaz para el patrón más común: hacer scraping de una página y luego profundizar. Browser Sandbox es mejor cuando necesitas una sesión del navegador independiente que no esté vinculada a un scraping específico.
Precios
- Solo código (sin
prompt): 2 créditos por minuto de sesión - Con prompts de IA: 7 créditos por minuto de sesión
- extracción de datos web: se factura por separado (1 crédito por extracción de datos web, más cualquier costo específico del formato)
- Retención cero de datos: las sesiones con ZDR suman 2 créditos por minuto de sesión, por lo que las sesiones de solo código se facturan a 4 créditos por minuto y las sesiones con prompts de IA, a 9, con el mismo mínimo de un minuto. Una extracción de datos web con ZDR mantiene además su propio costo de ZDR de 1 crédito adicional por página.
Referencia de la API
- Ejecutar Interact:
POST /v2/scrape/{scrapeId}/interact - Detener Interact:
DELETE /v2/scrape/{scrapeId}/interact
Cuerpo de la solicitud (POST)
Respuesta
¿Tienes comentarios o necesitas ayuda? Envía un correo a help@firecrawl.com o comunícate en Discord.

