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

# Resumen de la API

> Endpoints, base URL, autenticación y modelo de respuesta en un vistazo.

# Resumen de la API

La API expone tres formas de convertir un documento a Markdown, más un endpoint de estado. Todo responde `text/markdown` por defecto, o JSON si lo pides.

## Base URL

```
https://api.markpdf.tech
```

## Autenticación

Todas las llamadas usan `x-api-key`. Ver [Autenticación](/docs/public/es/authentication).

```http theme={null}
x-api-key: TU_API_KEY
```

## Endpoints

<CardGroup cols={2}>
  <Card title="POST /convert" icon="upload" href="/docs/public/es/api/convert">
    Sube el archivo como `multipart/form-data`.
  </Card>

  <Card title="POST /convert/raw" icon="file-arrow-up" href="/docs/public/es/api/convert-raw">
    Envía el binario crudo en el cuerpo. Soporta gzip y zstd.
  </Card>

  <Card title="POST /convert/from-url" icon="link" href="/docs/public/es/api/convert-from-url">
    Convierte desde una URL firmada de S3, R2, Supabase, GCS o Azure.
  </Card>

  <Card title="GET /jobs/{id}" icon="clock" href="/docs/public/es/api/jobs">
    Estado de una conversión encolada automáticamente (202).
  </Card>

  <Card title="GET /" icon="heart-pulse" href="/docs/public/es/api/status">
    Estado del servicio y formatos soportados.
  </Card>

  <Card title="Parámetros" icon="sliders" href="/docs/public/es/api/parameters">
    Referencia completa de query params, modos y formatos.
  </Card>

  <Card title="Respuesta" icon="brackets-curly" href="/docs/public/es/api/response">
    Headers de observabilidad y cuerpo JSON.
  </Card>
</CardGroup>

## Las tres rutas de conversión

| Endpoint                 | Cómo envías el documento             | Cuándo usarlo                                           |
| ------------------------ | ------------------------------------ | ------------------------------------------------------- |
| `POST /convert`          | `multipart/form-data` (campo `file`) | Formularios web, clientes que ya suben ficheros.        |
| `POST /convert/raw`      | Binario en el body                   | Máxima eficiencia, soporta compresión gzip/zstd.        |
| `POST /convert/from-url` | URL firmada                          | Documentos grandes ya en storage; evita reenviar bytes. |

<Tip>
  Para documentos grandes, `from-url` suele ganar: tu servidor no recibe ni reenvía el mismo archivo dos veces.
</Tip>

## Modelo de respuesta

Por defecto recibes Markdown crudo (`text/markdown; charset=utf-8`) más headers de observabilidad. Con `response_format=json` recibes un objeto con el Markdown y la metadata embebida.

Ver [Respuesta y headers](/docs/public/es/api/response).

## Códigos de estado

| Código | Significado                                                                                               |
| ------ | --------------------------------------------------------------------------------------------------------- |
| `200`  | Conversión correcta.                                                                                      |
| `202`  | Encolada automáticamente (backends saturados). Pollea `/jobs/{id}`. Ver [Jobs](/docs/public/es/api/jobs). |
| `304`  | No modificado (coincide el `ETag` enviado en `If-None-Match`).                                            |
| `400`  | Cuerpo inválido o URL mal formada.                                                                        |
| `403`  | Acceso no autorizado o host de URL no permitido.                                                          |
| `413`  | Excede el tamaño máximo, el número de páginas o los límites de ZIP.                                       |
| `415`  | Formato o `Content-Encoding` no soportado.                                                                |
| `422`  | Falta `url` en `from-url`.                                                                                |
| `500`  | Error interno de conversión.                                                                              |

Detalle en [Errores](/docs/public/es/errors).
