> ## Documentation Index
> Fetch the complete documentation index at: https://firecrawl-docs-remove-capabilities-from-sidebar.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Interagir com uma página extraída

> Execute código ou um prompt de IA na sessão do navegador vinculada a um job de scraping.

Use este endpoint para continuar interagindo com o mesmo estado do navegador iniciado a partir de um scraping anterior. É necessário fornecer `code` ou `prompt` — não ambos.

`POST /v2/scrape/{jobId}/interact` gerencia todo o ciclo de vida:

1. Se ainda não existir uma sessão do navegador para este job de scraping, o Firecrawl cria uma no mesmo estado da página do scraping original.
2. Quando `code` é fornecido, o Firecrawl o executa no sandbox do navegador. Quando `prompt` é fornecido, um agente de IA automatiza a tarefa usando linguagem natural.
3. Chamadas posteriores para `POST /interact` no mesmo `jobId` reutilizam o mesmo estado ativo do navegador.

Quando terminar, chame `DELETE /v2/scrape/{jobId}/interact` para encerrar a sessão.

<div id="path-parameters">
  ## Parâmetros do caminho
</div>

| Parâmetro | Tipo | Obrigatório | Descrição |
| - | - | - | - |
| `jobId` | string (UUID) | Sim | O ID do job de scraping em `data.metadata.scrapeId` na resposta de scraping |

<div id="request-body">
  ## Corpo da requisição
</div>

| Parâmetro | Tipo | Obrigatório | Padrão | Descrição |
| - | - | - | - | - |
| `code` | string | Não | — | Código a ser executado no sandbox do navegador (1–100.000 caracteres). Obrigatório se `prompt` não estiver definido. |
| `prompt` | string | Não | — | Tarefa em linguagem natural para o agente de IA (1–10.000 caracteres). Obrigatório se `code` não estiver definido. |
| `language` | string | Não | `"node"` | Um de `"python"`, `"node"` ou `"bash"`. Usado apenas com `code`. |
| `timeout` | number | Não | `30` | Tempo limite de execução em segundos (1–300). |
| `origin` | string | Não | — | Rótulo de origem opcional usado para telemetria. |

<div id="response">
  ## resposta
</div>

| Campo | Tipo | Descrição |
| - | - | - |
| `success` | boolean | Indica se a execução foi concluída sem erros |
| `cdpUrl` | string | URL WebSocket bruta do Chrome DevTools Protocol (CDP) para a sessão do navegador. Conecte-se diretamente com Playwright, Puppeteer ou qualquer cliente CDP |
| `liveViewUrl` | string | URL de visualização em tempo real somente leitura da sessão do navegador |
| `interactiveLiveViewUrl` | string | URL de visualização em tempo real interativa (os usuários podem controlar o navegador) |
| `output` | string | Resposta final do agente de IA (presente apenas ao usar `prompt`) |
| `stdout` | string | Saída padrão da execução do código |
| `result` | string | Valor de retorno — valor da última expressão no Node.js, instantâneo final da página para `prompt` |
| `stderr` | string | Saída de erro padrão |
| `exitCode` | number | Código de saída da execução (`0` = sucesso) |
| `killed` | boolean | Indica se a execução foi encerrada devido ao tempo limite |
| `error` | string | Mensagem de erro (presente apenas em caso de falha) |

<div id="example-request-code">
  ### Exemplo de requisição (Código)
</div>

