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 comenzar: Autohospedado: Para alojarlo por tu cuenta, consulta la guía aquí.

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")

# Scrape a website:
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 is here! [See our Day 2 Release 🚀](https://www.firecrawl.dev/blog/launch-week-i-day-2-doubled-rate-limits)[💥 Get 2 months free...",
    "html": "<!DOCTYPE html><html lang=\"en\" class=\"light\" style=\"color-scheme: light;\"><body class=\"__variable_36bd41 __variable_d7dc5d font-inter ...",
    "metadata": {
      "title": "Home - Firecrawl",
      "description": "Firecrawl crawls and converts any website into clean markdown.",
      "language": "en",
      "keywords": "Firecrawl,Markdown,Data,Mendable,Langchain",
      "robots": "follow, index",
      "ogTitle": "Firecrawl",
      "ogDescription": "Turn any website into LLM-ready data.",
      "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
    }],
    only_main_content=False,
    timeout=120000
)

print(result)
Salida:
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "AI-powered web scraping and data extraction",
        "supports_sso": true,
        "is_open_source": true,
        "is_in_yc": true
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "AI-powered web scraping and data extraction",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "AI-powered web scraping and data extraction",
        "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-YOUR-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 - The Web Data API for AI",
        "description": "The web crawling, scraping, and search API for AI. Built for scale. Firecrawl delivers the entire internet to AI agents and builders.",
        "position": 1
      },
      {
        "url": "https://github.com/mendableai/firecrawl",
        "title": "mendableai/firecrawl: Turn entire websites into LLM-ready ... - GitHub",
        "description": "Firecrawl is an API service that takes a URL, crawls it, and converts it into clean markdown or structured data.",
        "position": 2
      },
      ...
    ],
    "images": [
      {
        "title": "Quickstart | 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": "Y Combinator startup Firecrawl is ready to pay $1M to hire three AI agents as employees",
        "url": "https://techcrunch.com/2025/05/17/y-combinator-startup-firecrawl-is-ready-to-pay-1m-to-hire-three-ai-agents-as-employees/",
        "snippet": "It's now placed three new ads on YC's job board for “AI agents only” and has set aside a $1 million budget total to make it happen.",
        "date": "3 months ago",
        "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": "Extract the company mission from the page."
    }],
    only_main_content=False,
    timeout=120000
)

print(result)
Resultado:
JSON
{
    "success": true,
    "data": {
      "json": {
        "company_mission": "AI-powered web scraping and data extraction",
      },
      "metadata": {
        "title": "Firecrawl",
        "description": "AI-powered web scraping and data extraction",
        "robots": "follow, index",
        "ogTitle": "Firecrawl",
        "ogDescription": "AI-powered web scraping and data extraction",
        "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": "Our first Launch Week is over! [See the recap 🚀](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": "Home - Firecrawl",
      "description": "Firecrawl crawls and converts any website into clean markdown.",
      "language": "en",
      "keywords": "Firecrawl,Markdown,Data,Mendable,Langchain",
      "robots": "follow, index",
      "ogTitle": "Firecrawl",
      "ogDescription": "Turn any website into LLM-ready data.",
      "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.