Markdown to PDF
v2 public betaREST API

API e MCP de Markdown para PDF para documentos refinados e específicos

Crie documentos Markdown versionados, publique PDFs refinados de forma assíncrona e baixe artefatos verificados por uma REST API com escopo limitado.

Teste 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

Início rápido

Crie um documento, publique-o e baixe o 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

Comece com uma automação revisada

Importe o fluxo completo de publicação, consulta e download privado.

n8n

Workflow inativo com esperas persistentes e tratamento de falhas finais.

Baixar workflow

Make

Blueprint sem credenciais, consulta limitada e proteção contra download duplicado.

Baixar blueprint

Zapier

Etapa SDK e manifesto de modelo guiado em um único kit.

Baixar kit

Use uma chave dedicada com documents.render e documents.read. Baixe a URL assinada sem essa chave.


Use modelos de PDF profissionais no Claude Code e em agentes de IA

Conecte o servidor MCP remoto uma vez e peça ao agente para recomendar os melhores modelos para o documento ou transformar Markdown em um PDF profissional sem sair da conversa.

.mcp.json
{
  "mcpServers": {
    "markdown-to-pdf": {
      "type": "http",
      "url": "https://markdowntopdfconverter.com/mcp",
      "headers": {
        "Authorization": "Bearer ${MD2PDF_API_KEY}"
      }
    }
  }
}

O MCP usa a mesma chave e a mesma cota da API REST. Cada resultado é um link privado que expira em 15 minutos, e contas gratuitas podem testar 5 exportações premium antes de fazer upgrade.

Criar chave de API

Autenticação

Autentique cada requisição com sua chave de API secreta, enviada como token Bearer no cabeçalho Authorization.

Cabeçalho da requisição

CabeçalhoValorDescrição
AuthorizationBearer mp_live_...Sua chave API prefixada com Bearer
Content-Typeapplication/jsonObrigatório para todas as requisições

Um ciclo de publicação gerenciado

Fonte, revisão imutável, tarefa e artefato verificado ficam separados para novas tentativas e auditorias previsíveis.

  1. 01

    Crie um documento gerenciado e a primeira revisão.

  2. 02

    Solicite o PDF final com uma chave de idempotência estável.

  3. 03

    Consulte até succeeded, failed ou cancelled.

  4. 04

    Gere um link privado de curta duração.

  5. 05

    Baixe a URL assinada sem encaminhar Authorization.


POST /api/v1/convert

Converta Markdown em um documento PDF estilizado.


Modelos

Escolha entre 57 modelos profissionais em 9 famílias específicas. Expanda uma família para copiar um ID de modelo.

Executivo PDFRelatórios e briefingsRelatórios empresariais, propostas e briefings visuais.2 IDs
Editorial moderno PDFCurrículosFormatos objetivos para causar uma ótima primeira impressão.10 IDs
Papel timbrado moderno PDFCartas de apresentaçãoCartas criadas para combinar com o seu currículo.10 IDs
Redação do ensino médio PDFTrabalhos acadêmicosTrabalhos bem apresentados para ensino médio e universidade.9 IDs
Proposta de consultoria PDFPropostasConquiste clientes, aprovações, parcerias e financiamento.9 IDs
Página de produto PDFVendas e marketingMateriais profissionais para vender, comprovar e lançar.9 IDs
Publicação científica PDFAcadêmicosFormatos para publicação, revisão e conferências.3 IDs
Clean PDFLivros e textos longosLayouts legíveis para guias, manuais, ensaios e livros.4 IDs
Jurídico PDFJurídicosAcordos e contratos com estrutura profissional.1 IDs

Códigos de erro

Cada erro v2 inclui um código estável, status HTTP, indicador retryable e atraso opcional. Tente novamente apenas quando retryable for 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


Preços da API

As chamadas de API são monitoradas mensalmente. Cada conversão bem-sucedida conta para o limite mensal do seu plano.

Free

CA$ 0

25 / month

Starter

CA$ 13,91 / month

500 / month

Pro

CA$ 82,14 / year

1,000 / month

Credits

CA$ 6,96 one-time

250 calls

Precisa de mais? Entre em contato para preços empresariais personalizados.

Gere uma amostra PDF premium e decida se a API vale a integração.

Testar amostra premium