Passer au contenu principal
Le bac à sable de navigateur Firecrawl offre à vos agents un environnement de navigateur sécurisé où ils peuvent interagir avec le web. Remplissez des formulaires, cliquez sur des boutons, authentifiez-vous, et plus encore. Aucune configuration locale, aucune installation de Chromium, aucun problème de compatibilité de driver. agent-browser et Playwright sont préinstallés. Disponible via l’API, la CLI (Bash / agent-browser, Python, Node), le SDK Node, le SDK Python, le Vercel AI SDK et le serveur MCP. Pour ajouter la prise en charge du navigateur à un agent de codage IA (Claude Code, Codex, Open Code, Cursor, etc.), installez la compétence Firecrawl :
npx -y firecrawl-cli@latest init --all --browser
Chaque session s’exécute dans un bac à sable isolé, jetable ou persistant, qui passe à l’échelle sans avoir à gérer d’infrastructure.

Démarrage rapide

Créez une session, exécutez du code, puis fermez-la :
// npm install @mendable/firecrawl-js
import Firecrawl from '@mendable/firecrawl-js';

const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

// 1. Lancer une 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);
  • Aucune installation de driver requise — Pas de binaire Chromium, pas de playwright install, pas de problèmes de compatibilité de driver
  • Python, JavaScript & Bash — Envoyez du code via l’API, la CLI ou le SDK et récupérez les résultats. Les trois langages s’exécutent à distance dans la sandbox
  • agent-browser — CLI préinstallée avec plus de 40 commandes. Les agents d’IA écrivent de simples commandes bash au lieu de code Playwright
  • Playwright préinstallé — Playwright est déjà disponible dans la sandbox. Les agents peuvent écrire du code Playwright s’ils le préfèrent.
  • Accès CDP — Connectez votre propre instance Playwright via WebSocket lorsque vous avez besoin d’un contrôle total
  • Vue en direct — Suivez les sessions en temps réel via une URL de flux intégrable
  • Vue en direct interactive — Permettez aux utilisateurs d’interagir directement avec le navigateur via un flux en direct interactif intégrable

Lancer une session

Retourne un ID de session, une URL CDP et une URL de visualisation en direct.
import Firecrawl from '@mendable/firecrawl-js';

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/...
Response
{
  "success": true,
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "cdpUrl": "wss://cdp-proxy.firecrawl.dev/cdp/550e8400-e29b-41d4-a716-446655440000",
  "liveViewUrl": "https://liveview.firecrawl.dev/550e8400-e29b-41d4-a716-446655440000",
  "interactiveLiveViewUrl": "https://liveview.firecrawl.dev/550e8400-e29b-41d4-a716-446655440000?interactive=true"
}

Exécuter le code

import Firecrawl from '@mendable/firecrawl-js';

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);
Response
{
  "success": true,
  "result": "Example Domain"
}

Gestion des téléchargements de fichiers

Les fichiers téléchargés au cours d’une session peuvent être capturés et renvoyés en base64. Utilisez l’API de téléchargement de Playwright via le point de terminaison execute :
import base64

async with page.expect_download() as download_info:
    await page.click('a#download-link')  # Cliquez sur l'élément qui déclenche le téléchargement

download = download_info.value
path = await download.path()

# Facultatif : enregistrer le fichier à un emplacement connu
# await download.save_as('/tmp/myfile.pdf')

# Lire le contenu du fichier et l'afficher en base64
with open(path, "rb") as f:
    content = base64.b64encode(f.read()).decode()
    print(content)
Le système de fichiers du bac à sable est éphémère : les fichiers téléchargés sont perdus à la fin de la session. Pour les conserver, lisez leur contenu pendant la session et enregistrez-le dans votre propre espace de stockage. Les profils persistants conservent l’état du navigateur (cookies, localStorage), mais pas les fichiers sur le disque.

agent-browser (Mode Bash)

agent-browser est une CLI de navigateur headless préinstallée dans chaque sandbox. Au lieu d’écrire du code Playwright, les agents envoient de simples commandes Bash. La CLI injecte automatiquement --cdp pour permettre à agent-browser de se connecter à votre session active.

Raccourci

La méthode la plus rapide pour utiliser browser. Le raccourci et execute envoient tous les deux des commandes à agent-browser automatiquement. Le raccourci se contente d’omettre execute et de lancer automatiquement une session si nécessaire :
firecrawl browser "open https://example.com"
firecrawl browser "snapshot"
firecrawl browser "click @e5"

CLI

La forme explicite utilise execute. Les commandes sont envoyées automatiquement à agent-browser : vous n’avez pas besoin de saisir agent-browser ni d’utiliser --bash :
firecrawl browser execute "open https://example.com"
firecrawl browser execute "snapshot"

API & SDK

Utilisez language: "bash" pour exécuter des commandes agent-browser via l’API ou les SDK :
curl -X POST "https://api.firecrawl.dev/v2/browser/YOUR_SESSION_ID/execute" \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "agent-browser snapshot",
    "language": "bash"
  }'

Gestion des sessions

Sessions persistantes

