/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.
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. Opcionalmente, pasa unprofilepara conservar el estado del navegador entre sesiones. - Interactúa llamando a
POST /v2/scrape/{scrapeId}/interactcon unprompto con código de Playwrightcode. En la primera llamada, se reanuda la sesión de scraping y puedes empezar a interactuar con la página. - Detén la sesión con
DELETE /v2/scrape/{scrapeId}/interactcuando hayas terminado.
Inicio rápido
Response
Interactúa mediante prompts
output con la respuesta del agente:
Response
Mantén los prompts pequeños y enfocados
interact 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
page (un objeto Page de Playwright) está disponible en Node.js y Python. El modo Bash incluye agent-browser preinstalado.
Node.js (Playwright)
page ya está conectado al navegador.
Python
language como "python" para usar la API de Python de Playwright.
Bash (agent-browser)
@e1, @e2, …) — ideal para la automatización controlada por LLM.
| Comando | Descripción |
|---|---|
snapshot | Árbol de accesibilidad completo con referencias de elementos |
snapshot -i | Solo elementos interactivos |
click @e1 | Hacer clic en un elemento por referencia |
fill @e1 "text" | Borrar el campo y escribir texto |
type @e1 "text" | Escribir sin borrar |
press Enter | Pulsar una tecla del teclado |
scroll down 500 | Desplazarse 500 píxeles hacia abajo |
get text @e1 | Obtener el contenido de texto |
get url | Obtener la URL actual |
wait @e1 | Esperar a que aparezca el elemento |
wait --load networkidle | Esperar a que la red quede inactiva |
find text "X" click | Buscar un elemento por texto y hacer clic |
eval "js code" | Ejecutar JavaScript en la página |
vista en vivo
| Field | Description |
|---|---|
liveViewUrl | Transmisión de solo lectura — incrústala para ver la sesión |
interactiveLiveViewUrl | Transmisión interactiva — los espectadores pueden hacer clic, escribir e interactuar |
Ciclo de vida de la sesión
Creación
POST /v2/scrape/{scrapeId}/interact crea una sesión del navegador aislada con el mismo estado de la página que tu scraping.
Reutilización
interact 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
Perfiles persistentes
profile, puedes guardar y reutilizar el estado del navegador (cookies, localStorage, sesiones) entre scrapes. Esto resulta útil para mantener la sesión iniciada y conservar las preferencias.
Pasa el parámetro profile al llamar a scrape. Las sesiones con el mismo nombre de perfil comparten estado.
| Parámetro | Predeterminado | Descripción |
|---|---|---|
name | — | Nombre del perfil persistente. Los scrapes con el mismo nombre comparten el estado del navegador. |
saveChanges | true | Cuando es true, el estado del navegador se vuelve a guardar en el perfil cuando se detiene la sesión de interact. Establécelo en false para cargar datos existentes sin escribir cambios, lo que resulta útil cuando necesitas varios lectores concurrentes. |
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.Cuándo usar cada opción
| Caso de uso | Recomendado | Por qué |
|---|---|---|
| Búsqueda web | Search | Endpoint de búsqueda específico |
| Obtener contenido limpio de una URL | Scrape | Una llamada a la API, sin necesidad de sesión |
| Hacer clic, escribir y navegar en una página | Interact (prompt) | Solo descríbelo en inglés |
| Extraer datos tras interacciones | Interact (prompt) | No se necesitan selectores |
| Lógica de scraping compleja | Interact (code) | Control total de Playwright |
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
Referencia de la API
- Ejecutar Interact —
POST /v2/scrape/{scrapeId}/interact - Detener Interact —
DELETE /v2/scrape/{scrapeId}/interact
Cuerpo de la solicitud (POST)
| Campo | Tipo | Predeterminado | Descripción |
|---|---|---|---|
prompt | string | — | Tarea en lenguaje natural para el agente de IA. Obligatorio si no se establece code. Máximo 10.000 caracteres. |
code | string | — | Código que se va a ejecutar (Node.js, Python o Bash). Obligatorio si no se establece prompt. Máximo 100.000 caracteres. |
language | string | "node" | "node", "python" o "bash". Solo se usa con code. |
timeout | number | 30 | Timeout en segundos (1–300). |
origin | string | — | Identificador del llamante para el seguimiento de la actividad. |
Respuesta
| Field | Description |
|---|---|
success | true si la ejecución se completó sin errores |
liveViewUrl | URL de vista en vivo de solo lectura para la sesión del navegador |
interactiveLiveViewUrl | URL de vista en vivo interactiva (quienes la vean pueden controlar el navegador) |
output | La respuesta en lenguaje natural del agente a tu prompt. Solo está presente cuando se utiliza prompt. |
stdout | Salida estándar de la ejecución del código |
result | Valor de retorno sin procesar del sandbox. Para code: la última expresión evaluada. Para prompt: la captura sin procesar de la página que el agente utilizó para producir output. |
stderr | Salida de error estándar |
exitCode | Código de salida (0 = éxito) |
killed | true si la ejecución se finalizó debido a timeout |
¿Tienes comentarios o necesitas ayuda? Envía un correo a help@firecrawl.com o comunícate en Discord.

