Firecrawl es una API de código abierto que convierte cualquier página web en Markdown limpio y listo para un modelo de lenguaje, de modo que tu agente de IA lea la web sin ahogarse en HTML. Un agente que solo razona sobre su memoria queda anclado en el pasado; para consultar precios, documentación o noticias necesita una herramienta que le traiga datos web fiables. En esta guía verás qué es Firecrawl, cómo funcionan sus endpoints de scrape, crawl y extracción, cómo alojarlo con Docker en tu propia máquina, cómo dárselo a un agente como herramienta y cuándo compensa frente a un scraper hecho a mano. La misma explicación está disponible en inglés.

Puntos clave

  • Firecrawl es una API de código abierto (licencia AGPL-3.0, los SDK bajo MIT) que convierte páginas web en Markdown, HTML, capturas o JSON estructurado; supera las 145 000 estrellas en GitHub y va por la versión v2.11.0, publicada el 19 de junio de 2026.
  • Expone cinco operaciones: scrape (una URL), crawl (un sitio entero), map (descubrir URLs), search (buscar en la web) y extract (datos estructurados guiados por esquema).
  • Devuelve Markdown limpio por defecto: quita menús, anuncios y ruido, justo lo que cabe en la ventana de contexto de un modelo sin desperdiciar tokens.
  • Es autoalojable con Docker: git clone del repositorio, docker compose up y tienes la API en http://localhost:3002; pide alrededor de 8 GB de RAM porque levanta un navegador Playwright, Redis y una base de datos.
  • Tiene SDK oficiales de Python (firecrawl-py) y Node (firecrawl), un servidor MCP y una CLI, así que encaja tanto en tu propio servidor MCP como en cualquier framework de agentes.

¿Qué es Firecrawl?

Firecrawl es una API que recibe una URL y devuelve su contenido en un formato que un modelo de lenguaje entiende sin esfuerzo. La documentación oficial lo describe como «la API de contexto para buscar, extraer e interactuar con la web a gran escala». La idea de fondo es sencilla: el HTML de una web moderna está lleno de menús, banners, scripts y marcado que no aportan nada al modelo y consumen tokens; Firecrawl lo renderiza (incluido el JavaScript), lo limpia y te entrega Markdown listo para usar.

El proyecto es software libre bajo licencia AGPL-3.0, mientras que sus bibliotecas cliente se publican bajo la más permisiva MIT. Ha tenido una acogida enorme: reúne más de 145 000 estrellas en GitHub y va por la versión v2.11.0, publicada el 19 de junio de 2026. Detrás está la empresa Firecrawl (antes Mendable), y en 2026 la organización de GitHub se movió de mendableai a firecrawl, así que algunos tutoriales antiguos aún citan la ruta vieja.

Puedes usarlo de dos formas: contra la nube de Firecrawl (sin clave para empezar, con una cuenta gratuita subes los límites) o alojado en tu propia máquina. Para probarlo desde Python solo hacen falta dos líneas:

pip install firecrawl-py
from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-TU_CLAVE")

doc = firecrawl.scrape(
    "https://es.wikipedia.org/wiki/Agente_inteligente",
    formats=["markdown"],
)
print(doc.markdown)

¿Qué formatos ofrece: scrape, crawl y extracción a Markdown?

El endpoint estrella es /scrape: le pasas una URL y eliges los formatos de salida. Por defecto entrega markdown, pero también acepta html, rawHtml, links (todos los enlaces de la página), screenshot (una captura) y json (extracción estructurada guiada por un esquema). Puedes pedir varios a la vez y decides tú qué necesita tu agente.

Cuando no te basta con una página, /crawl recorre un sitio entero: descubre las URLs, sigue la paginación, renderiza el JavaScript y devuelve todas las páginas en Markdown dentro de un mismo trabajo asíncrono. Para tareas más quirúrgicas están /map (listar rápidamente todas las URLs de un dominio) y /search, que busca en la web y te devuelve el contenido de los resultados en un solo paso, útil para dar a un agente capacidad de búsqueda sin montar un motor como SearXNG.

La joya para agentes es /extract: en lugar de texto suelto, le pasas un esquema JSON y Firecrawl rellena los campos leyendo una o varias páginas. Así conviertes una ficha de producto o un directorio en datos tipados que tu programa consume directamente, sin escribir selectores CSS ni expresiones regulares frágiles.

¿Cómo alojar Firecrawl con Docker?

Firecrawl se puede alojar en tu propia máquina, algo valioso cuando manejas datos sensibles o quieres evitar costes por petición. El repositorio incluye un docker-compose que levanta la API, un navegador Playwright para renderizar, Redis para la cola de trabajos y una base de datos. El proceso son tres pasos:

git clone https://github.com/firecrawl/firecrawl.git
cd firecrawl
cp .env.example .env

docker compose build
docker compose up -d

En el archivo .env conviene fijar PORT=3002, HOST=0.0.0.0 y USE_DB_AUTHENTICATION=false para una instalación local sencilla. Una vez arriba, la API responde en http://localhost:3002 y puedes lanzar tu primer scrape con curl:

curl -X POST http://localhost:3002/v2/scrape \
  -H 'Content-Type: application/json' \
  -d '{"url": "https://firecrawl.dev", "formats": ["markdown"]}'

