Saltar al contenido principal
Hero claro

Bienvenido a Firecrawl

Firecrawl es un servicio de API que toma una URL, la rastrea y la convierte en Markdown limpio. Rastreamos todas las subpáginas accesibles y te entregamos Markdown limpio para cada una. No se requiere sitemap.

¿Cómo usarlo?

Ofrecemos una API fácil de usar con nuestra versión alojada. Puedes encontrar el playground y la documentación aquí. También puedes alojar el backend por tu cuenta si lo prefieres. Consulta los siguientes recursos para empezar: ¿Quieres un SDK o una integración? Cuéntanos abriendo un issue.

Clave de API

Para usar la API, debes registrarte en Firecrawl y obtener una clave de API.

Funcionalidades

  • Scrape: extrae una URL y obtiene su contenido en un formato listo para LLM (Markdown, resumen, datos estructurados mediante modo JSON, captura de pantalla, HTML)
  • Crawl: extrae todas las URL de una página web y devuelve el contenido en un formato listo para LLM
  • Map: ingresa un sitio web y obtén todas las URL del sitio: extremadamente rápido
  • Search: busca en la web y obtén el contenido completo de los resultados
  • Extract: obtén datos estructurados de una sola página, múltiples páginas o sitios completos con IA.

Capacidades avanzadas

  • Formatos listos para LLM: Markdown, resumen, datos estructurados, captura de pantalla, HTML, enlaces, metadatos
  • Lo complejo: proxies, mecanismos antibot, contenido dinámico (renderizado con JS), análisis del resultado, orquestación
  • Ultrarrápido: Obtén resultados en segundos—diseñado para la velocidad y casos de uso de alto rendimiento.
  • Personalización: excluir etiquetas, rastrear detrás de muros de autenticación con encabezados personalizados, profundidad máxima de rastreo, etc.
  • Análisis de medios: PDF, DOCX, imágenes.
  • Fiabilidad ante todo: diseñado para obtener los datos que necesitas, por difícil que sea.
  • Acciones: hacer clic, desplazarse, introducir datos, esperar y más antes de extraer datos
Puedes encontrar todas las capacidades de Firecrawl y cómo usarlas en nuestra documentación

Instalación de Firecrawl

# pip install firecrawl-py

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-TU-API-KEY")

Scraping

Para hacer scraping de una única URL, usa el método scrape. Recibe la URL como parámetro y devuelve los datos obtenidos como un diccionario.
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

# Extraer datos de un sitio web:
doc = firecrawl.scrape("https://firecrawl.dev", formats=["markdown", "html"])
print(doc)

Respuesta

Los SDK devolverán el objeto de datos directamente. cURL devolverá la carga útil exactamente como se muestra a continuación.
{
  "success": true,
  "data" : {
    "markdown": "¡Launch Week I ya está aquí! [Consulta nuestro lanzamiento del Día 2 🚀](https://www.firecrawl.dev/blog/launch-week-i-day-2-doubled-rate-limits)[💥 Obtén 2 meses gratis...",
    "html": "<!DOCTYPE html><html lang=\"en\" class=\"light\" style=\"color-scheme: light;\"><body class=\"__variable_36bd41 __variable_d7dc5d font-inter ...",
    "metadata": {
      "title": "Inicio - Firecrawl",
      "description": "Firecrawl rastrea y convierte cualquier sitio web en Markdown limpio.",
      "language": "en",
      "keywords": "Firecrawl,Markdown,Data,Mendable,Langchain",
      "robots": "seguir, indexar",
      "ogTitle": "Firecrawl",
      "ogDescription": "Convierte cualquier sitio web en datos listos para LLM.",
      "ogUrl": "https://www.firecrawl.dev/",
      "ogImage": "https://www.firecrawl.dev/og.png?123",
      "ogLocaleAlternate": [],
      "ogSiteName": "Firecrawl",
      "sourceURL": "https://firecrawl.dev",
      "statusCode": 200
    }
  }
}

Rastreo

La función de rastreo te permite descubrir y extraer automáticamente contenido de una URL y todas sus subpáginas accesibles. Con nuestros SDKs, simplemente llama al método crawl: enviará un trabajo de rastreo, esperará a que finalice y devolverá los resultados completos de todo el sitio.

Uso

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-TU-API-KEY")

docs = firecrawl.crawl(url="https://docs.firecrawl.dev", limit=10)
print(docs)
Si usas nuestra API directamente, cURL o las funciones start crawl en los SDK, se devolverá un ID que podrás usar para verificar el estado del rastreo.
{
  "success": true,
  "id": "123-456-789",
  "url": "https://api.firecrawl.dev/v2/crawl/123-456-789"
}

