API и MCP Markdown в PDF для аккуратных документов под конкретные задачи
Создавайте версионные документы Markdown, асинхронно публикуйте аккуратные PDF и скачивайте проверенные артефакты через REST API с ограниченными правами.
Premium-проба
/api/v2/documents{
"taskId": "consulting-proposal",
"revision": {
"markdown": "# Northstar Proposal...",
"spec": { "templateId": "proposal-consulting" }
}
}
SHA-256POST /api/v2/documents → /publishes
Быстрый старт
Создайте документ, опубликуйте его и скачайте проверенный PDF.
#!/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
Начните с проверенной автоматизации
Импортируйте полный поток публикации, опроса и закрытой загрузки.
n8n
Неактивный workflow с сохраняемыми ожиданиями и обработкой конечных ошибок.
Make
Blueprint без учётных данных, с ограниченным опросом и защитой от повторной загрузки.
Zapier
SDK Code и манифест пошагового шаблона в одном комплекте.
Используйте отдельный ключ с documents.render и documents.read. Скачивайте подписанный URL без этого ключа.
Используйте профессиональные PDF-шаблоны в Claude Code и ИИ-агентах
Подключите удалённый MCP-сервер один раз, а затем просите агента рекомендовать наиболее подходящие шаблоны для документа или превратить Markdown в аккуратный PDF прямо в диалоге.
{
"mcpServers": {
"markdown-to-pdf": {
"type": "http",
"url": "https://markdowntopdfconverter.com/mcp",
"headers": {
"Authorization": "Bearer ${MD2PDF_API_KEY}"
}
}
}
}MCP использует тот же API-ключ и лимит, что и REST API. Каждый результат — приватная ссылка на 15 минут. Бесплатный аккаунт позволяет попробовать 5 premium-экспортов до перехода на платный план.
Создать API-ключАутентификация
Аутентифицируйте каждый запрос своим секретным API-ключом, передаваемым как Bearer-токен в заголовке Authorization.
Заголовок запроса
| Заголовок | Значение | Описание |
|---|---|---|
| Authorization | Bearer mp_live_... | Ваш ключ API с префиксом Bearer |
| Content-Type | application/json | Обязательно для всех запросов |
Единый управляемый цикл публикации
Источник, неизменяемая ревизия, задание и проверенный артефакт разделены для предсказуемых повторов и аудита.
- 01
Создайте управляемый документ и первую ревизию.
- 02
Запросите итоговый PDF со стабильным ключом идемпотентности.
- 03
Опрашивайте до succeeded, failed или cancelled.
- 04
Выпустите краткосрочную закрытую ссылку на артефакт.
- 05
Скачайте подписанный URL, не передавая Authorization.
POST /api/v1/convert
Преобразуйте Markdown в стилизованный PDF-документ.
Шаблоны
Выберите один из 57 профессиональных шаблонов в 9 тематических семействах. Раскройте семейство, чтобы скопировать ID шаблона.
РезюмеЧёткие профессиональные форматы для сильного первого впечатления.10 IDs
Сопроводительные письмаПисьма, стилистически дополняющие резюме.10 IDs
Учебные заданияАккуратные работы для школы, колледжа и университета.9 IDs
ПредложенияМатериалы для привлечения клиентов, согласований, партнёров и финансирования.9 IDs
Продажи и маркетингПрофессиональные материалы для продаж, доказательств и запусков.9 IDs
Научные документыФорматы для публикации, рецензирования и конференций.3 IDs
Книги и длинные текстыУдобные для чтения макеты руководств, эссе и книг.4 IDs
Юридические документыСтруктурированные соглашения и договоры.1 IDs
Коды ошибок
Каждая ошибка v2 содержит стабильный код, статус HTTP, флаг retryable и необязательную задержку. Повторяйте запрос только когда retryable равно 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
| Статус | 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 |
Цены API
Вызовы API учитываются ежемесячно. Каждое успешное преобразование учитывается в ежемесячном лимите вашего тарифа.
0 CA$
25 / month
13,91 CA$ / month
500 / month
82,14 CA$ / year
1,000 / month
6,96 CA$ one-time
250 calls
Нужно больше? Свяжитесь с нами для индивидуальных корпоративных цен.
Перед уходом из документации