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

# POST /convert

> Sube un documento como multipart/form-data y recibe Markdown.

# POST /convert

Convierte un documento subido como `multipart/form-data`. Es la ruta natural para formularios web y clientes que ya manejan ficheros adjuntos.

## Request

```http theme={null}
POST /convert?mode=fast HTTP/1.1
x-api-key: TU_API_KEY
content-type: multipart/form-data; boundary=----xyz
```

El campo de archivo se llama `file`.

## Query params

<ParamField query="input_format" type="enum" default="auto">
  `pdf`, `docx`, `csv`, `txt`, `xlsx`, `pptx`, `zip`. Con `auto` se detecta por extensión y luego por `content-type`.
</ParamField>

<ParamField query="mode" type="enum" default="fast">
  `fast`, `balanced`, `quality` o `auto`. Ver [Modos](/docs/public/es/concepts/modes).
</ParamField>

<ParamField query="clean" type="boolean" default="true">
  Limpia headers repetidos, líneas de control y ruido del Markdown.
</ParamField>

<ParamField query="response_format" type="enum" default="markdown">
  `markdown` (cuerpo crudo) o `json` (objeto con metadata embebida).
</ParamField>

## Body

<ParamField body="file" type="file" required>
  El documento a convertir. Formato detectado por nombre de archivo y `content-type`.
</ParamField>

## Ejemplos

<CodeGroup>
  ```bash curl theme={null}
  curl -X POST "https://api.markpdf.tech/convert?mode=fast" \
    -H "x-api-key: TU_API_KEY" \
    -F "file=@informe.pdf"
  ```

  ```python Python theme={null}
  import httpx

  with open("informe.pdf", "rb") as fh:
      r = httpx.post(
          "https://api.markpdf.tech/convert",
          params={"mode": "fast"},
          headers={"x-api-key": "TU_API_KEY"},
          files={"file": ("informe.pdf", fh, "application/pdf")},
          timeout=300,
      )
  print(r.text)
  ```

  ```javascript JavaScript theme={null}
  const form = new FormData();
  form.append("file", fileBlob, "informe.pdf");

  const res = await fetch("https://api.markpdf.tech/convert?mode=fast", {
    method: "POST",
    headers: { "x-api-key": "TU_API_KEY" },
    body: form,
  });
  console.log(await res.text());
  ```
</CodeGroup>

## Respuesta

Por defecto `text/markdown` más headers de facturación. Ver [Respuesta y headers](/docs/public/es/api/response).

<Note>
  Para máxima eficiencia de red en uploads grandes, usa [`POST /convert/raw`](/docs/public/es/api/convert-raw) con `content-encoding: gzip` o `zstd`. `multipart` no se comprime tan bien.
</Note>
