HTTP API
スクリプトや自動化、自作のソフトウェアから変換を使えます。ファイルを送って結果を待ち、PDF と Word をダウンロードするだけ。登録もキーも不要です。
使い方
- 1
送信
文書(または Markdown のテキスト、GitHub のリンク)を POST し、?wait=50 を付けて結果を待ちます。
- 2
待つ
たいていの文書は数秒で終わります。50 秒を超える場合は先にジョブ ID が返るので、GET で待ち続けます。
- 3
ダウンロード
結果の files に各ファイルのダウンロードリンクがあります(2 時間有効)。
キー不要
そのまま呼び出せます。Web ページと同じ無料枠です。
ページと同じ品質
スタイル、表、数式、参考文献、Word テンプレートがすべて使えます。
さまざまな入力
Markdown(画像フォルダや .zip 付き)、Word、LaTeX、PDF、GitHub のリンク。
自動で削除
結果は 2 時間後に削除されます。DELETE ですぐに削除することもできます。
クイックスタート
report.md を PDF と Word に変換します。完了すると 200 が返り、files にダウンロードリンクが入ります:
curl -F "file=@report.md" -F 'options={"formats":["pdf","docx"]}' \
"https://mdpdfword.com/api/v1/jobs?wait=50"202(待機中または変換中)が返ったら、ジョブ ID で待ち続けます:
curl "https://mdpdfword.com/api/v1/jobs/JOB_ID?wait=50"エンドポイント
| リクエスト | 内容 |
|---|---|
POST /api/v1/jobs?wait=50 | 変換を送信し、最大 wait 秒(上限 50)待ちます。完了なら 200、まだなら 202 とジョブ ID。 |
GET /api/v1/jobs/{job_id}?wait=50 | ジョブの状態。wait を付けると完了するか時間切れまで待ちます。 |
DELETE /api/v1/jobs/{job_id} | このジョブの結果ファイルをすぐに削除します。 |
GET /api/v1/info | 使えるスタイル、各種制限、現在の待ち状況。 |
送信するフィールド(multipart/form-data)
| フィールド | 内容 |
|---|---|
file | 変換するファイル。文書と、それが使う画像や .bib などのぶん繰り返します。.zip も使えます。 |
paths | 任意:file と同じ順序の相対パスのリスト(JSON)。フォルダ構成を保ちます。例:["report.md", "images/a.png"]。 |
markdown | ファイルの代わりに Markdown のテキスト。 |
url | ファイルの代わりに、公開 GitHub リポジトリ内の Markdown ファイルのリンク。画像も一緒に取得します。 |
template | 任意:.docx テンプレート。結果はそのページ設定、フォント、スタイル、ヘッダー・フッターに従います。 |
options | 変換オプション(JSON オブジェクト)。下の表を参照。 |
変換オプション(options)
| オプション | 内容 |
|---|---|
formats | ["pdf", "docx"](既定)、["pdf"]、["docx"]。Word・LaTeX・PDF の入力では、編集用 Markdown だけを得る ["markdown"] も使えます。 |
theme | スタイル名。既定は business。選択肢は /api/v1/info にあります。 |
toc | true:目次を付けます。 |
number_sections | true / false:見出しに番号を付けるか。 |
docx_fonts | windows(既定)または mac:Word で使う CJK フォント名。 |
main | 複数の文書を送ったとき、変換するもの(相対パス)。 |
filename | markdown テキストを送るときのファイル名。 |
track_changes | Word 入力:変更履歴を accept(既定)または reject。 |
keep_source_format | Word・LaTeX 入力:false で選んだスタイルの書式に置き換えます。 |
pdf_ocr | PDF 入力:true は、高度な認識のため PDF を SoMark に送ることへの同意です(下のプライバシーを参照)。指定しなければ送信しません。 |
結果
status は queued(待機中)、running(変換中)、done(完了)、error(失敗。error と code に理由)。warnings には画像の不足など確認すべき点が入ります。
{
"ok": true,
"job_id": "Vq3…",
"status": "done",
"version": 3,
"main": "report.md",
"elapsed": 4.2,
"files": [
{
"format": "pdf",
"name": "report.pdf",
"size": 182340,
"url": "https://mdpdfword.com/files/results/…/report.pdf",
"file_id": "…"
},
{
"format": "docx",
"name": "report.docx",
"size": 48211,
"url": "https://mdpdfword.com/files/results/…/report.docx",
"file_id": "…"
}
],
"warnings": [],
"pdf_pages": 3,
"expires_in_minutes": 120
}Python の例
import json
import requests
API = "https://mdpdfword.com/api/v1/jobs"
with open("report.md", "rb") as f:
job = requests.post(API, params={"wait": 50}, files={"file": f},
data={"options": json.dumps({"formats": ["pdf", "docx"]})},
timeout=70).json()
while job.get("status") in ("queued", "running"):
job = requests.get(f"{API}/{job['job_id']}", params={"wait": 50}, timeout=70).json()
if not job.get("ok"):
raise SystemExit(f"{job.get('code')}: {job.get('error')}")
for out in job["files"]:
with open(out["name"], "wb") as f:
f.write(requests.get(out["url"], timeout=120).content)エラーコード
| code | 内容 |
|---|---|
bad_request / no_document | 400:パラメーターが正しくない、または変換する文書が見つからない。 |
file_too_big / total_too_big / too_many_files | 413:サイズまたはファイル数の上限を超えた。 |
too_many_active / rate_hour / rate_limited | 429:同時に多すぎるか 1 時間の枠を超えた。しばらくして再試行(Retry-After ヘッダーがあればその秒数待つ)。 |
busy / storage_full | 503:サーバーが混雑中。数分後に再試行。 |
not_found | 404:ジョブが存在しないか期限切れ。 |
pdf_scanned | 失敗:スキャンした PDF。認識するには pdf_ocr: true を指定。 |
timeout / conversion_failed | 失敗:文書が複雑すぎるか誤りがある。error に説明があります。 |
制限
Web ページと同じです。IP アドレスごとに同時 2 件まで、1 時間 30 件まで。1 ファイル 20 MB、合計 60 MB・300 ファイルまで。1 件の変換は最長 5 分。結果の保存は 2 時間。
このサービスは 1 台のマシンで動いています。Web ページの利用者がスクリプトの後ろで待たされないよう、API のリクエストは変換枠の一部を共有するため、混雑時は待ち時間が長くなることがあります。並列でまとめて送らず、1 件ずつ送ってください。
プライバシー
アップロードしたファイルはこの変換にだけ使われ、結果は 2 時間後に削除されます。PDF は既定ではこのサイトのサーバーでのみ読み取ります。リクエストに "pdf_ocr": true がある場合に限り、高度な認識のため第三者の SoMark に PDF を送ります。機密性の高いファイルでは指定しないでください。詳しくはプライバシーポリシーをご覧ください。 プライバシーポリシー
よくある質問
登録や API キーは必要ですか?
いいえ。そのまま呼び出せます。Web ページと同じ無料枠を使います。
Web ページ(ブラウザの JavaScript)から直接呼び出せますか?
いいえ。ほかのサイトが訪問者のファイルをここへ送れないよう、API はクロスサイトの呼び出しを許可していません。サーバーやスクリプトから呼び出してください。
MCP との違いは?
MCP は Claude Code や Codex などの AI アシスタント向け、HTTP API はスクリプトやプログラム向けです。品質と枠は同じです。
API は変わりますか?
/api/v1 は安定版です。フィールドが増えることはありますが、既存のフィールドの意味は変わりません。Web ページ内部の /api/jobs は保証されないので、依存しないでください。