スタートガイド
このガイドでは、環境のセットアップからDocMap APIでの最初の抽出リクエストの実行までを説明します。
前提条件
始める前に、以下を確認してください:
- DocMapアカウント -- まだアカウントをお持ちでない場合は、docmap.ioでサインアップしてください。
- 1つ以上の抽出テンプレート -- ドキュメントから抽出したいフィールドを定義するテンプレートをダッシュボードで作成してください。
TIP
テンプレートは抽出したいデータの構造を定義します。例えば、請求書テンプレートには vendor_name、invoice_number、total_amount、line_items 配列などのフィールドが含まれる場合があります。APIコールを行う前に、ダッシュボードからテンプレートを作成・管理できます。
ベースURL
すべてのAPIリクエストは以下のURLに対して行います:
https://api.docmap.ioすべてのエンドポイントには /v1/ プレフィックスが付きます。例えば、抽出エンドポイントは以下のとおりです:
https://api.docmap.io/v1/extractions/runAPIキーの作成
- ダッシュボード > 設定 > APIキー に移動します。
- APIキーを作成 をクリックします。
- キーにわかりやすい名前を付けます(例:「本番サーバー」や「ローカル開発」)。
- 有効期限を選択します。
- キーをすぐにコピーしてください -- 一度しか表示されず、後から取得することはできません。
WARNING
APIキーは安全に保管してください。作成時に一度だけ表示されます。紛失した場合は、新しいキーを作成する必要があります。
APIキーの形式は dm_live_... で、すべてのリクエストの Authorization ヘッダーで使用します。
最初のリクエスト
APIのヘルスチェックエンドポイントにアクセスして、セットアップを確認します:
bash
curl https://api.docmap.io/healthtypescript
const res = await fetch('https://api.docmap.io/health')
const data = await res.json()
console.log(data) // { status: "ok" }python
import requests
res = requests.get('https://api.docmap.io/health')
print(res.json()) # {"status": "ok"}正常に動作している場合、以下のレスポンスが返されます:
json
{ "status": "ok" }最初の抽出を実行する
APIキーとテンプレートの準備ができたら、PDFから構造化データを抽出できます。PDFファイルをbase64文字列にエンコードし、/v1/extractions/run エンドポイントに送信します。
bash
curl -X POST https://api.docmap.io/v1/extractions/run \
-H "Authorization: Bearer dm_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"templateId": "your-template-id",
"fileName": "invoice.pdf",
"pdfBase64": "JVBERi0xLjQ...",
"mimeType": "application/pdf"
}'typescript
const apiKey = process.env.DOCMAP_API_KEY
const response = await fetch('https://api.docmap.io/v1/extractions/run', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
templateId: 'your-template-id',
fileName: 'invoice.pdf',
pdfBase64: 'JVBERi0xLjQ...', // base64エンコードされたPDF
mimeType: 'application/pdf',
}),
})
const data = await response.json()
console.log(data)python
import requests
import base64
api_key = "dm_live_your_api_key"
# PDFを読み込みエンコード
with open("invoice.pdf", "rb") as f:
pdf_base64 = base64.b64encode(f.read()).decode("utf-8")
response = requests.post(
"https://api.docmap.io/v1/extractions/run",
headers={
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json",
},
json={
"templateId": "your-template-id",
"fileName": "invoice.pdf",
"pdfBase64": pdf_base64,
"mimeType": "application/pdf",
},
)
print(response.json())レスポンス例
抽出が成功すると、テンプレートフィールドに一致する抽出データが返されます:
json
{
"id": "ext_abc123",
"templateId": "your-template-id",
"fileName": "invoice.pdf",
"status": "completed",
"data": {
"vendor_name": "Acme Corp",
"invoice_number": "INV-2024-001",
"invoice_date": "2024-11-15",
"total_amount": 1250.00,
"currency": "USD",
"line_items": [
{
"description": "Widget A",
"quantity": 10,
"unit_price": 125.00
}
]
},
"createdAt": "2024-11-20T14:30:00.000Z"
}使用量の確認
プラン制限内に収まるよう、API使用量を監視します:
bash
curl https://api.docmap.io/v1/usage \
-H "Authorization: Bearer dm_live_your_api_key"typescript
const res = await fetch('https://api.docmap.io/v1/usage', {
headers: { 'Authorization': `Bearer ${apiKey}` },
})
const usage = await res.json()
console.log(usage)python
response = requests.get(
"https://api.docmap.io/v1/usage",
headers={"Authorization": f"Bearer {api_key}"},
)
print(response.json())次のステップ
最初の抽出が完了したら、残りのドキュメントをご覧ください:
