# Interagir avec une page scrapée (/fr/api-reference/endpoint/scrape-execute)

<!-- agent-signals: reading_time_min: 8 · est_tokens: 4079 · updated: 2026-07-30 -->
Related: [Recherche](/fr/api-reference/endpoint/search.md), [Retour sur la recherche](/fr/api-reference/endpoint/search-feedback.md), [Scrape](/fr/api-reference/endpoint/scrape.md), [Scrape par lot](/fr/api-reference/endpoint/batch-scrape.md), [Obtenir l’état d’une extraction par lot](/fr/api-reference/endpoint/batch-scrape-get.md), [Annuler une extraction par lots](/fr/api-reference/endpoint/batch-scrape-delete.md)

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 scraping, 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.

<div id="path-parameters">
  ## Paramètres de chemin [#paramètres-de-chemin]
</div>

| Paramètre | Type          | Requis | Description                                                                        |
| --------- | ------------- | ------ | ---------------------------------------------------------------------------------- |
| `jobId`   | string (UUID) | Oui    | L’ID de tâche de scrape issu de `data.metadata.scrapeId` dans la réponse de scrape |

<div id="request-body">
  ## Corps de la requête [#corps-de-la-requête]
</div>

| Paramètre  | Type   | Obligatoire | Défaut   | Description                                                                                                     |
| ---------- | ------ | ----------- | -------- | --------------------------------------------------------------------------------------------------------------- |
| `code`     | string | Non         | —        | Code à exécuter dans le sandbox du navigateur (1–100 000 caractères). Obligatoire si `prompt` n’est pas défini. |
| `prompt`   | string | Non         | —        | Tâche en langage naturel pour l’agent IA (1–10 000 caractères). Obligatoire si `code` n’est pas défini.         |
| `language` | string | Non         | `"node"` | L’une des valeurs suivantes : `"python"`, `"node"` ou `"bash"`. Utilisé uniquement avec `code`.                 |
| `timeout`  | number | Non         | `30`     | Délai d’expiration de l’exécution, en secondes (1–300).                                                         |
| `origin`   | string | Non         | —        | Libellé d’origine facultatif utilisé pour la télémétrie.                                                        |

<div id="response">
  ## Réponse [#réponse]
</div>

| Champ                    | Type    | Description                                                                                                                                                             |
| ------------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `success`                | boolean | Indique si l’exécution s’est terminée sans erreur                                                                                                                       |
| `cdpUrl`                 | string  | URL WebSocket brute du Chrome DevTools Protocol (CDP) pour la session de navigateur. Connectez-vous directement avec Playwright, Puppeteer ou n’importe quel client CDP |
| `liveViewUrl`            | string  | URL de la vue en direct en lecture seule pour la session de navigateur                                                                                                  |
| `interactiveLiveViewUrl` | string  | URL de la vue en direct interactive (les utilisateurs peuvent contrôler le navigateur)                                                                                  |
| `output`                 | string  | Réponse finale de l’agent IA (présente uniquement lors de l’utilisation de `prompt`)                                                                                    |
| `stdout`                 | string  | Sortie standard de l’exécution du code                                                                                                                                  |
| `result`                 | string  | Valeur de retour — valeur de la dernière expression pour Node.js, instantané final de la page pour `prompt`                                                             |
| `stderr`                 | string  | Sortie d’erreur standard                                                                                                                                                |
| `exitCode`               | number  | Code de sortie de l’exécution (`0` = succès)                                                                                                                            |
| `killed`                 | boolean | Indique si l’exécution a été interrompue en raison d’un délai d’expiration                                                                                              |
| `error`                  | string  | Message d’erreur (présent uniquement en cas d’échec)                                                                                                                    |

<div id="example-request-code">
  ### Exemple de requête (Code) [#exemple-de-requête-code]
</div>

```bash
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
  }'
```

<div id="example-response-code">
  ### Exemple de réponse (code) [#exemple-de-réponse-code]
</div>

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

<div id="example-request-prompt">
  ### Exemple de requête (Prompt) [#exemple-de-requête-prompt]
</div>

```bash
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
  }'
```

<div id="example-response-prompt">
  ### Exemple de réponse (Prompt) [#exemple-de-réponse-prompt]
</div>

```json
{
  "success": true,
  "cdpUrl": "wss://browser.firecrawl.dev/...",
  "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
}
```

<div id="error-codes">
  ### Codes d’erreur [#codes-derreur]
</div>