Par défaut, chaque session de navigateur démarre dans un état vierge. Avec profile, vous pouvez enregistrer et réutiliser l’état du navigateur entre les sessions. C’est utile pour rester connecté et conserver les préférences. Pour enregistrer ou sélectionner un profil, utilisez le paramètre profile lors de la création d’une session.
const session = await firecrawl.browser({
  ttl: 600,
  profile: {
    name: "my-profile",
    saveChanges: true,
  },
});
ParamètreValeur par défautDescription
nameUn nom pour le profil persistant. Les sessions portant le même nom partagent le stockage.
saveChangestrueLorsque true, l’état du navigateur est enregistré dans le profil à la clôture. Définissez false pour charger les données existantes sans écrire — utile lorsque vous avez besoin de plusieurs lecteurs simultanés.
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.
L’état de la session du navigateur n’est enregistré qu’une fois la session close. Nous vous recommandons donc de clore la session du navigateur lorsque vous avez terminé afin qu’elle puisse être réutilisée. Une fois une session close, son ID de session n’est plus valide — vous ne pouvez pas le réutiliser. Créez plutôt une nouvelle session avec le même nom de profil et utilisez le nouvel ID de session renvoyé dans la réponse. Pour l’enregistrer et la clore :
import Firecrawl from '@mendable/firecrawl-js';

const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

await firecrawl.deleteBrowser("YOUR_SESSION_ID");

Lister les sessions

import Firecrawl from '@mendable/firecrawl-js';

const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

const { sessions } = await firecrawl.listBrowsers();
console.log(sessions);

// Filtrer par statut
const { sessions: active } = await firecrawl.listBrowsers({ status: "active" });
console.log(active);
Response
{
  "success": true,
  "sessions": [
    {
      "id": "550e8400-e29b-41d4-a716-446655440000",
      "status": "active",
      "cdpUrl": "wss://cdp-proxy.firecrawl.dev/cdp/550e8400-e29b-41d4-a716-446655440000",
      "liveViewUrl": "https://liveview.firecrawl.dev/550e8400-e29b-41d4-a716-446655440000",
      "interactiveLiveViewUrl": "https://liveview.firecrawl.dev/550e8400-e29b-41d4-a716-446655440000?interactive=true",
      "createdAt": "2025-01-15T10:30:00Z",
      "lastActivity": "2025-01-15T10:35:00Z"
    }
  ]
}

Configuration du TTL

Les sessions ont deux paramètres de TTL :
ParamètreValeur par défautDescription
ttl600s (10 min)Durée de vie maximale de la session (30-3600s)
activityTtl300s (5 min)Fermeture automatique après inactivité (10-3600s)

Clore une session

import Firecrawl from '@mendable/firecrawl-js';

const firecrawl = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

await firecrawl.deleteBrowser("YOUR_SESSION_ID");

Vue en direct

Chaque session renvoie un liveViewUrl dans la réponse, que vous pouvez intégrer pour observer le navigateur en temps réel. Pratique pour le débogage, les démonstrations ou la création d’interfaces utilisateur pilotées par le navigateur.
Response
{
  "success": true,
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "cdpUrl": "wss://cdp-proxy.firecrawl.dev/cdp/550e8400-...",
  "liveViewUrl": "https://liveview.firecrawl.dev/550e8400-...",
  "interactiveLiveViewUrl": "https://liveview.firecrawl.dev/550e8400-...?interactive=true"
}
<iframe src="LIVE_VIEW_URL" width="100%" height="600" />

Vue en direct interactive

La réponse inclut également un interactiveLiveViewUrl. 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 avec la session de navigation directement via le flux intégré. C’est utile pour créer des interfaces de navigateur destinées aux utilisateurs finaux, pour le débogage collaboratif, ou pour tout scénario où la personne qui consulte la session doit contrôler le navigateur.
<iframe src="INTERACTIVE_LIVE_VIEW_URL" width="100%" height="600" />

Connexion via CDP

Chaque session expose une URL WebSocket CDP. L’API execute et l’option --bash couvrent la plupart des cas d’utilisation, mais si vous avez besoin d’un contrôle complet en local, vous pouvez vous connecter directement.
import Firecrawl from '@mendable/firecrawl-js';
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);

Quand utiliser Browser

Cas d’usageOutil adapté
Extraire le contenu d’une URL connueScrape
Rechercher sur le Web et obtenir des résultatsSearch
Naviguer dans la pagination, remplir des formulaires, cliquer au fil des parcoursBrowser
Workflows multi-étapes avec interactionBrowser
Navigation en parallèle sur de nombreux sitesBrowser (chaque session est isolée)

Cas d’utilisation

  • Veille concurrentielle - Parcourir les sites concurrents, naviguer dans les formulaires et filtres de recherche, extraire les tarifs et les fonctionnalités sous forme de données structurées
  • Ingestion de base de connaissances - Naviguer dans les centres d’aide, la documentation et les portails d’assistance qui nécessitent des clics, de la pagination ou une authentification
  • Études de marché - Lancer des sessions de navigation parallèles pour constituer des jeux de données à partir de sites d’offres d’emploi, d’annonces immobilières ou de bases de données juridiques

Tarification

Tarification simple : 2 crédits par minute de navigateur. Les utilisateurs du plan gratuit disposent de 5 heures d’utilisation offertes.

Limites de débit

Pour le lancement initial, nous autorisons jusqu’à 20 sessions de navigateur concurrentes pour tous les plans.

Référence de l’API


Vous avez des retours ou besoin d’aide ? Envoyez-nous un e-mail à help@firecrawl.com ou contactez-nous sur Discord.