Dos avisos importantes. El primero: reserva memoria, porque el navegador headless es voraz y la propia documentación recomienda alrededor de 8 GB de RAM y unos 20 GB de disco. El segundo: la versión autoalojada no incluye Fire-engine, el motor propietario que gestiona rotación de IP, proxies y evasión de sistemas antibot. Para scraping normal va de sobra; si tu objetivo bloquea agresivamente, ahí la nube de pago rinde mejor.

¿Cómo darle una herramienta web a tu agente?

Un agente es un modelo dentro de un bucle que puede llamar a herramientas; darle acceso a la web es tan sencillo como envolver una llamada de Firecrawl en una función y registrarla como herramienta. El patrón es idéntico tanto si usas el function calling de OpenAI, las tools de Anthropic o un framework como LangChain:

from firecrawl import Firecrawl

firecrawl = Firecrawl(api_key="fc-TU_CLAVE")

def leer_pagina(url: str) -> str:
    """Descarga una pagina y la devuelve en Markdown limpio."""
    doc = firecrawl.scrape(url, formats=["markdown"])
    return doc.markdown

Ahora el agente decide por sí mismo cuándo llamar a leer_pagina: si el usuario pregunta por el contenido de un enlace o por una noticia reciente, el modelo emite una llamada a la herramienta, tú ejecutas la función y le devuelves el Markdown como observación. Ese texto limpio se integra mucho mejor en el contexto que el HTML en bruto, así que el modelo alucina menos y cita mejor. Si lo que buscas es que el agente navegue e interactúe con la página (rellenar formularios, pulsar botones), la pieza complementaria es un agente de navegador como Browser Use; Firecrawl brilla cuando solo necesitas leer la web, no operarla. Y si gestionas muchas integraciones a la vez, plataformas como Composio ofrecen Firecrawl como una herramienta más lista para conectar.

¿Firecrawl o un scraper propio?

La tentación de escribir tu propio scraper con requests y BeautifulSoup es real, y para una página estática y estable puede bastar. El problema aparece con la web moderna: contenido que se carga con JavaScript, estructuras que cambian cada dos por tres, paginación infinita, límites de velocidad y la conversión a un Markdown decente. Cada uno de esos frentes es mantenimiento que se acumula.

Firecrawl te quita justo esa carga: renderiza el JavaScript, normaliza la salida a Markdown, gestiona la cola y los reintentos, y expone un esquema uniforme para todas las webs. A cambio dependes de un servicio (o de mantener tu propia instancia de Docker) y, en la nube, pagas por petición. La regla práctica: para un raspado puntual de un sitio sencillo, un script propio sale a cuenta; para alimentar a un agente que lee decenas de sitios distintos y cambiantes en producción, Firecrawl te ahorra semanas de parches. Al ser de código abierto, además evitas el bloqueo de proveedor: si mañana no te convence, migras a tu instancia autoalojada.

Preguntas frecuentes

¿Es Firecrawl gratis y de código abierto?

El núcleo de Firecrawl es de código abierto bajo licencia AGPL-3.0 y sus SDK bajo MIT, así que puedes leer el código y alojarlo gratis en tu propia máquina. Aparte existe un servicio en la nube con un plan gratuito para empezar y planes de pago por volumen. En otras palabras: el software es libre, pero la infraestructura gestionada (con Fire-engine, proxies y escalado) es un producto comercial.

¿Puedo alojar Firecrawl en mi propio servidor?

Sí. El repositorio trae un docker-compose que levanta la API, el navegador de renderizado, Redis y la base de datos con docker compose up, y queda escuchando en el puerto 3002. Ten en cuenta dos cosas: necesita alrededor de 8 GB de RAM y la versión autoalojada no incluye Fire-engine, el motor que sortea bloqueos e IP baneadas. Para scraping estándar es más que suficiente.

¿En qué se diferencia scrape de crawl?

scrape trabaja sobre una sola URL y te devuelve su contenido en el formato que pidas. crawl parte de una URL, descubre y sigue los enlaces internos del sitio, y raspa muchas páginas en un solo trabajo asíncrono. Usa scrape cuando sabes exactamente qué página quieres y crawl cuando necesitas volcar una sección entera, como toda una documentación, para indexarla.

Conclusión

Firecrawl resuelve un problema muy concreto de los agentes de IA: darles ojos sobre la web sin que se atraganten con HTML. Con scrape, crawl, map, search y extract cubre desde una página suelta hasta un sitio entero, siempre en Markdown limpio; con sus SDK, su servidor MCP y su docker compose se integra en minutos, en la nube o en tu propia máquina. Recuerda que la versión autoalojada renuncia a Fire-engine y pide unos 8 GB de RAM. El siguiente paso es levantarlo con docker compose up, envolver una llamada scrape en una función y registrarla como herramienta de tu agente.

Fuentes

  1. Documentación oficial de Firecrawl
  2. Firecrawl en GitHub
  3. Guía de autoalojamiento SELF_HOST
  4. Análisis independiente de Firecrawl en CoddyKit

Ruta: Ecosistema de agentes: MCP, gateways y plataformas