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
/api/v2/documents{
"taskId": "consulting-proposal",
"revision": {
"markdown": "# Northstar Proposal...",
"spec": { "templateId": "proposal-consulting" }
}
}
SHA-256POST /api/v2/documents → /publishes
Démarrage rapide
Créez un document, publiez-le, puis téléchargez le PDF vérifié.
#!/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
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.
Make
Blueprint sans identifiants, suivi borné et garde anti-doublon.
Zapier
Étape SDK et manifeste de modèle guidé réunis dans un 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.
{
"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é APIAuthentification
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ête | Valeur | Description |
|---|---|---|
| Authorization | Bearer mp_live_... | Votre clé API préfixée par Bearer |
| Content-Type | application/json | Requis 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.
- 01
Créez un document géré et sa première révision.
- 02
Demandez le PDF final avec une clé d’idempotence stable.
- 03
Interrogez jusqu’à succeeded, failed ou cancelled.
- 04
Créez un lien d’artefact privé de courte durée.
- 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.
CVDes formats précis pour une excellente première impression.10 IDs
Lettres de motivationDes lettres conçues pour accompagner votre CV.10 IDs
DevoirsDes travaux soignés pour le lycée et l'enseignement supérieur.9 IDs
PropositionsGagnez des clients, des validations, des partenaires et des financements.9 IDs
Vente et marketingDes supports soignés pour vendre, convaincre et lancer.9 IDs
AcadémiqueFormats de publication, d'évaluation et de conférence.3 IDs
Livres et formats longsMises en page lisibles pour guides, manuels, essais et livres.4 IDs
JuridiqueAccords 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
| Statut | 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 |
Tarifs API
Les appels API sont suivis mensuellement. Chaque conversion réussie compte pour la limite mensuelle de votre niveau.
0 $CA
25 / month
13,91 $CA / month
500 / month
82,14 $CA / year
1,000 / month
6,96 $CA one-time
250 calls
Besoin de plus ? Contactez-nous pour des tarifs entreprise personnalisés.
Avant de quitter la documentation