Esta página apresenta todos os tipos de eventos de webhook que o Firecrawl pode enviar ao seu endpoint. Cada tipo de evento corresponde a uma etapa diferente nas suas operações de scraping.
Todos os eventos de webhook seguem esta estrutura básica:
{
"success": true,
"type": "crawl.page",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [...],
"metadata": {}
}
Campo | Tipo | Descrição |
---|
success | boolean | Indica se a operação foi bem-sucedida |
type | string | Identificador do tipo de evento |
id | string | Identificador único do job |
data | array | Dados específicos do evento (variam conforme o tipo) |
metadata | object | Metadados personalizados da configuração do seu webhook |
error | string | Mensagem de erro (presente quando success é false ) |
Operações de rastreamento de múltiplas páginas que seguem links.
Enviado quando uma operação de rastreamento é iniciada.
{
"success": true,
"type": "crawl.iniciado",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"metadata": {}
}
Enviado para cada página individual extraída durante um rastreamento.
{
"success": true,
"type": "crawl.page",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [
{
"markdown": "# Bem-vindo ao nosso site\n\nEste é o conteúdo principal da página...",
"metadata": {
"title": "Título da página",
"description": "Descrição da página",
"url": "https://example.com/page",
"statusCode": 200,
"contentType": "text/html",
"scrapeId": "550e8400-e29b-41d4-a716-446655440001",
"sourceURL": "https://example.com/page",
"proxyUsed": "basic",
"cacheState": "hit"
"cachedAt": "2025-09-03T21:11:25.636Z",
"creditsUsed": 1
}
}
],
"metadata": {}
}
Este é o evento mais frequente durante as varreduras. Você receberá um evento crawl.page
para cada página extraída com sucesso.
Enviado quando toda a operação de rastreamento é concluída com sucesso.
{
"success": true,
"type": "crawl.completed",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"metadata": {}
}
Eventos de Scrape em Lote
Operações que fazem scraping de várias URLs específicas.
Enviado quando uma operação de raspagem em lote é iniciada.
{
"success": true,
"type": "batch_scrape.started",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"metadata": {}
}
Enviado para cada URL individual processada durante a raspagem em lote.
{
"success": true,
"type": "batch_scrape.page",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [
{
"markdown": "# Página inicial da empresa\n\nBem-vindo ao site da nossa empresa...",
"metadata": {
"title": "Nome da empresa - Página inicial",
"description": "Descrição e visão geral da empresa",
"url": "https://example.com",
"statusCode": 200,
"contentType": "text/html",
"scrapeId": "550e8400-e29b-41d4-a716-446655440001",
"sourceURL": "https://example.com",
"proxyUsed": "basic",
"cacheState": "miss"
"cachedAt": "2025-09-03T23:30:53.434Z",
"creditsUsed": 1
}
}
],
"metadata": {}
}
Este é o evento mais comum durante scrapes em lote. Você receberá um
evento batch_scrape.page
para cada URL extraída com sucesso.
Enviado quando a operação de raspagem em lote é concluída por completo.
{
"success": true,
"type": "batch_scrape.completed",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"metadata": {}
}
Operações de extração de dados impulsionadas por LLM.
Enviado quando uma operação de extração é iniciada.
{
"success": true,
"type": "extract.started",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"metadata": {}
}
Enviado quando uma operação de extração é concluída com sucesso.
{
"success": true,
"type": "extract.completed",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [
{
"success": true,
"data": { "siteName": "Exemplo Site", "category": "Tecnologia" },
"extractId": "550e8400-e29b-41d4-a716-446655440000",
"llmUsage": 0.0020118,
"totalUrlsScraped": 1,
"sources": {
"siteName": ["https://example.com"],
"category": ["https://example.com"]
}
}
],
"metadata": {}
}
Enviado quando uma operação de extração ocorre um erro.
{
"success": false,
"type": "extract.failed",
"id": "550e8400-e29b-41d4-a716-446655440000",
"data": [],
"error": "Falha na extração de dados: tempo limite excedido",
"metadata": {}
}
Você pode controlar quais eventos receber especificando um array events
na configuração do seu webhook:
{
"url": "https://your-app.com/webhook",
"events": ["concluído", "falhou"]
}