Markdown to PDF
v2 public betaREST API

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

POST/api/v2/documents
{
  "taskId": "consulting-proposal",
  "revision": {
    "markdown": "# Northstar Proposal...",
    "spec": { "templateId": "proposal-consulting" }
  }
}
Executive template API request and PDF preview
verified artifactSHA-256

Inicio rápido

Crea un documento, publícalo y descarga el PDF verificado.

cURL
#!/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
Verified PDFsucceeded
Polished consulting proposal PDF returned by the publishing API
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.

Descargar flujo

Make

Blueprint sin credenciales, consulta limitada y control de descargas duplicadas.

Descargar blueprint

Zapier

Paso SDK y manifiesto de plantilla guiada en un kit.

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

.mcp.json
{
  "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 API

Autenticación

Autentica cada solicitud con tu clave de API secreta, enviada como token Bearer en el encabezado Authorization.

Encabezado de solicitud

EncabezadoValorDescripción
AuthorizationBearer mp_live_...Su clave API con prefijo Bearer
Content-Typeapplication/jsonRequerido 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.

  1. 01

    Crea un documento administrado y su primera revisión.

  2. 02

    Solicita el PDF final con una clave de idempotencia estable.

  3. 03

    Consulta hasta succeeded, failed o cancelled.

  4. 04

    Genera un enlace privado de corta duración.

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

Ejecutivo PDFInformes y briefsInformes empresariales, propuestas y briefs visuales.2 IDs
Editorial moderno PDFCurrículumsFormatos claros para causar una gran primera impresión.10 IDs
Membrete moderno PDFCartas de presentaciónCartas diseñadas para acompañar tu currículum.10 IDs
Ensayo de secundaria PDFTareas y trabajosTrabajos cuidados para secundaria, grado inicial y universidad.9 IDs
Propuesta de consultoría PDFPropuestasConsigue clientes, aprobaciones, alianzas y financiación.9 IDs
Ficha de producto PDFVentas y marketingMaterial profesional para vender, demostrar y lanzar.9 IDs
Publicación académica PDFAcadémicosFormatos de publicación, revisión y congresos.3 IDs
Clean PDFLibros y textos extensosDiseños legibles para guías, manuales, ensayos y libros.4 IDs
Legal PDFLegalesAcuerdos 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


Precios de API

Las llamadas API se registran mensualmente. Cada conversión exitosa cuenta para el límite mensual de su nivel.

Free

0 CAD

25 / month

Starter

13,91 CAD / month

500 / month

Pro

82,14 CAD / year

1,000 / month

Credits

6,96 CAD one-time

250 calls

¿Necesita más? Contáctenos para precios empresariales personalizados.

Genera una muestra PDF premium y decide si vale la pena integrar la API.

Probar muestra premium