Consultar el estado del rastreo

Sirve para verificar el estado de un trabajo de rastreo y obtener su resultado.
estado = firecrawl.get_crawl_status("<crawl-id>")
print(estado)

Respuesta

La respuesta variará según el estado del rastreo. Para respuestas incompletas o grandes que superen los 10 MB, se proporciona un parámetro de URL next. Debes solicitar esta URL para obtener los siguientes 10 MB de datos. Si el parámetro next no está presente, indica el final de los datos del rastreo.
{
  "status": "en proceso de scraping",
  "total": 36,
  "completed": 10,
  "creditsUsed": 10,
  "expiresAt": "2024-00-00T00:00:00.000Z",
  "next": "https://api.firecrawl.dev/v2/crawl/123-456-789?skip=10",
  "data": [
    {
      "markdown": "[Página principal de la documentación de Firecrawl![logo claro](https://mintlify.s3-us-west-1.amazonaws.com/firecrawl/logo/light.svg)!...",
      "html": "<!DOCTYPE html><html lang=\"en\" class=\"js-focus-visible lg:[--scroll-mt:9.5rem]\" data-js-focus-visible=\"\">...",
      "metadata": {
        "title": "Crea un 'chat con el sitio web' usando Groq Llama 3 | Firecrawl",
        "language": "en",
        "sourceURL": "https://docs.firecrawl.dev/learn/rag-llama3",
        "description": "Aprende a usar Firecrawl, Groq Llama 3 y LangChain para crear un bot de 'chat con tu sitio web'."
        "ogLocaleAlternate": [],
        "statusCode": 200
      }
    },
    ...
  ]
}

modo JSON

Con el modo JSON, puedes extraer fácilmente datos estructurados de cualquier URL. Compatible con esquemas de Pydantic para facilitarte el proceso. Así es como usarlo:
from firecrawl import Firecrawl
from pydantic import BaseModel
app = Firecrawl(api_key="fc-YOUR-API-KEY")

class JsonSchema(BaseModel):
    company_mission: str
    supports_sso: bool
    is_open_source: bool
    is_in_yc: bool

result = app.scrape(
    'https://firecrawl.dev',
    formats=[{
      "type": "json",
      "schema": JsonSchema
    }],
    solo_contenido_principal=False,
    timeout=120000
)

print(result)
Salida:
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "Rastreo y extracción de datos web con IA",
        "supports_sso": true,
        "is_open_source": true,
        "is_in_yc": true
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "Rastreo y extracción de datos web con IA",
        "robots": "seguir, indexar",
        "ogTitle": "Firecrawl",
        "ogDescription": "Rastreo y extracción de datos web con IA",
        "ogUrl": "https://firecrawl.dev/",
        "ogImage": "https://firecrawl.dev/og.png",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl"
        "sourceURL": "https://firecrawl.dev/"
      },
    }
}
La API de búsqueda de Firecrawl te permite realizar búsquedas en la web y, opcionalmente, extraer (scrape) los resultados en una sola operación.
  • Elige formatos de salida específicos (Markdown, HTML, enlaces, capturas de pantalla)
  • Elige fuentes específicas (web, noticias, imágenes)
  • Busca en la web con parámetros personalizables (ubicación, etc.)
Para más detalles, consulta la Referencia del endpoint /search.
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-TU-API-KEY")

results = firecrawl.search(
    query="firecrawl",
    limit=3,
)
print(results)

Respuesta

Los SDK devolverán directamente el objeto de datos. cURL devolverá la carga útil completa.
JSON
{
  "success": true,
  "data": {
    "web": [
      {
        "url": "https://www.firecrawl.dev/",
        "title": "Firecrawl - La API de datos web para IA",
        "description": "La API de rastreo, scraping y búsqueda web para IA. Diseñada para escalar. Firecrawl pone todo internet al alcance de agentes y desarrolladores de IA.",
        "position": 1
      },
      {
        "url": "https://github.com/mendableai/firecrawl",
        "title": "mendableai/firecrawl: Convierte sitios web completos en datos listos para LLM ... - GitHub",
        "description": "Firecrawl es un servicio de API que toma una URL, la rastrea y la convierte en Markdown limpio o datos estructurados.",
        "position": 2
      },
      ...
    ],
    "images": [
      {
        "title": "Guía de inicio rápido | Firecrawl",
        "imageUrl": "https://mintlify.s3.us-west-1.amazonaws.com/firecrawl/logo/logo.png",
        "imageWidth": 5814,
        "imageHeight": 1200,
        "url": "https://docs.firecrawl.dev/",
        "position": 1
      },
      ...
    ],
    "news": [
      {
        "title": "La startup de Y Combinator, Firecrawl, está dispuesta a pagar 1 M$ para contratar a tres agentes de IA como empleados",
        "url": "https://techcrunch.com/2025/05/17/y-combinator-startup-firecrawl-is-ready-to-pay-1m-to-hire-three-ai-agents-as-employees/",
        "snippet": "Ahora ha publicado tres nuevos anuncios en la bolsa de trabajo de YC para “solo agentes de IA” y ha reservado un presupuesto total de 1 millón de dólares para lograrlo.",
        "date": "hace 3 meses"
        "position": 1
      },
      ...
    ]
  }
}