| État  | Description                                                            |
| ----- | ---------------------------------------------------------------------- |
| `402` | Crédits insuffisants pour une session de navigateur                    |
| `403` | La tâche de scraping appartient à une autre équipe                     |
| `404` | Tâche de scraping introuvable                                          |
| `409` | Contexte de relecture indisponible — relancez le scraping et réessayez |
| `410` | La session de navigateur a déjà été détruite                           |
| `429` | Nombre maximal de sessions de navigateur simultanées atteint           |
| `502` | Échec du service de navigateur ou de l’exécution de l’agent IA         |
| `503` | Fonctionnalité 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](/fr/features/interact).

`POST /scrape/{jobId}/interact`

Interagissez avec la session de navigateur associée à une tâche de scrape

## OpenAPI

```json
{
  "security": [
    {
      "bearerAuth": []
    }
  ],
  "parameters": [
    {
      "description": "L’ID de tâche de scrape",
      "in": "path",
      "name": "jobId",
      "required": true,
      "schema": {
        "format": "uuid",
        "type": "string"
      }
    }
  ],
  "requestBody": {
    "content": {
      "application/json": {
        "schema": {
          "properties": {
            "code": {
              "description": "Code à exécuter dans le sandbox du navigateur lié au scrape",
              "maxLength": 100000,
              "minLength": 1,
              "type": "string"
            },
            "language": {
              "default": "node",
              "description": "Langage du code à exécuter. Utilisez `node` pour JavaScript ou `bash` pour les commandes CLI de agent-browser.",
              "enum": [
                "python",
                "node",
                "bash"
              ],
              "type": "string"
            },
            "origin": {
              "description": "Étiquette d’origine facultative utilisée pour la télémétrie d’exécution",
              "type": "string"
            },
            "timeout": {
              "default": 30,
              "description": "Délai d’expiration de l’exécution, en secondes",
              "maximum": 300,
              "minimum": 1,
              "type": "integer"
            }
          },
          "required": [
            "code"
          ],
          "type": "object"
        }
      }
    },
    "required": true
  },
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "cdpUrl": {
                "description": "URL WebSocket brute du protocole Chrome DevTools (CDP) pour la session de navigateur. Utilisez-la pour vous connecter directement avec Playwright, Puppeteer ou tout autre client CDP.",
                "nullable": true,
                "type": "string"
              },
              "error": {
                "description": "Message d’erreur si le code a déclenché une exception",
                "nullable": true,
                "type": "string"
              },
              "exitCode": {
                "description": "Code de sortie du processus exécuté",
                "nullable": true,
                "type": "integer"
              },
              "interactiveLiveViewUrl": {
                "description": "URL de la vue en direct interactive (les utilisateurs peuvent contrôler le navigateur)",
                "nullable": true,
                "type": "string"
              },
              "killed": {
                "description": "Indique si le processus a été arrêté en raison d’un délai d’expiration",
                "type": "boolean"
              },
              "liveViewUrl": {
                "description": "URL de la vue en direct en lecture seule pour la session de navigateur",
                "nullable": true,
                "type": "string"
              },
              "output": {
                "description": "Réponse finale de l’agent IA (présente uniquement lors de l’utilisation d’un prompt)",
                "nullable": true,
                "type": "string"
              },
              "result": {
                "description": "Sortie standard (alias de stdout)",
                "nullable": true,
                "type": "string"
              },
              "stderr": {
                "description": "Sortie d’erreur standard de l’exécution du code",
                "nullable": true,
                "type": "string"
              },
              "stdout": {
                "description": "Sortie standard de l’exécution du code",
                "nullable": true,
                "type": "string"
              },
              "success": {
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Code exécuté avec succès"
    },
    "400": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Invalid job ID format.",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "ID de tâche non valide"
    },
    "402": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Payment required to access this resource.",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Paiement requis"
    },
    "403": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Forbidden.",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Interdit"
    },
    "404": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Job not found.",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Tâche de scrape introuvable"
    },
    "409": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Replay context is unavailable for this scrape job. Please rerun the scrape.",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Le contexte de rejeu du scrape n’est pas disponible ou la session n’a pas pu être initialisée"
    },
    "410": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Browser session has been destroyed.",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "La session de navigateur du scrape a déjà été détruite"
    },
    "429": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "You have reached the maximum number of active browser sessions.",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Trop de sessions de navigateur actives"
    },
    "502": {
      "content": {
        "application/json": {
          "schema": {
            "properties": {
              "error": {
                "example": "Failed to execute code in browser session.",
                "type": "string"
              },
              "success": {
                "example": false,
                "type": "boolean"
              }
            },
            "type": "object"
          }
        }
      },
      "description": "Échec de la communication avec le service de navigateur"
    }
  }
}
```
