Skip to main content

Rust

El SDK de Rust de Firecrawl es un envoltorio para la API de Firecrawl que te permite convertir sitios web a markdown fácilmente.
4 min read

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:

Note
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#

ConstructorDescripción
ParseFile::from_bytes(filename, bytes)Crea una instancia a partir de un nombre de archivo y bytes en memoria
ParseFile::from_path(path)Lee los bytes desde el disco y obtiene el nombre del archivo
.with_content_type(content_type)Añade una sugerencia de tipo MIME (p. ej., text/html, application/pdf)

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.

OpciónDescripción
Client::new(api_key)Crea un cliente para el servicio en la nube de Firecrawl (https://api.firecrawl.dev)
Client::new_selfhosted(api_url, api_key)Crea un cliente para una instancia autogestionada de Firecrawl

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.