```bash theme={null}
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">
  ### Exemplo de resposta (Código)
</div>

```json theme={null}
{
  "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">
  ### Exemplo de requisição (Prompt)
</div>

```bash theme={null}
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">
  ### Exemplo de resposta (Prompt)
</div>

```json theme={null}
{
  "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">
  ### Códigos de erro
</div>

| Status | Descrição |
| - | - |
| `402` | Créditos insuficientes para uma sessão do navegador |
| `403` | O job de scraping pertence a outra equipe |
| `404` | Job de scraping não encontrado |
| `409` | Contexto de replay indisponível — refaça o scraping e tente novamente |
| `410` | A sessão do navegador já foi encerrada |
| `429` | Número máximo de sessões simultâneas do navegador atingido |
| `502` | Falha no serviço de navegador ou na execução do agente de IA |
| `503` | Recurso de navegador não configurado (apenas self-hosted) |

Para detalhes de uso e exemplos, consulte o [guia do recurso Interact](/pt-BR/features/interact).


## OpenAPI

````yaml pt-BR/api-reference/v2-openapi.json POST /scrape/{jobId}/interact
openapi: 3.0.0
info:
  contact:
    email: support@firecrawl.dev
    name: Firecrawl Support
    url: https://firecrawl.dev/support
  description: >-
    API para interagir com os serviços do Firecrawl e executar tarefas de web
    scraping e crawling.
  title: Firecrawl API
  version: v2
servers:
  - url: https://api.firecrawl.dev/v2
security:
  - bearerAuth: []
paths:
  /scrape/{jobId}/interact:
    post:
      tags:
        - Scraping
      summary: Interaja com a sessão do navegador associada a um job de scraping
      operationId: interactWithScrapeBrowserSession
      parameters:
        - description: O ID do job de scraping
          in: path
          name: jobId
          required: true
          schema:
            format: uuid
            type: string
      requestBody:
        content:
          application/json:
            schema:
              properties:
                code:
                  description: >-
                    Código a ser executado no sandbox do navegador vinculado ao
                    job de scraping
                  maxLength: 100000
                  minLength: 1
                  type: string
                language:
                  default: node
                  description: >-
                    Linguagem do código a ser executado. Use `node` para
                    JavaScript ou `bash` para comandos CLI do agent-browser.
                  enum:
                    - python
                    - node
                    - bash
                  type: string
                origin:
                  description: Rótulo de origem opcional usado para telemetria de execução
                  type: string
                timeout:
                  default: 30
                  description: Tempo limite de execução em segundos
                  maximum: 300
                  minimum: 1
                  type: integer
              required:
                - code
              type: object
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  cdpUrl:
                    description: >-
                      URL bruta de WebSocket do Chrome DevTools Protocol (CDP)
                      da sessão do navegador. Use-a para se conectar diretamente
                      com Playwright, Puppeteer ou qualquer cliente CDP.
                    nullable: true
                    type: string
                  error:
                    description: Mensagem de erro caso o código gere uma exceção
                    nullable: true
                    type: string
                  exitCode:
                    description: Código de saída do processo executado
                    nullable: true
                    type: integer
                  interactiveLiveViewUrl:
                    description: >-
                      URL da visualização em tempo real interativa (os usuários
                      podem controlar o navegador)
                    nullable: true
                    type: string
                  killed:
                    description: Se o processo foi encerrado devido ao tempo limite
                    type: boolean
                  liveViewUrl:
                    description: >-
                      URL da visualização em tempo real somente leitura da
                      sessão do navegador
                    nullable: true
                    type: string
                  output:
                    description: >-
                      Resposta final do agente de IA (presente apenas ao usar um
                      prompt)
                    nullable: true
                    type: string
                  result:
                    description: Saída padrão (alias de stdout)
                    nullable: true
                    type: string
                  stderr:
                    description: Saída de erro padrão da execução do código
                    nullable: true
                    type: string
                  stdout:
                    description: Saída padrão da execução do código
                    nullable: true
                    type: string
                  success:
                    type: boolean
                type: object
          description: Código executado com sucesso
        '400':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: Invalid job ID format.
                    type: string
                  success:
                    example: false
                    type: boolean
                type: object
          description: ID do job inválido
        '402':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: Payment required to access this resource.
                    type: string
                  success:
                    example: false
                    type: boolean
                type: object
          description: Pagamento necessário
        '403':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: Forbidden.
                    type: string
                  success:
                    example: false
                    type: boolean
                type: object
          description: Proibido
        '404':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: Job not found.
                    type: string
                  success:
                    example: false
                    type: boolean
                type: object
          description: Job de scraping não encontrado
        '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: >-
            O contexto de replay do scraping não está disponível ou a sessão não
            pôde ser inicializada
        '410':
          content:
            application/json:
              schema:
                properties:
                  error:
                    example: Browser session has been destroyed.
                    type: string
                  success:
                    example: false
                    type: boolean
                type: object
          description: A sessão do navegador do job de scraping já foi encerrada
        '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: Há muitas sessões ativas do navegador
        '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: Falha ao se comunicar com o serviço do navegador
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      scheme: bearer
      type: http

````