Extracción sin esquema

Ahora puedes extraer sin un esquema con solo pasar un prompt al endpoint. El LLM elige la estructura de los datos.
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR-API-KEY")

result = app.scrape(
    'https://firecrawl.dev',
    formats=[{
      "type": "json",
      "prompt": "Extrae la misión de la empresa de la página."
    }],
    only_main_content=False,
    timeout=120000
)

print(result)
Resultado:
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "Rastreo web y extracción de datos impulsados por IA",
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "Rastreo web y extracción de datos impulsados por IA",
        "robots": "seguir, indexar",
        "ogTitle": "Firecrawl",
        "ogDescription": "Rastreo web y extracción de datos impulsados por IA",
        "ogUrl": "https://firecrawl.dev/",
        "ogImage": "https://firecrawl.dev/og.png",
        "ogLocaleAlternate": [],
        "ogSiteName": "Firecrawl",
        "sourceURL": "https://firecrawl.dev/"
      },
    }
}

Interacción con la página mediante acciones

Firecrawl permite realizar diversas acciones en una página web antes de extraer su contenido. Esto es especialmente útil para interactuar con contenido dinámico, navegar entre páginas o acceder a contenido que requiere interacción del usuario. A continuación, se muestra un ejemplo de cómo usar acciones para ir a google.com, buscar Firecrawl, hacer clic en el primer resultado y tomar una captura de pantalla. Es importante usar casi siempre la acción wait antes y/o después de ejecutar otras acciones para dar tiempo suficiente a que la página cargue.

Ejemplo

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-YOUR-API-KEY")

doc = firecrawl.scrape('https://example.com/login', {
  formats=['markdown'],
  actions=[
    { type: 'write', text: 'john@example.com' },
    { type: 'press', key: 'Tab' },
    { type: 'write', text: 'secret' },
    { type: 'click', selector: 'button[type="submit"]' },
    { type: 'wait', milliseconds: 1500 },
    { type: 'screenshot', fullPage: true },
  ],
});

print(doc.markdown, doc.screenshot);

Resultados

{
  "success": true,
  "data": {
    "markdown": "¡Nuestra primera Launch Week ha terminado! [Consulta el resumen 🚀](blog/firecrawl-launch-week-1-recap)...",
    "actions": {
      "screenshots": [
        "https://alttmdsdujxrfnakrkyi.supabase.co/storage/v1/object/public/media/screenshot-75ef2d87-31e0-4349-a478-fb432a29e241.png"
      ],
      "scrapes": [
        {
          "url": "https://www.firecrawl.dev/",
          "html": "<html><body><h1>Firecrawl</h1></body></html>"
        }
      ]
    },
    "metadata": {
      "title": "Inicio - Firecrawl",
      "description": "Firecrawl rastrea y convierte cualquier sitio web en Markdown limpio.",
      "language": "en",
      "keywords": "Firecrawl,Markdown,Datos,Mendable,LangChain",
      "robots": "seguir, index",
      "ogTitle": "Firecrawl",
      "ogDescription": "Convierte cualquier sitio web en datos listos para LLM.",
      "ogUrl": "https://www.firecrawl.dev/",
      "ogImage": "https://www.firecrawl.dev/og.png?123",
      "ogLocaleAlternate": [],
      "ogSiteName": "Firecrawl",
      "sourceURL": "http://google.com",
      "statusCode": 200
    }
  }
}

Código abierto vs nube

Firecrawl es de código abierto y está disponible bajo la licencia AGPL-3.0. Para ofrecer el mejor producto posible, proporcionamos una versión alojada de Firecrawl junto con nuestra oferta de código abierto. La solución en la nube nos permite innovar continuamente y mantener un servicio sostenible y de alta calidad para todos los usuarios. Firecrawl Cloud está disponible en firecrawl.dev y ofrece una serie de funciones que no están disponibles en la versión de código abierto:
Firecrawl Cloud vs Open Source

Contribuir

¡Nos encantan las contribuciones! Lee nuestra guía de contribución antes de enviar un pull request.