APIリファレンス
文書から構造化データを抽出するためのREST API。ファイルを送信すると、構造化されたJSONが返されます。
REST APIJSONレスポンスWebhook60以上の言語
認証
すべてのリクエストには X-API-Key ヘッダーが必要です。AirparserアカウントのSettings → APIからキーを取得してください。
cURL
curl https://api.airparser.com/inboxes \
-H "X-API-Key: YOUR_API_KEY"APIキーは安全に保管してください—パスワードと同様に扱ってください。
文書の解析
任意のファイルをアップロードすると、1回の同期リクエストで完全に抽出されたデータが返されます—Webhookもポーリングも2回目の呼び出しも不要です。レスポンスには、抽出されたすべてのフィールドが構造化されたJSONとして含まれており、すぐにワークフローで利用できます。
curl \
-X POST \
https://api.airparser.com/inboxes/<INBOX_ID>/upload-sync \
-F 'file=@./receipt.pdf' \
-H "X-API-Key: <YOUR_API_KEY>"レスポンス200 OK
{
"doc_id": "64abc123def456...",
"parsing_in_progress": false,
"status": "parsed",
"name": "invoice.pdf",
"content_type": "application/pdf",
"created_at": "2026-03-10T12:00:00.000Z",
"processed_at": "2026-03-10T12:00:04.321Z",
"json": {
"invoice_number": "INV-001",
"vendor": "Acme Corp",
"total": 1250.00,
"currency": "USD",
"date": "2024-01-15"
}
}抽出データの取得
IDで文書を取得し、抽出ステータスと結果を確認できます。このエンドポイントをポーリングするか、Webhookを使って処理完了を検知してください。
GET
/documents/{document_id}cURL
curl https://api.airparser.com/documents/doc_abc123 \
-H "X-API-Key: YOUR_API_KEY"レスポンス200 OK
{
"doc_id": "64abc123def456...",
"parsing_in_progress": false,
"status": "parsed",
"name": "invoice.pdf",
"content_type": "application/pdf",
"created_at": "2026-03-10T12:00:00.000Z",
"processed_at": "2026-03-10T12:00:04.321Z",
"json": {
"invoice_number": "INV-001",
"vendor": "Acme Corp",
"total": 1250.00,
"date": "2024-01-15"
}
}抽出スキーマの定義
抽出するフィールドを定義します。スカラーフィールド、リスト(明細行用)、列挙型に対応しています。
POST
/inboxes/{inbox_id}/schema{
"fields": [
{
"type": "scalar",
"data": {
"name": "invoice_number",
"description": "Invoice reference number",
"type": "string",
"default_value": ""
}
},
{
"type": "list",
"data": {
"name": "items",
"description": "List of items in the invoice",
"attributes": [
{
"name": "description",
"description": "Item description",
"type": "string",
"default_value": ""
},
{
"name": "amount",
"description": "Item amount",
"type": "decimal",
"default_value": "0.00"
}
]
}
},
{
"type": "enum",
"data": {
"name": "payment_status",
"description": "Current payment status",
"values": ["paid", "pending", "overdue"]
}
}
]
}後処理
連携先に送信される前に、抽出データに対してPythonコードを実行できます。ビジネスロジックの追加、フィールドの統合、値のフォーマットが可能です。
フィールドの統合
# Merge first and last name into full name
data['fullname'] = data['first_name'] + " " + data['last_name']
# Using f-strings (recommended)
data["fullname"] = f"{data['first_name']} {data['last_name']}"
# Using format() function
data['fullname'] = '{} {}'.format(data['first_name'], data['last_name'])条件付きロジック
# Only process invoices above certain amount
if float(data.get('total_amount', 0)) > 1000:
data['priority'] = 'high'
else:
data['priority'] = 'normal'
# Add timestamp
import datetime
data['processed_at'] = datetime.datetime.now().isoformat()Webhook
抽出が完了すると、Airparserはあなたのエンドポイントに POST リクエストを送信します。 200 で応答して確認してください。
設定手順
- 1 サーバーやngrokのようなサービスからWebhookエンドポイントURLをコピーします。
- 2 Airparserアカウントの連携 → Webhookに移動します。
- 3 「Webhookを作成」をクリックし、エンドポイントURLを貼り付けます。
- 4 サンプル文書でWebhookをテストし、連携が正しく機能することを確認します。
import json
from flask import Flask, request
app = Flask(__name__)
@app.route('/webhook', methods=['POST'])
def webhook():
payload = request.data
data = json.loads(payload)
# Process the parsed data
# data contains all extracted fields
return {'success': True}
if __name__ == '__main__':
app.run(port=4242)リソース
技術的でない概要をお探しですか? 文書抽出APIとは をお読みください—コード例なしで、コンセプト、ユースケース、AirparserのAPIの仕組みを解説しています。
Postmanコレクション