HTTP API

スクリプトや自動化、自作のソフトウェアから変換を使えます。ファイルを送って結果を待ち、PDF と Word をダウンロードするだけ。登録もキーも不要です。

使い方

  1. 1

    送信

    文書(または Markdown のテキスト、GitHub のリンク)を POST し、?wait=50 を付けて結果を待ちます。

  2. 2

    待つ

    たいていの文書は数秒で終わります。50 秒を超える場合は先にジョブ ID が返るので、GET で待ち続けます。

  3. 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 にあります。
toctrue:目次を付けます。
number_sectionstrue / false:見出しに番号を付けるか。
docx_fontswindows(既定)または mac:Word で使う CJK フォント名。
main複数の文書を送ったとき、変換するもの(相対パス)。
filenamemarkdown テキストを送るときのファイル名。
track_changesWord 入力:変更履歴を accept(既定)または reject。
keep_source_formatWord・LaTeX 入力:false で選んだスタイルの書式に置き換えます。
pdf_ocrPDF 入力: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_document400:パラメーターが正しくない、または変換する文書が見つからない。
file_too_big / total_too_big / too_many_files413:サイズまたはファイル数の上限を超えた。
too_many_active / rate_hour / rate_limited429:同時に多すぎるか 1 時間の枠を超えた。しばらくして再試行(Retry-After ヘッダーがあればその秒数待つ)。
busy / storage_full503:サーバーが混雑中。数分後に再試行。
not_found404:ジョブが存在しないか期限切れ。
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 は保証されないので、依存しないでください。

記法ガイド

ページで開く

読み込み中…

フィードバックを送る

うまくいかなかったことや改善のアイデアをお聞かせください。すべて読んでいます。

ほかの方法は? メール · GitHub