Pular para o conteúdo principal
POST
/
scrape
/
{jobId}
/
interact
Interaja com a sessão do navegador associada a um job de scraping
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>"
}
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.

Parâmetros do caminho

ParâmetroTipoObrigatórioDescrição
jobIdstring (UUID)SimO ID do job de scraping em data.metadata.scrapeId na resposta de scraping

Corpo da requisição

ParâmetroTipoObrigatórioPadrãoDescrição
codestringNãoCódigo a ser executado no sandbox do navegador (1–100.000 caracteres). Obrigatório se prompt não estiver definido.
promptstringNãoTarefa em linguagem natural para o agente de IA (1–10.000 caracteres). Obrigatório se code não estiver definido.
languagestringNão"node"Um de "python", "node" ou "bash". Usado apenas com code.
timeoutnumberNão30Tempo limite de execução em segundos (1–300).
originstringNãoRótulo de origem opcional usado para telemetria.

resposta

CampoTipoDescrição
successbooleanIndica se a execução foi concluída sem erros
liveViewUrlstringURL de visualização em tempo real somente leitura da sessão do navegador
interactiveLiveViewUrlstringURL de visualização em tempo real interativa (os usuários podem controlar o navegador)
outputstringResposta final do agente de IA (presente apenas ao usar prompt)
stdoutstringSaída padrão da execução do código
resultstringValor de retorno — valor da última expressão no Node.js, instantâneo final da página para prompt
stderrstringSaída de erro padrão
exitCodenumberCódigo de saída da execução (0 = sucesso)
killedbooleanIndica se a execução foi encerrada devido ao tempo limite
errorstringMensagem de erro (presente apenas em caso de falha)

Exemplo de requisição (Código)

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

Exemplo de resposta (Código)

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

Exemplo de requisição (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
  }'

Exemplo de resposta (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
}

Códigos de erro

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

Autorizações

Authorization
string
header
obrigatório

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

Parâmetros de caminho

jobId
string<uuid>
obrigatório

O ID do job de scraping

Corpo

application/json
code
string
obrigatório

Código a ser executado no sandbox do navegador vinculado ao job de scraping

Required string length: 1 - 100000
language
enum<string>
padrão:node

Linguagem do código a ser executado. Use node para JavaScript ou bash para comandos CLI do agent-browser.

Opções disponíveis:
python,
node,
bash
timeout
integer
padrão:30

Tempo limite de execução em segundos

Intervalo obrigatório: 1 <= x <= 300
origin
string

Rótulo de origem opcional usado para telemetria de execução

Resposta

Código executado com sucesso

success
boolean
stdout
string | null

Saída padrão da execução do código

result
string | null

Saída padrão (alias de stdout)

stderr
string | null

Saída de erro padrão da execução do código

exitCode
integer | null

Código de saída do processo executado

killed
boolean

Se o processo foi encerrado devido ao tempo limite

error
string | null

Mensagem de erro caso o código gere uma exceção