# Análisis de documentos (/es/features/document-parsing)

<!-- agent-signals: reading_time_min: 4 · est_tokens: 1650 · updated: 2026-07-30 -->
Related: [Búsqueda](/es/features/search.md), [Highlights de búsqueda](/es/features/search-highlights.md), [Índice de investigación](/es/features/research.md), [scraping](/es/features/scrape.md), [Scraping más rápido](/es/features/fast-scraping.md), [Raspado en lote](/es/features/batch-scrape.md)

Firecrawl ofrece potentes capacidades de análisis de documentos que te permiten extraer contenido estructurado de diversos formatos. Esta función es especialmente útil para procesar archivos como hojas de cálculo, documentos de Word y más.

<div id="supported-document-formats">
  ## Formatos de documentos compatibles [#formatos-de-documentos-compatibles]
</div>

Firecrawl actualmente admite los siguientes formatos de documentos:

* **Hojas de cálculo de Excel** (`.xlsx`, `.xls`)
  * Cada hoja de cálculo se convierte en una tabla HTML
  * Las hojas se separan con encabezados H2 con el nombre de la hoja
  * Conserva el formato de las celdas y los tipos de datos

* **Documentos de Word** (`.docx`, `.doc`, `.odt`, `.rtf`)
  * Extrae el contenido de texto preservando la estructura del documento
  * Mantiene encabezados, párrafos, listas y tablas
  * Conserva el formato y el estilo básicos

* **Documentos PDF** (`.pdf`)
  * Extrae el contenido de texto con información de diseño
  * Conserva la estructura del documento, incluidas secciones y párrafos
  * Procesa tanto PDFs basados en texto como escaneados (con OCR)
  * Admite la opción `mode` para controlar la estrategia de análisis: `fast` (solo texto), `auto` (texto con fallback a OCR, por defecto) o `ocr` (forzar OCR)
  * Precio de 1 crédito por página. Consulta la [tarifa](https://firecrawl.dev/pricing) para más detalles.

<div id="pdf-parsing-modes">
  ### Modos de análisis de PDF [#modos-de-análisis-de-pdf]
</div>

Usa la opción `parsers` para controlar cómo se procesan los PDF:

| Modo   | Descripción                                                                                                                                    |
| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `auto` | Intenta primero una extracción rápida basada en texto y recurre a OCR si es necesario. Este es el valor predeterminado.                        |
| `fast` | Análisis solo basado en texto (texto incrustado). Es la opción más rápida, pero no extraerá texto de páginas escaneadas o con muchas imágenes. |
| `ocr`  | Fuerza el análisis por OCR en cada página. Úsalo para documentos escaneados o cuando `auto` clasifique incorrectamente una página.             |

```js
// Sintaxis de objeto con modo
parsers: [{ type: "pdf", mode: "ocr", maxPages: 20 }]

// Predeterminado (modo auto)
parsers: [{ type: "pdf" }]
```

<div id="how-to-use-document-parsing">
  ## Cómo usar Análisis de documentos [#cómo-usar-análisis-de-documentos]
</div>

El análisis de documentos en Firecrawl funciona de dos formas:

1. **Análisis basado en URL (`/v2/scrape`)**: proporciona una URL que apunte a un tipo de documento compatible.
2. **Análisis mediante carga de archivos (`/v2/parse`)**: carga directamente los bytes del archivo con `multipart/form-data`.

Para el análisis basado en URL, Firecrawl detecta automáticamente el tipo de archivo a partir de la extensión o del tipo de contenido.

<div id="upload-documents-with-v2parse">
  ### Subir documentos con `/v2/parse` [#subir-documentos-con-v2parse]
</div>

Usa `/v2/parse` cuando el documento de origen sea local o no sea accesible públicamente a través de una URL.

<CodeGroup>
  <CodeBlockTabs defaultValue="cURL" groupId="curl+node+python">
    <CodeBlockTabsList>
      <CodeBlockTabsTrigger value="cURL">
        cURL
      </CodeBlockTabsTrigger>

      <CodeBlockTabsTrigger value="Node">
        Node
      </CodeBlockTabsTrigger>

      <CodeBlockTabsTrigger value="Python">
        Python
      </CodeBlockTabsTrigger>
    </CodeBlockTabsList>

    <CodeBlockTab value="cURL">
      ```bash  
      curl -X POST "https://api.firecrawl.dev/v2/parse" \
        -H "Authorization: Bearer fc-YOUR-API-KEY" \
        -F 'options={"formats":["markdown"]}' \
        -F "file=@./document.docx;type=application/vnd.openxmlformats-officedocument.wordprocessingml.document"
      ```
    </CodeBlockTab>

    <CodeBlockTab value="Node">
      ```js  
      import { Firecrawl } from "firecrawl";

      const app = new Firecrawl({ apiKey: "fc-YOUR-API-KEY" });

      const doc = await app.parse(
        {
          data: "<html><body><h1>Upload Parse</h1></body></html>",
          filename: "upload.html",
          contentType: "text/html",
        },
        { formats: ["markdown"] },
      );

      console.log(doc.markdown);
      ```
    </CodeBlockTab>

    <CodeBlockTab value="Python">
      ```python  
      from firecrawl import Firecrawl
      from firecrawl.v2.types import ScrapeOptions

      app = Firecrawl(api_key="fc-YOUR-API-KEY")
      doc = app.parse(
          b"<!DOCTYPE html><html><body><h1>Upload Parse</h1></body></html>",
          filename="upload.html",
          content_type="text/html",
          options=ScrapeOptions(formats=["markdown"]),
      )
      print(doc.markdown)
      ```
    </CodeBlockTab>
  </CodeBlockTabs>
</CodeGroup>

<div id="example-scraping-an-excel-file">
  ### Ejemplo: Raspado de un archivo de Excel [#ejemplo-raspado-de-un-archivo-de-excel]
</div>

```js title="Node"
import { Firecrawl } from 'firecrawl';

const firecrawl = new Firecrawl({
  // No se necesita API key para comenzar — añade una para límites de tasa más altos:
  // apiKey: "fc-TU-CLAVE-API",
});

const doc = await firecrawl.scrape('https://example.com/data.xlsx');

console.log(doc.markdown);
```

<div id="example-scraping-a-word-document">
  ### Ejemplo: extracción de un documento de Word [#ejemplo-extracción-de-un-documento-de-word]
</div>

```js title="Node"
import { Firecrawl } from 'firecrawl';

const firecrawl = new Firecrawl({
  // No se necesita API key para comenzar — añade una para límites de tasa más altos:
  // apiKey: "fc-TU-CLAVE-API",
});

const doc = await firecrawl.scrape('https://example.com/data.docx');

console.log(doc.markdown);
```

<div id="output-format">
  ## Formato de salida [#formato-de-salida]
</div>

Todos los tipos de documentos compatibles se convierten en Markdown limpio y estructurado. Por ejemplo, un archivo de Excel con varias hojas podría convertirse en:

```markdown
## Hoja1

| Nombre | Valor |
|--------|-------|
| Elemento 1 | 100   |
| Elemento 2 | 200   |

## Hoja2

| Fecha      | Descripción  |
|------------|--------------|
| 2023-01-01 | Primer trimestre|
```

> ¿Eres un agente de IA que necesita una clave de API de Firecrawl? Consulta [firecrawl.dev/agent-onboarding/SKILL.md](https://www.firecrawl.dev/agent-onboarding/SKILL.md) para ver las instrucciones de incorporación automática.
