Passer au contenu principal
POST
/
scrape
/
{jobId}
/
interact
Interagissez avec la session de navigateur associée à une tâche de scrape
curl --request POST \
  --url https://api.firecrawl.dev/v2/scrape/{jobId}/interact \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "code": "<string>",
  "language": "node",
  "timeout": 30,
  "origin": "<string>"
}
'
{
  "success": true,
  "stdout": "<string>",
  "result": "<string>",
  "stderr": "<string>",
  "exitCode": 123,
  "killed": true,
  "error": "<string>"
}
Utilisez ce point de terminaison pour continuer à interagir avec le même état de navigateur initialisé à partir d’un scrape précédent. Vous devez fournir soit code, soit prompt — pas les deux. POST /v2/scrape/{jobId}/interact gère l’ensemble du cycle de vie :
  1. Si aucune session de navigateur n’existe encore pour cette tâche de scrape, Firecrawl en crée une dans le même état de page que le scrape d’origine.
  2. Lorsque code est fourni, Firecrawl l’exécute dans le sandbox du navigateur. Lorsque prompt est fourni, un agent IA automatise la tâche en langage naturel.
  3. Les appels ultérieurs à POST /interact sur le même jobId réutilisent le même état actif du navigateur.
Lorsque vous avez terminé, appelez DELETE /v2/scrape/{jobId}/interact pour arrêter la session.

Paramètres de chemin

ParamètreTypeRequisDescription
jobIdstring (UUID)OuiL’ID de tâche de scrape issu de data.metadata.scrapeId dans la réponse de scrape

Corps de la requête

ParamètreTypeObligatoireDéfautDescription
codestringNonCode à exécuter dans le sandbox du navigateur (1–100 000 caractères). Obligatoire si prompt n’est pas défini.
promptstringNonTâche en langage naturel pour l’agent IA (1–10 000 caractères). Obligatoire si code n’est pas défini.
languagestringNon"node"L’une des valeurs suivantes : "python", "node" ou "bash". Utilisé uniquement avec code.
timeoutnumberNon30Délai d’expiration de l’exécution, en secondes (1–300).
originstringNonLibellé d’origine facultatif utilisé pour la télémétrie.

Réponse

ChampTypeDescription
successbooleanIndique si l’exécution s’est terminée sans erreur
liveViewUrlstringURL de la vue en direct en lecture seule pour la session de navigateur
interactiveLiveViewUrlstringURL de la vue en direct interactive (les utilisateurs peuvent contrôler le navigateur)
outputstringRéponse finale de l’agent IA (présente uniquement lors de l’utilisation de prompt)
stdoutstringSortie standard de l’exécution du code
resultstringValeur de retour — valeur de la dernière expression pour Node.js, instantané final de la page pour prompt
stderrstringSortie d’erreur standard
exitCodenumberCode de sortie de l’exécution (0 = succès)
killedbooleanIndique si l’exécution a été interrompue en raison d’un délai d’expiration
errorstringMessage d’erreur (présent uniquement en cas d’échec)

Exemple de requête (Code)

curl -X POST "https://api.firecrawl.dev/v2/scrape/550e8400-e29b-41d4-a716-446655440000/interact" \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "code": "const title = await page.title(); JSON.stringify({ title });",
    "language": "node",
    "timeout": 30
  }'

Exemple de réponse (code)

{
  "success": true,
  "liveViewUrl": "https://liveview.firecrawl.dev/...",
  "interactiveLiveViewUrl": "https://liveview.firecrawl.dev/...",
  "stdout": "",
  "result": "{\"title\":\"Example Domain\"}",
  "stderr": "",
  "exitCode": 0,
  "killed": false
}

Exemple de requête (Prompt)

curl -X POST "https://api.firecrawl.dev/v2/scrape/550e8400-e29b-41d4-a716-446655440000/interact" \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "Find the pricing section and tell me the price of the Pro plan",
    "timeout": 60
  }'

Exemple de réponse (Prompt)

{
  "success": true,
  "liveViewUrl": "https://liveview.firecrawl.dev/...",
  "interactiveLiveViewUrl": "https://liveview.firecrawl.dev/...",
  "output": "The Pro plan costs $49/month and includes unlimited scrapes, priority support, and custom integrations.",
  "stdout": "...",
  "result": "...",
  "stderr": "",
  "exitCode": 0,
  "killed": false
}

Codes d’erreur

ÉtatDescription
402Crédits insuffisants pour une session de navigateur
403La tâche de scraping appartient à une autre équipe
404Tâche de scraping introuvable
409Contexte de relecture indisponible — relancez le scraping et réessayez
410La session de navigateur a déjà été détruite
429Nombre maximal de sessions de navigateur simultanées atteint
502Échec du service de navigateur ou de l’exécution de l’agent IA
503Fonctionnalité de navigateur non configurée (auto-hébergé uniquement)
Pour des informations d’utilisation détaillées avec des exemples, consultez le guide de la fonctionnalité Interact.

Autorisations

Authorization
string
header
requis

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Paramètres de chemin

jobId
string<uuid>
requis

L’ID de tâche de scrape

Corps

application/json
code
string
requis

Code à exécuter dans le sandbox du navigateur lié au scrape

Required string length: 1 - 100000
language
enum<string>
défaut:node

Langage du code à exécuter. Utilisez node pour JavaScript ou bash pour les commandes CLI de agent-browser.

Options disponibles:
python,
node,
bash
timeout
integer
défaut:30

Délai d’expiration de l’exécution, en secondes

Plage requise: 1 <= x <= 300
origin
string

Étiquette d’origine facultative utilisée pour la télémétrie d’exécution

Réponse

Code exécuté avec succès

success
boolean
stdout
string | null

Sortie standard de l’exécution du code

result
string | null

Sortie standard (alias de stdout)

stderr
string | null

Sortie d’erreur standard de l’exécution du code

exitCode
integer | null

Code de sortie du processus exécuté

killed
boolean

Indique si le processus a été arrêté en raison d’un délai d’expiration

error
string | null

Message d’erreur si le code a déclenché une exception