> ## Documentation Index
> Fetch the complete documentation index at: https://docs.firecrawl.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Análisis de documentos

> Conoce las capacidades de análisis de documentos.

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
</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
</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 theme={null}
// 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
</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`
</div>

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

<CodeGroup>
  ```bash cURL theme={null}
  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"
  ```

  ```js Node theme={null}
  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);
  ```

  ```python Python theme={null}
  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)
  ```
</CodeGroup>

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

```js Node theme={null}
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
</div>

```js Node theme={null}
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
</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 theme={null}
## 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.
