API y MCP de Markdown a PDF para documentos profesionales adaptados a cada tarea
Crea documentos Markdown versionados, publica PDF pulidos de forma asíncrona y descarga artefactos verificados con una API REST de permisos limitados.
Prueba premium
/api/v2/documents{
"taskId": "consulting-proposal",
"revision": {
"markdown": "# Northstar Proposal...",
"spec": { "templateId": "proposal-consulting" }
}
}
SHA-256POST /api/v2/documents → /publishes
Inicio rápido
Crea un documento, publícalo y descarga el PDF verificado.
#!/usr/bin/env bash
set -euo pipefail
API="https://markdowntopdfconverter.com"
RUN_ID="proposal-$(date +%s)"
AUTH="Authorization: Bearer $MD2PDF_API_KEY"
DOCUMENT=$(curl --fail --silent --show-error --max-time 30 "$API/api/v2/documents" \
-H "$AUTH" -H "Content-Type: application/json" \
-H "Idempotency-Key: $RUN_ID-document" \
--data '{"taskId":"consulting-proposal","title":"Northstar proposal","revision":{"markdown":"# Northstar Proposal\n\n## Outcome\nA decision-ready roadmap.","parentRevisionId":null,"spec":{"locale":"en","options":{"pageNumbers":true},"templateId":"proposal-consulting"}}}')
DOCUMENT_ID=$(jq -r '.document.id' <<<"$DOCUMENT")
REVISION_ID=$(jq -r '.revision.id' <<<"$DOCUMENT")
JOB=$(curl --fail --silent --show-error --max-time 30 \
"$API/api/v2/documents/$DOCUMENT_ID/publishes" \
-H "$AUTH" -H "Content-Type: application/json" \
-H "Idempotency-Key: $RUN_ID-publish" \
--data "{"revisionId":"$REVISION_ID","output":{"format":"pdf","filename":"northstar-proposal.pdf"}}")
JOB_ID=$(jq -r '.job.id' <<<"$JOB")
for ATTEMPT in $(seq 1 100); do
RESULT=$(curl --fail --silent --show-error --max-time 30 "$API/api/v2/jobs/$JOB_ID" -H "$AUTH")
STATUS=$(jq -r '.job.status' <<<"$RESULT")
[[ "$STATUS" == "succeeded" ]] && break
[[ "$STATUS" == "failed" || "$STATUS" == "cancelled" ]] && exit 1
sleep 3
done
[[ "$STATUS" == "succeeded" ]] || { echo "Timed out waiting for PDF" >&2; exit 1; }
ARTIFACT_ID=$(jq -r '.artifact.id' <<<"$RESULT")
LINK=$(curl --fail --silent --show-error --max-time 30 -X POST \
"$API/api/v2/artifacts/$ARTIFACT_ID/links" -H "$AUTH")
HREF=$(jq -r '.href' <<<"$LINK")
[[ "$HREF" == https://* ]] || { echo "Refusing non-HTTPS artifact URL" >&2; exit 1; }
curl --fail --location --proto '=https' --max-redirs 5 --max-time 60 "$HREF" \
--output northstar-proposal.pdf
- Artifact
- SHA-256
- Download
- private link
Empieza con una automatización revisada
Importa el flujo completo de publicación, consulta y descarga privada.
n8n
Flujo inactivo con esperas persistentes y gestión de errores finales.
Make
Blueprint sin credenciales, consulta limitada y control de descargas duplicadas.
Zapier
Paso SDK y manifiesto de plantilla guiada en un kit.
Usa una clave dedicada con documents.render y documents.read. Descarga la URL firmada sin esa clave.
Usa plantillas PDF profesionales desde Claude Code y agentes de IA
Conecta una vez el servidor MCP remoto y pide a tu agente que recomiende las mejores plantillas para tu documento o convierta Markdown en un PDF profesional sin salir de la conversación.
{
"mcpServers": {
"markdown-to-pdf": {
"type": "http",
"url": "https://markdowntopdfconverter.com/mcp",
"headers": {
"Authorization": "Bearer ${MD2PDF_API_KEY}"
}
}
}
}MCP utiliza la misma clave y cuota que la API REST. Cada resultado es un enlace privado que caduca en 15 minutos, y las cuentas gratuitas pueden probar 5 exportaciones premium antes de actualizar.
Crear clave APIAutenticación
Autentica cada solicitud con tu clave de API secreta, enviada como token Bearer en el encabezado Authorization.
Encabezado de solicitud
| Encabezado | Valor | Descripción |
|---|---|---|
| Authorization | Bearer mp_live_... | Su clave API con prefijo Bearer |
| Content-Type | application/json | Requerido para todas las solicitudes |
Un ciclo de publicación administrado
La fuente, la revisión inmutable, la tarea y el artefacto verificado permanecen separados para facilitar reintentos y auditorías.
- 01
Crea un documento administrado y su primera revisión.
- 02
Solicita el PDF final con una clave de idempotencia estable.
- 03
Consulta hasta succeeded, failed o cancelled.
- 04
Genera un enlace privado de corta duración.
- 05
Descarga la URL firmada sin reenviar Authorization.
POST /api/v1/convert
Convierta Markdown a un documento PDF con estilo.
Plantillas
Elige entre 57 plantillas profesionales en 9 familias específicas. Abre una familia para copiar un ID de plantilla.
CurrículumsFormatos claros para causar una gran primera impresión.10 IDs
Cartas de presentaciónCartas diseñadas para acompañar tu currículum.10 IDs
Tareas y trabajosTrabajos cuidados para secundaria, grado inicial y universidad.9 IDs
PropuestasConsigue clientes, aprobaciones, alianzas y financiación.9 IDs
Ventas y marketingMaterial profesional para vender, demostrar y lanzar.9 IDs
AcadémicosFormatos de publicación, revisión y congresos.3 IDs
Libros y textos extensosDiseños legibles para guías, manuales, ensayos y libros.4 IDs
LegalesAcuerdos y contratos con estructura profesional.1 IDs
Códigos de error
Cada error de v2 incluye un código estable, estado HTTP, indicador retryable y un retraso opcional. Reintenta solo cuando retryable sea true.
400 / 415 / 422invalid_request
retryable: false
401unauthorized
retryable: false
402quota_exhausted
retryable: false
403forbidden
retryable: false
404not_found
retryable: false
409idempotency_conflict
retryable: false
409invalid_state_transition
retryable: false
410artifact_expired
retryable: false
429rate_limited
retryable: true
503service_unavailable
retryable: true
| Estado | code | retryable |
|---|---|---|
| 400 / 415 / 422 | invalid_request | false |
| 401 | unauthorized | false |
| 402 | quota_exhausted | false |
| 403 | forbidden | false |
| 404 | not_found | false |
| 409 | idempotency_conflict | false |
| 409 | invalid_state_transition | false |
| 410 | artifact_expired | false |
| 429 | rate_limited | true |
| 503 | service_unavailable | true |
Precios de API
Las llamadas API se registran mensualmente. Cada conversión exitosa cuenta para el límite mensual de su nivel.
0 CAD
25 / month
13,91 CAD / month
500 / month
82,14 CAD / year
1,000 / month
6,96 CAD one-time
250 calls
¿Necesita más? Contáctenos para precios empresariales personalizados.
Antes de salir de la documentación