PDF to Markdown API 日本語ガイド

PDFをMarkdownへ変換する開発者向けAPI。RAG、検索、文書自動化に使いやすい構造化テキストを返します。

pdfToMarkdownは、PDFをMarkdownへ変換するREST APIです。請求書、研究論文、スキャンPDF、表を含むレポートなどを、LLMやRAGパイプラインで扱いやすいテキストに変換します。

基本エンドポイント

Bash・curl・Python 3を使用します。環境変数PDFTOMARKDOWN_API_KEYと、保存済みのPDFTOMARKDOWN_IDEMPOTENCY_KEYを設定してください。同一の入力とオプションの復旧時だけ同じキーを再利用します。

最大11分の待機を見込んでください。中断やタイムアウト後も処理・課金が続く場合があります。経過時間はクライアント側で測定します。

#!/usr/bin/env bash
set -euo pipefail
: "${PDFTOMARKDOWN_API_KEY:?Set your API key}"
: "${PDFTOMARKDOWN_IDEMPOTENCY_KEY:?Set a saved conversion identity}"
key=$PDFTOMARKDOWN_API_KEY
identity=$PDFTOMARKDOWN_IDEMPOTENCY_KEY
work=$(mktemp -d)
trap 'rm -rf "$work"' EXIT
result=$work/result
status=$(curl --silent --show-error --max-time 660 -o "$result" -w '%{http_code}' \
  "https://pdftomarkdown.dev/v1/convert" \
  -H "Authorization: Bearer $key" -H "Idempotency-Key: $identity" \
  -H "Content-Type: application/json" \
  --data '{"input":{"pdf_url":"https://pdftomarkdown.dev/samples/invoice.pdf"}}')
if [ "$status" != 200 ]; then echo "HTTP $status; keep the identity for recovery" >&2; exit 1; fi
python3 - "$result" <<'PY'
import json, sys
with open(sys.argv[1]) as response:
    result = json.load(response)
if not (isinstance(result, dict) and result.get("complete") is True
        and isinstance(result.get("markdown"), str)
        and type(result.get("pages")) is int and result["pages"] >= 0
        and isinstance(result.get("request_id"), str) and result["request_id"].strip()):
    sys.exit("Incomplete or invalid conversion response")
sys.stdout.write(result["markdown"])
PY

CLI(コード不要)

npx pdftomarkdown document.pdf > document.md

Node 18+があればインストール不要で使えます。APIキーは環境変数 PDFTOMARKDOWN_API_KEY で指定します(未設定の場合はデモキーで1ページ目のみ変換)。詳細はCLIガイド(英語)を参照してください。Codexなどのコーディングエージェントで使う場合はCodexでPDFを読む方法をご覧ください。

返却形式

成功時は必ず complete: true と markdown、pages、request_id を返します。complete: true のない成功レスポンスは受け入れないでください。

注意点

PDFはサーバー側で処理されます。機密文書を送信する前に、プライバシー、セキュリティ、データ保持を確認してください。