Skip to main content

Instalación

El SDK oficial de Rust está alojado en el monorepo de Firecrawl, en apps/rust-sdk. Para instalar el SDK de Rust de Firecrawl, añade la dependencia desde crates.io:
O instálalo con Cargo:
Requiere Rust 1.70 o una versión posterior.

Uso

  1. Obtén una clave de API de firecrawl.dev
  2. Configura la clave de API como una variable de entorno llamada FIRECRAWL_API_KEY o pásala directamente a Client::new(...)
Haz scraping de una página e imprime su contenido en markdown:
Las secciones siguientes abarcan el rastreo, el mapeo, la búsqueda y los demás métodos del SDK.

Hacer scraping de una URL

Para hacer scraping de una sola URL, usa el método scrape.

Extracción JSON

Extrae JSON estructurado con scrape_with_schema:
O bien configura la extracción JSON directamente con ScrapeOptions:

Procesamiento de archivos subidos

Usa parse para subir un archivo local (.html, .htm, .pdf, .docx, .doc, .odt, .rtf, .xlsx, .xls) como datos de formulario multipart a /v2/parse. El endpoint devuelve un Document con los formatos solicitados. ParseOptions omite intencionadamente los campos exclusivos de scrape que /v2/parse rechaza (como actions, waitFor, location, mobile, screenshot, branding y changeTracking). Crea un ParseFile a partir de bytes en memoria o directamente desde una ruta:
O lee el archivo desde el disco y omite las opciones:

ParseFile

ParseOptions

Campos admitidos (todos opcionales, en camelCase en la solicitud):
  • formats: Vec<ParseFormat> — cualquiera de Markdown, Html, RawHtml, Links, Images, Summary, Json, Attributes
  • only_main_content: bool
  • include_tags: Vec<String> / exclude_tags: Vec<String>
  • headers: HashMap<String, String>
  • timeout: u32 (ms)
  • parsers: Vec<ParserConfig> (p. ej., configuración del analizador de PDF)
  • skip_tls_verification: bool
  • remove_base64_images: bool
  • fast_mode: bool
  • block_ads: bool
  • proxy: ParseProxyType (Basic o Auto)
  • json_options: JsonOptions
  • attribute_selectors: Vec<AttributeSelector>
  • zero_data_retention: bool
  • integration: String, origin: String, use_mock: String

Rastreo de un sitio web

Para rastrear un sitio web y esperar a que finalice, usa crawl.

Iniciar un rastreo

Inicia un trabajo sin esperar utilizando start_crawl.

Consultar el estado del rastreo

Consulta el progreso del rastreo con get_crawl_status.

Cancelar un rastreo

Cancela un rastreo en curso con cancel_crawl.

Comprobar errores de rastreo

Recupera los errores de un trabajo de rastreo con get_crawl_errors.

Mapeo de un sitio web

Descubre enlaces de un sitio con map.
Para obtener un resultado más simple, solo con URL, usa map_urls:

Búsqueda en la web

Busca con opciones de configuración al utilizar search.
Para un método de conveniencia que devuelve directamente los documentos extraídos:

Scraping por lotes

Realiza scraping de varias URL en paralelo con batch_scrape.

Agente

Ejecuta un agente basado en IA con agent.
Con un esquema JSON para una salida estructurada:

Sesión interactiva vinculada al scraping

Usa un ID de trabajo de scraping para ejecutar código adicional del navegador en el mismo contexto:
  • interact(...) ejecuta código o prompts en la sesión del navegador vinculada al scraping.
  • stop_interaction(...) detiene la sesión interactiva cuando hayas terminado.

Configuración

Client::new(...) y Client::new_selfhosted(...) crean el cliente.

Variable de entorno

Define la variable de entorno FIRECRAWL_API_KEY en lugar de pasar la clave directamente:

Intervalos de sondeo

Los métodos síncronos (crawl, batch_scrape, agent) siguen consultando el estado hasta completarse. Puedes personalizar el intervalo de sondeo mediante la estructura options:

Manejo de errores

El SDK usa el enum FirecrawlError, que implementa Error, Debug y Display. Todos los métodos devuelven Result<T, FirecrawlError>.
¿Eres un agente de IA que necesita una clave de API de Firecrawl? Consulta firecrawl.dev/agent-onboarding/SKILL.md para obtener instrucciones de incorporación automatizadas.