Markdown to PDF
v2 public betaREST API

API et MCP Markdown vers PDF pour des documents soignés et adaptés à chaque usage

Créez des documents Markdown versionnés, publiez des PDF soignés de façon asynchrone et téléchargez des artefacts vérifiés via une API REST à droits limités.

Essai 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

Démarrage rapide

Créez un document, publiez-le, puis téléchargez le PDF vérifié.

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

Démarrez avec une automatisation vérifiée

Importez le flux complet de publication, suivi et téléchargement privé.

n8n

Workflow inactif avec attentes persistantes et gestion des échecs terminaux.

Télécharger le workflow

Make

Blueprint sans identifiants, suivi borné et garde anti-doublon.

Télécharger le blueprint

Zapier

Étape SDK et manifeste de modèle guidé réunis dans un kit.

Télécharger le kit

Utilisez une clé dédiée avec documents.render et documents.read. Téléchargez l’URL signée sans cette clé.


Utilisez des modèles PDF soignés depuis Claude Code et les agents IA

Connectez une fois le serveur MCP distant, puis demandez à votre agent de recommander les meilleurs modèles pour votre document ou de transformer Markdown en PDF soigné sans quitter la conversation.

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

MCP utilise la même clé et le même quota que l’API REST. Chaque résultat est un lien privé valable 15 minutes, et les comptes gratuits peuvent essayer 5 exports premium avant de passer à l’offre supérieure.

Créer une clé API

Authentification

Authentifiez chaque requête avec votre clé d'API secrète, envoyée comme jeton Bearer dans l'en-tête Authorization.

En-tête de requête

En-têteValeurDescription
AuthorizationBearer mp_live_...Votre clé API préfixée par Bearer
Content-Typeapplication/jsonRequis pour toutes les requêtes

Un cycle de publication géré

La source, la révision immuable, la tâche et l’artefact vérifié restent séparés pour fiabiliser reprises et audits.

  1. 01

    Créez un document géré et sa première révision.

  2. 02

    Demandez le PDF final avec une clé d’idempotence stable.

  3. 03

    Interrogez jusqu’à succeeded, failed ou cancelled.

  4. 04

    Créez un lien d’artefact privé de courte durée.

  5. 05

    Téléchargez l’URL signée sans transmettre Authorization.


POST /api/v1/convert

Convertissez Markdown en un document PDF stylé.


Modèles

Choisissez parmi 57 modèles professionnels répartis en 9 familles spécialisées. Dépliez une famille pour copier un identifiant.

Exécutif PDFRapports et briefsRapports d'entreprise, propositions et briefs visuels.2 IDs
Éditorial moderne PDFCVDes formats précis pour une excellente première impression.10 IDs
Papier à en-tête moderne PDFLettres de motivationDes lettres conçues pour accompagner votre CV.10 IDs
Dissertation de lycée PDFDevoirsDes travaux soignés pour le lycée et l'enseignement supérieur.9 IDs
Proposition de conseil PDFPropositionsGagnez des clients, des validations, des partenaires et des financements.9 IDs
Fiche produit PDFVente et marketingDes supports soignés pour vendre, convaincre et lancer.9 IDs
Publication scientifique PDFAcadémiqueFormats de publication, d'évaluation et de conférence.3 IDs
Clean PDFLivres et formats longsMises en page lisibles pour guides, manuels, essais et livres.4 IDs
Juridique PDFJuridiqueAccords et contrats structurés.1 IDs

Codes d’erreur

Chaque erreur v2 inclut un code stable, un statut HTTP, un indicateur retryable et un délai facultatif. Réessayez uniquement lorsque retryable vaut 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


Tarifs API

Les appels API sont suivis mensuellement. Chaque conversion réussie compte pour la limite mensuelle de votre niveau.

Free

0 $CA

25 / month

Starter

13,91 $CA / month

500 / month

Pro

82,14 $CA / year

1,000 / month

Credits

6,96 $CA one-time

250 calls

Besoin de plus ? Contactez-nous pour des tarifs entreprise personnalisés.

Générez un exemple PDF premium, puis décidez si l’API mérite d’être intégrée.

Essayer un exemple premium