Casos de uso

Para qué usar DocumenTo.MD en tus proyectos y automatizaciones

RAG y pipelines de LLMs

Los modelos de lenguaje (GPT, Claude, Llama) no pueden leer PDFs o DOCX directamente. DocumenTo.MD los normaliza a Markdown limpio antes de que entres en tu pipeline de chunking y embeddings.

  • Preserva headings, listas y tablas en formato estructurado
  • Output limpio sin metadatos basura
  • API síncrona para procesamiento en streaming
  • Compatible con LangChain, LlamaIndex y cualquier vector DB
rag_pipeline.py
import requests

def document_to_markdown(file_path, api_key):
    with open(file_path, "rb") as f:
        resp = requests.post(
            "https://documento.md/v1/convert",
            headers={"Authorization": f"Bearer {api_key}"},
            files={"file": f},
            data={"wait": "true"},
        )
    return resp.json()["markdown"]

# 1. Convertir PDF a Markdown
markdown = document_to_markdown("informe.pdf", api_key)

# 2. Chunking + embeddings (LangChain, LlamaIndex...)
# 3. Almacenar en tu vector DB (Pinecone, Weaviate, Qdrant...)
# 4. Retrieval + generation con tu LLM
migrar_docs.sh
# Convertir todos los .docx de una carpeta
for file in *.docx; do
  curl -X POST "https://documento.md/v1/convert" \
    -H "Authorization: Bearer $DTMD_KEY" \
    -F "file=@$file" \
    -F "wait=true" \
    | jq -r '.markdown' \
    > "${file%.docx}.md"
done

# Commit a git para tu wiki/docs
git add *.md && git commit -m "migración docx → md"

Migración de documentación legacy

Tienes cientos de documentos en Word, PDFs o wikis internas. Conviértelos a Markdown de una vez y muévelos a un repo git, un CMS moderno o un generador de sitios estáticos (Astro, Hugo, MkDocs).

  • Conversión por lotes con un script de una línea
  • Preserva la estructura jerárquica (H1-H6)
  • Markdown compatible con GitHub Flavored
  • Versionado en git a partir de ahora

Indexación para búsqueda

Los archivos binarios (PDF, PPTX, XLSX) son invisibles para Elasticsearch, Meilisearch o Algolia. Conviértelos a texto indexable y haz que tus documentos aparezcan en los resultados de búsqueda.

  • Extracción de texto puro sin formato binario
  • Compatible con cualquier motor de búsqueda
  • Procesamiento de colas de documentos en paralelo
index_pipeline.py
from elasticsearch import Elasticsearch
import requests

es = Elasticsearch()

def index_document(file_path, doc_id, api_key):
    with open(file_path, "rb") as f:
        resp = requests.post(
            "https://documento.md/v1/convert",
            headers={"Authorization": f"Bearer {api_key}"},
            files={"file": f},
        )
    markdown = resp.json()["markdown"]
    es.index(index="docs", id=doc_id, document={
        "content": markdown,
        "filename": file_path,
    })
Guía paso a paso

Automatización con n8n

Conecta DocumenTo.MD a cualquier herramienta usando n8n. Convierte archivos automáticamente cuando lleguen por email, se suban a Google Drive o se envíen por webhook.

1

Crea tu API Key

Regístrate en documento.md, entra al Dashboard → API Keys y crea una nueva key. Copia el valor completo (dtmd_live_...).

2

Crea un workflow en n8n

En n8n, crea un nuevo workflow. Empieza con un nodo trigger según tu fuente de archivos:

Google Drive
"On file added"
Email (IMAP)
"On email with attachment"
Webhook
"On HTTP request"
3

Añade un nodo HTTP Request

Configura el nodo con estos valores exactos:

Method POST
URL https://documento.md/v1/convert
Authentication Header Auth
Header Name Authorization
Header Value Bearer dtmd_live_tu_api_key
Body Content-Type multipart/form-data
Field: file $json.binary.data
Field: wait true
4

Usa el Markdown de salida

El nodo HTTP Request devuelve JSON. El campo markdown contiene el resultado. Conéctalo a cualquier nodo de destino:

Notion
Crear página
Slack
Enviar mensaje
Google Drive
Guardar .md

Workflow completo (copia e importa en n8n)

{
  "nodes": [
    {
      "parameters": {
        "httpMethod": "POST",
        "url": "https://documento.md/v1/convert",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            { "name": "Authorization", "value": "Bearer dtmd_live_TU_API_KEY" }
          ]
        },
        "sendBody": true,
        "contentType": "multipart-form-data",
        "bodyParameters": {
          "parameters": [
            { "parameterType": "organizationBinaryData", "inputDataFieldName": "data", "name": "file" },
            { "name": "wait", "value": "true" }
          ]
        }
      },
      "name": "Convertir a Markdown",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.1,
      "position": [460, 300]
    }
  ],
  "connections": {}
}

Cambia dtmd_live_TU_API_KEY por tu API Key real. Conecta un nodo trigger antes y un nodo de destino después.

batch_convert.py
import requests
from pathlib import Path
from concurrent.futures import ThreadPoolExecutor

API_KEY = "dtmd_live_tu_key"
API_URL = "https://documento.md/v1/convert"

def convert_one(file_path):
    with open(file_path, "rb") as f:
        resp = requests.post(API_URL,
            headers={"Authorization": f"Bearer {API_KEY}"},
            files={"file": f},
            data={"wait": "true"},
        )
    md = resp.json()["markdown"]
    Path(file_path).with_suffix(".md").write_text(md)
    print(f"✓ {file_path}")

files = list(Path(".").glob("*.pdf"))
with ThreadPoolExecutor(max_workers=5) as pool:
    pool.map(convert_one, files)

Procesamiento batch

¿Tienes una carpeta llena de documentos? Conviértelos todos en paralelo con un script simple. El endpoint /v1/convert/batch acepta hasta 10 archivos por petición, o usa threads para más.

  • Hasta 10 archivos por petición con /v1/convert/batch
  • Conversión paralela con ThreadPoolExecutor
  • Fallos individuales no abortan el lote

¿Listo para automatizar?

Crea tu cuenta, genera una API Key y empieza a convertir en menos de un minuto.