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:
Uso#
- Obtén una clave de API de firecrawl.dev
- Configura la clave de API como una variable de entorno llamada
FIRECRAWL_API_KEYo pásala directamente aClient::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#
| Constructor | Descripció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 deMarkdown,Html,RawHtml,Links,Images,Summary,Json,Attributesonly_main_content: boolinclude_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: boolremove_base64_images: boolfast_mode: boolblock_ads: boolproxy: ParseProxyType(BasicoAuto)json_options: JsonOptionsattribute_selectors: Vec<AttributeSelector>zero_data_retention: boolintegration: 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ón | Descripció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.

