- Gestiona la complejidad: proxies, caching, límites de tasa y contenido bloqueado por JS
- Maneja contenido dinámico: sitios web dinámicos, sitios renderizados con JS, PDF e imágenes
- Genera markdown limpio, datos estructurados, capturas de pantalla o html.
Pruébalo en el Playground
Prueba el scraping en el playground interactivo, sin necesidad de escribir código.
Si una solicitud falla, consulta Errores para ver el catálogo completo de códigos de error, causas, soluciones y recomendaciones sobre reintentos.
Extraer datos de una URL con Firecrawl
punto de conexión /scrape
Instalación
Uso
Cada scrape consume 1 crédito. Se aplican créditos adicionales para ciertas opciones: el modo JSON cuesta 4 créditos adicionales por página, los formatos de question y highlights cuestan 4 créditos adicionales por página por formato, el proxy mejorado cuesta 4 créditos adicionales por página, la redacción de PII cuesta 4 créditos adicionales por página, el procesamiento de PDF cuesta 1 crédito por página de PDF y la extracción de audio o video cuesta 4 créditos adicionales por página.
Respuesta
Formatos de scraping
- Markdown (
markdown) - Resumen (
summary) - HTML (
html) - versión limpia del HTML de la página - HTML sin procesar (
rawHtml) - HTML sin modificar tal como se recibe de la página - Captura de pantalla (
screenshot, con opciones comofullPage,quality,viewport) — las URL de las capturas de pantalla caducan después de 24 horas - Enlaces (
links) - JSON (
json) - salida estructurada - Imágenes (
images) - extrae todas las URL de imágenes de la página - Branding (
branding) - extrae la identidad de marca y el sistema de diseño - Producto (
product) - extrae un producto estructurado (título, precio, disponibilidad y variantes) de las páginas de producto - Audio (
audio) - extrae audio MP3 de URL de vídeo compatibles, p. ej., YouTube (devuelve una URL firmada de GCS, caduca después de 1 hora) - Vídeo (
video) - extrae vídeo de la mejor calidad de URL de vídeo compatibles, p. ej., YouTube (devuelve una URL firmada de GCS, caduca después de 1 hora) - Query (
query, conpromptymodeopcional) - haz una pregunta en lenguaje natural sobre la página; la respuesta se devuelve en el campoanswer
Extrae datos estructurados
punto de conexión /scrape (con json)
JSON
Extracción sin esquema
prompt al punto de conexión. El LLM elige la estructura de los datos.
JSON
Opciones del formato JSON
json, pasa un objeto dentro de formats con los siguientes parámetros:
schema: JSON Schema para la salida estructurada.prompt: Prompt opcional para ayudar a guiar la extracción cuando hay un esquema o cuando prefieras una guía ligera.
Extraer la identidad de la marca
endpoint /scrape (con branding)
Respuesta
El formato de marca devuelve un objetoBrandingProfile completo con la siguiente estructura:
Output
Estructura del perfil de marca
branding contiene las siguientes propiedades:
colorScheme: El esquema de color detectado (“light” o “dark”)logo: URL del logotipo principalcolors: Objeto que contiene los colores de la marca:primary,secondary,accent: Colores principales de la marcabackground,textPrimary,textSecondary: Colores de la interfazlink,success,warning,error: Colores semánticos
fonts: Lista de familias tipográficas usadas en la páginatypography: Información tipográfica detallada:fontFamilies: Familias tipográficas principal, de encabezados y de códigofontSizes: Definiciones de tamaños para encabezados y cuerpo de textofontWeights: Definiciones de grosor (light, regular, medium, bold)lineHeights: Valores de interlineado para distintos tipos de texto
spacing: Información de espaciado y maquetación:baseUnit: Unidad base de espaciado en píxelesborderRadius: Radio de borde predeterminadopadding,margins: Valores de espaciado
components: Estilos de componentes de la interfaz:buttonPrimary,buttonSecondary: Estilos de botonesinput: Estilos de campos de entrada
icons: Información sobre el estilo de los íconosimages: Imágenes de marca (logo, favicon, og:image)animations: Configuración de animaciones y transicioneslayout: Configuración de distribución (grid, alturas de encabezado/pie)personality: Rasgos de personalidad de la marca (tono, energía, público objetivo)
Combinar con otros formatos
Extraer datos de productos
product extrae un producto estructurado de forma determinista: el mismo tipo de salida estructurada que el formato json, pero sin una llamada a un LLM ni un esquema definido por ti, y diseñado específicamente para páginas de producto. Si has estado extrayendo campos de producto con un esquema json, usa formats: ["product"] en su lugar: es más rápido y más barato, aunque se limita a productos.
Devuelve un objeto product con título, marca, categoría, descripción y variantes, donde cada variante incluye precio, precio original, disponibilidad e imágenes; útil para el seguimiento de precios, la ingesta de catálogos o las herramientas de comparación de precios.
punto de conexión /scrape (con producto)
Respuesta
El formatoproduct devuelve un objeto product con la siguiente estructura:
Output
Estructura del objeto product
product contiene las siguientes propiedades:
title: El nombre del productobrand: La marca del producto (opcional)category: La categoría del producto (opcional)url: La URL canónica del productodescription: La descripción del producto (opcional)variants: array de variantes del producto. El precio, la disponibilidad y las imágenes se encuentran en cada variante; un producto con un solo SKU sigue devolviendo exactamente una variante que contiene estos datos. Cada variante tiene:id,sku,title: identificadores y nombre de la variante (todos opcionales)values: un mapa del nombre de la opción a su valor, p. ej.,{ "color": "Charcoal" }(opcional)price: el objeto del precio actual (opcional):amount: El valor numérico del preciocurrency: El código de moneda, solo se informa cuando la página lo proporciona (opcional)formatted: El precio tal como se muestra en la página (opcional)
sale: presente solo cuando la variante tiene descuento (opcional). Contiene:originalPrice: El precio original (antes del descuento), con la misma estructura queprice
availability: información de disponibilidad, siempre presente en una variante:inStock: Si la variante está en stocktext: El texto de disponibilidad sin procesar de la página (opcional)
images: array de imágenes de la variante, cada una con unaurly textoaltopcional (opcional)
Cómo funciona la extracción de productos
__NEXT_DATA__/Nuxt/Apollo/Redux/Remix) > runParams de AliExpress > dataLayer de GA4 > OpenGraph/<meta>. La combinación tiene en cuenta la identidad, por lo que nunca se mezclan campos de productos distintos. La moneda solo se informa cuando aparece en las fuentes de la página.
La extracción de productos funciona en modo fail-closed: las páginas ambiguas no devuelven ningún producto, y las fuentes menos fiables, como OpenGraph, solo contribuyen cuando hay un precio presente. En una página sin un producto extraíble, la respuesta omite el objeto
product y añade una advertencia (warning) (por ejemplo, “No product found…”).Alojamiento propio: el formato
product depende de un servicio dedicado de extracción de productos. En Firecrawl Cloud funciona de inmediato. Si haces self-hosting, configura PRODUCT_EXTRACTION_SERVICE_URL para que apunte a ese servicio; si no está definida, solicitar el formato product devuelve una advertencia y ningún producto (el mismo patrón que usan los formatos de audio/video para su servicio).Combinación con otros formatos
Puedes combinar el formato de producto con otros formatos para obtener datos completos de la página:Extracción de audio
audio extrae el audio de sitios web compatibles (p. ej., YouTube) como archivos MP3 y devuelve una URL firmada de Google Cloud Storage. Esto es útil para crear flujos de procesamiento de audio, servicios de transcripción o herramientas para pódcasts.
La extracción de audio cuesta 5 créditos por página (1 base + 4 adicionales).
Extracción de video
video extrae el video con la mejor calidad de sitios web compatibles (p. ej., YouTube) y devuelve una URL firmada de Google Cloud Storage. Esto resulta útil para crear pipelines de procesamiento de video, herramientas de moderación o flujos de trabajo de archivado de contenido multimedia.
La extracción de video cuesta 5 créditos por página (1 base + 4 adicionales).
Formato de pregunta
question para hacer una pregunta en lenguaje natural sobre la página. Firecrawl devuelve la respuesta en el campo answer de la respuesta.
El formato
question cuesta 5 créditos por página (1 base + 4 adicionales por la llamada al LLM).question(obligatorio paratype: "question"): la pregunta que se debe responder. Máximo: 10.000 caracteres.
question con otros formatos; por ejemplo, solicita markdown y question a la vez para obtener el contenido de la página y una respuesta en una sola llamada.
question también está disponible en /search mediante scrapeOptions, que ejecuta la misma extracción en cada resultado de búsqueda.
Formato highlights
highlights para encontrar texto fuente relevante en la página. Firecrawl devuelve el texto seleccionado en el campo highlights de la respuesta.
El formato
highlights cuesta 5 créditos por página (1 base + 4 adicionales por la llamada al LLM).query(obligatorio paratype: "highlights"): la solicitud para seleccionar texto fuente. Máximo 10.000 caracteres.
highlights con otros formatos; por ejemplo, solicita markdown y highlights juntos para obtener el contenido de la página y el texto fuente en una sola llamada.
highlights también está disponible en /search mediante scrapeOptions, que ejecuta la misma extracción en cada resultado de búsqueda.
Ocultación de PII
redactPII: true para ocultar la información de identificación personal del markdown devuelto. El campo markdown contiene el resultado con la información ocultada.
Consulta Ocultación de PII para ver ejemplos de SDK, cURL, CLI y MCP.
Interacción con la página mediante acciones
wait antes y/o después de ejecutar otras acciones para dar tiempo suficiente a que la página cargue.
Ejemplo
Salida
Ubicación e idioma
Cómo funciona
Uso
location en el cuerpo de la solicitud con las siguientes propiedades:
country: código de país ISO 3166-1 alfa-2 (p. ej., ‘US’, ‘AU’, ‘DE’, ‘JP’). Por defecto: ‘US’.languages: una lista de idiomas y configuraciones regionales preferidas para la solicitud en orden de prioridad. Por defecto, usa el idioma de la ubicación especificada.
Caché y maxAge
- Ventana de frescura predeterminada:
maxAge = 172800000ms (2 días). Si la copia en caché es más reciente que esto, se devuelve al instante; de lo contrario, la página se vuelve a extraer y luego se almacena en caché. - Rendimiento: Esto puede acelerar las extracciones hasta 5× cuando los datos no necesitan estar ultra frescos.
- Obtener siempre contenido fresco: Establece
maxAgeen0. Ten en cuenta que esto evita el uso de la caché por completo, por lo que cada solicitud recorre todo el pipeline de scraping, lo que significa que la solicitud tardará más en completarse y es más probable que falle. Utiliza unmaxAgedistinto de cero si la frescura en cada solicitud no es crítica. - Evitar almacenamiento: Establece
storeInCacheenfalsesi no quieres que Firecrawl almacene/guarde los resultados de esta solicitud en la caché. - Consulta solo en caché: Establece
minAgepara realizar una consulta solo en caché sin activar una nueva extracción. El valor está en milisegundos y especifica la antigüedad mínima que deben tener los datos en caché. Si no se encuentran datos en caché, se devuelve un404con el código de errorSCRAPE_NO_CACHED_DATA. EstableceminAgeen1para aceptar cualquier dato en caché independientemente de su antigüedad. - Seguimiento de cambios: Las solicitudes que incluyen
changeTrackingomiten la caché, por lo que se ignoramaxAge. - Créditos: Los resultados en caché siguen costando 1 crédito por página. El almacenamiento en caché mejora la velocidad, no el consumo de créditos.
Raspado por lotes de múltiples URL
Cómo funciona
/crawl. Envía un trabajo de scraping por lotes y devuelve un ID de trabajo para consultar el estado del scraping por lotes.
El SDK ofrece 2 métodos: sincrónico y asincrónico. El método sincrónico devuelve los resultados del trabajo de scraping por lotes, mientras que el asincrónico devuelve un ID de trabajo que puedes usar para consultar el estado del scraping por lotes.
Uso
Respuesta
Sincronía
Completado
Asíncrono
/batch/scrape/{id}. Este punto de conexión está pensado para usarse mientras el trabajo sigue en ejecución o justo después de que haya finalizado, ya que los trabajos de scrape por lotes expiran a las 24 horas.
Modo mejorado
Retención cero de datos (ZDR)
zeroDataRetention: true en tu solicitud:
cURL
Las capturas de pantalla no están disponibles en el modo ZDR. Como requieren cargarse en almacenamiento persistente, son incompatibles con la garantía de ZDR. Las solicitudes que incluyan tanto
zeroDataRetention: true como un formato screenshot devolverán un error.¿Eres un agente de IA que necesita una clave de API de Firecrawl? Consulta firecrawl.dev/agent-onboarding/SKILL.md para ver las instrucciones de incorporación automatizada.

