sandbox del navegador
Un sandbox del navegador seguro donde los agentes pueden interactuar con la web.
Para flujos de trabajo de agentes, usa Interact. Interact es la ruta compatible para CLI/MCP y puede controlarse mediante prompts o código después de un scraping; MCP también permite abrir directamente desde una URL.
| Superficie | Úsalo para | Punto de entrada | Superficie de agente |
|---|---|---|---|
| sandbox del navegador | Sesiones de navegador independientes para usuarios de API/SDK que necesitan un sandbox, URL de CDP, vista en vivo o un ciclo de vida de sesión persistente | POST /v2/interact | API y SDKs; el comando oculto de navegador en CLI es heredado |
| Interact | Actuar sobre una página extraída; MCP también puede abrir desde una URL con el modo URL de firecrawl_interact | POST /v2/scrape/{scrapeId}/interact, CLI interact después del scraping, o MCP firecrawl_interact | Recomendado para flujos de trabajo de agentes en CLI/MCP |
El sandbox del navegador de Firecrawl ofrece a los usuarios de API y SDK un entorno de navegador seguro donde los agentes pueden interactuar con la web. Completa formularios, haz clic en botones, autentícate y mucho más. Sin configuración local, sin instalaciones de Chromium, sin problemas de compatibilidad de controladores. Agent Browser y Playwright ya vienen preinstalados.
Disponible a través de API, Node SDK, Python SDK y Vercel AI SDK. El comando oculto de CLI firecrawl browser es heredado; los flujos de agentes de CLI y MCP deben usar scrape + interact en su lugar.
Para añadir compatibilidad con Interact a un agente de programación de IA (Claude Code, Codex, Open Code, Cursor, etc.), instala la skill de Firecrawl:
npx -y firecrawl-cli@latest init --all --browserCada sesión se ejecuta en un sandbox aislado, desechable o persistente, que escala sin necesidad de gestionar infraestructura.
Crea una sesión, ejecuta código y ciérrala:
// npm install firecrawl
import { Firecrawl } from 'firecrawl';
const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });
// 1. Launch a session
const session = await firecrawl.browser();
console.log(session.cdpUrl); // wss://cdp-proxy.firecrawl.dev/cdp/...
// 2. Execute code
const result = await firecrawl.browserExecute(session.id, {
code: `
await page.goto("https://news.ycombinator.com");
const title = await page.title();
console.log(title);
`,
language: "node",
});
console.log(result.result); // "Hacker News"
// 3. Close
await firecrawl.deleteBrowser(session.id);- Sin instalación de controladores - Sin binario de Chromium, sin
playwright install, sin problemas de compatibilidad de controladores - Python, JavaScript y Bash - Envía código vía API, CLI o SDK y recibe los resultados. Los tres lenguajes se ejecutan de forma remota en el sandbox
- agent-browser - CLI preinstalada con más de 60 comandos. Los agentes de IA escriben comandos bash simples en lugar de código de Playwright
- Playwright disponible - Playwright viene preinstalado en el sandbox. Los agentes pueden escribir código con Playwright si lo prefieren.
- Acceso CDP - Conecta tu propia instancia de Playwright por WebSocket cuando necesites control completo
- Vista en vivo - Mira las sesiones en tiempo real mediante una URL de streaming integrable
- Vista en vivo interactiva - Permite que los usuarios interactúen directamente con el navegador a través de un stream interactivo integrable
Devuelve un ID de sesión, una URL de CDP y una URL de vista en tiempo real.
import { Firecrawl } from 'firecrawl';
const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });
const session = await firecrawl.browser({
ttl: 120,
activityTtl: 60,
});
console.log(session.id);
console.log(session.cdpUrl); // wss://cdp-proxy.firecrawl.dev/cdp/...
console.log(session.liveViewUrl); // https://liveview.firecrawl.dev/...{
"success": true,
"id": "550e8400-e29b-41d4-a716-446655440000",
"cdpUrl": "wss://browser.firecrawl.dev/cdp/550e8400...?token=abc123...",
"liveViewUrl": "https://liveview.firecrawl.dev/...",
"interactiveLiveViewUrl": "https://liveview.firecrawl.dev/...",
"expiresAt": "2025-01-15T10:40:00Z"
}Ejecuta código de Python, JavaScript o bash en tu sesión. La salida se devuelve a través de stdout; para Node.js, el valor de la última expresión también está disponible en result.
import { Firecrawl } from 'firecrawl';
const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });
const result = await firecrawl.browserExecute("YOUR_SESSION_ID", {
code: 'await page.goto("https://example.com"); const title = await page.title(); console.log(title);',
language: "node",
});
console.log(result);{
"success": true,
"stdout": "",
"result": "Example Domain",
"stderr": "",
"exitCode": 0,
"killed": false
}Los archivos descargados dentro de una sesión se pueden capturar y devolver como base64. Usa la API de descargas de Playwright mediante el endpoint execute:
import base64
async with page.expect_download() as download_info:
await page.click('a#download-link') # Haz clic en el elemento que activa la descarga
download = download_info.value
path = await download.path()
# Opcionalmente, guarda el archivo en una ruta conocida
# await download.save_as('/tmp/myfile.pdf')
# Lee el contenido del archivo y genera la salida en base64
with open(path, "rb") as f:
content = base64.b64encode(f.read()).decode()
print(content)El sistema de archivos del sandbox es efímero: los archivos descargados se pierden cuando termina la sesión. Para conservarlos, lee su contenido dentro de la sesión y guárdalo en tu propio almacenamiento. Los perfiles persistentes conservan el estado del navegador (cookies, localStorage), pero no los archivos en disco.
agent-browser es una CLI de navegador headless preinstalada en cada sandbox. En lugar de escribir código de Playwright, los agentes envían comandos de bash sencillos. La CLI inyecta automáticamente --cdp para que agent-browser se conecte a tu sesión activa.
Los ejemplos de la CLI firecrawl browser que aparecen a continuación son para sesiones heredadas del sandbox del navegador. Para flujos de trabajo de agentes con CLI/MCP, usa preferentemente firecrawl interact o la herramienta MCP firecrawl_interact.
La forma más rápida de usar browser. Tanto el atajo como execute envían comandos a agent-browser automáticamente. El atajo simplemente omite execute y abre una sesión automáticamente si es necesario:
firecrawl browser "open https://example.com"
firecrawl browser "snapshot"
firecrawl browser "click @e5"La forma explícita usa execute. Los comandos se envían automáticamente a agent-browser; no necesitas escribir agent-browser ni usar --bash:
Utiliza language: "bash" para ejecutar comandos de agent-browser a través de la API o los SDK:
curl -X POST "https://api.firecrawl.dev/v2/interact/YOUR_SESSION_ID/execute" \
-H "Authorization: Bearer $FIRECRAWL_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"code": "agent-browser snapshot",
"language": "bash"
}'De forma predeterminada, cada sesión de navegador comienza desde cero. Con profile, puedes guardar el estado del navegador entre sesiones. Esto es útil para seguir conectado y mantener tus preferencias.
Para guardar o seleccionar un perfil, usa el parámetro profile al crear una sesión.
const session = await firecrawl.browser({
ttl: 600,
profile: {
name: "my-profile",
saveChanges: true,
},
});| Parámetro | Predeterminado | Descripción |
|---|---|---|
name | — | Un nombre para el perfil persistente. Las sesiones con el mismo nombre comparten el almacenamiento. |
saveChanges | true | Cuando es true, el estado del navegador se guarda de nuevo en el perfil al cerrarse. Establécelo en false para cargar datos existentes sin escribir, ú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 intentarlo de nuevo más tarde.
El estado de la sesión del navegador solo se guarda cuando la sesión se cierra. Por ello, recomendamos cerrar la sesión de navegador cuando termines de usarla para que pueda reutilizarse. Una vez cerrada una sesión, su ID de sesión deja de ser válido; no puedes reutilizarlo. En su lugar, crea una nueva sesión con el mismo nombre de perfil y usa el nuevo ID de sesión devuelto en la respuesta. Para guardarla y cerrarla:
import { Firecrawl } from 'firecrawl';
const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });
await firecrawl.deleteBrowser("YOUR_SESSION_ID");import { Firecrawl } from 'firecrawl';
const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });
const { sessions } = await firecrawl.listBrowsers();
console.log(sessions);
// Filtrar por estado
const { sessions: active } = await firecrawl.listBrowsers({ status: "active" });
console.log(active);{
"success": true,
"sessions": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "active",
"cdpUrl": "wss://browser.firecrawl.dev/cdp/550e8400...?token=abc123...",
"liveViewUrl": "https://liveview.firecrawl.dev/...",
"interactiveLiveViewUrl": "https://liveview.firecrawl.dev/...",
"createdAt": "2025-01-15T10:30:00Z",
"lastActivity": "2025-01-15T10:35:00Z"
}
]
}Las sesiones tienen dos controles de TTL:
| Parámetro | Predeterminado | Descripción |
|---|---|---|
ttl | 600s (10 min) | Vida útil máxima de la sesión (30-3600s) |
activityTtl | 300s (5 min) | Cierre automático tras inactividad (10-3600s) |
import { Firecrawl } from 'firecrawl';
const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });
await firecrawl.deleteBrowser("YOUR_SESSION_ID");Cada sesión devuelve un liveViewUrl en la respuesta que puedes insertar para ver el navegador en tiempo real. Resulta útil para depuración, demostraciones o para crear interfaces de usuario basadas en el navegador.
{
"success": true,
"id": "550e8400-e29b-41d4-a716-446655440000",
"cdpUrl": "wss://browser.firecrawl.dev/cdp/550e8400...?token=abc123...",
"liveViewUrl": "https://liveview.firecrawl.dev/...",
"interactiveLiveViewUrl": "https://liveview.firecrawl.dev/...",
"expiresAt": "2025-01-15T10:40:00Z"
}<iframe src="LIVE_VIEW_URL" width="100%" height="600" />La respuesta también incluye un interactiveLiveViewUrl. A diferencia de la vista en vivo estándar, que solo permite observar, la vista interactiva en vivo permite a los usuarios hacer clic, escribir e interactuar con la sesión del navegador directamente a través de la transmisión incrustada. Esto es útil para crear interfaces de navegador orientadas al usuario, depuración colaborativa o cualquier escenario en el que quien la visualiza necesite controlar el navegador.
<iframe src="INTERACTIVE_LIVE_VIEW_URL" width="100%" height="600" />Cada sesión expone una URL de WebSocket de CDP. La API execute y la bandera --bash cubren la mayoría de los casos de uso, pero si necesitas control local completo puedes conectarte directamente.
import { Firecrawl } from 'firecrawl';
import { chromium } from "playwright-core";
const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });
const session = await firecrawl.browser();
const browser = await chromium.connectOverCDP(session.cdpUrl);
const context = browser.contexts()[0];
const page = context.pages()[0] || (await context.newPage());
await page.goto("https://example.com");
console.log(await page.title());
await browser.close();
await firecrawl.deleteBrowser(session.id);| Caso de uso | Herramienta adecuada |
|---|---|
| Extraer contenido de una URL conocida | Scrape |
| Buscar en la web y obtener resultados | Search |
| Gestionar la paginación, completar formularios y hacer clic en flujos | navegador |
| Flujos de trabajo multietapa con interacción | navegador |
| Navegación en paralelo en muchos sitios | navegador (cada sesión está aislada) |
- Inteligencia competitiva - Explorar sitios de la competencia, navegar por formularios de búsqueda y filtros, y extraer precios y características en datos estructurados
- Ingesta de base de conocimientos - Navegar por centros de ayuda, documentación y portales de soporte que requieren clics, paginación o autenticación
- Investigación de mercado - Iniciar sesiones de navegador en paralelo para crear conjuntos de datos a partir de bolsas de trabajo, listados inmobiliarios o bases de datos legales
El precio es sencillo: 2 créditos por minuto de navegador. Los usuarios del plan gratuito disponen de 5 horas de uso sin coste.
En el lanzamiento inicial, permitimos hasta 20 sesiones simultáneas de navegador en todos los planes.
- Crear sesión de navegador
- Ejecutar código en el navegador
- Listar sesiones de navegador
- Eliminar sesión de navegador
¿Tienes comentarios o necesitas ayuda? Escríbenos a [email protected] o contáctanos por Discord.
¿Eres un agente de IA que necesita una clave de API de Firecrawl? Consulta firecrawl.dev/agent-onboarding/SKILL.md para obtener instrucciones de incorporación automatizada.