ドキュメントを解析する API
このエンドポイントの機能
PDF4me ドキュメントを解析する 保存した解析テンプレートを PDF 抽出されたフィールドを以下のように返します。 JSON 1回で REST 電話してください。 PDF として Base64、 テンプレートID ダッシュボードから、クライアントが生成した ParseId、テンプレートで定義した名前をキーとする構造化された応答を受け取ります。テンプレートには抽出ロジックが含まれています(正規表現 安定したパターンについては、 JavaScript 表現 (条件付きルールの場合)この同じ呼び出しで、請求書、契約書、領収書、および設定したカスタムドキュメントレイアウトが抽出されます。
このエンドポイントを呼び出す前に: 解析テンプレートを作成する PDF4me ダッシュボードを参照してください。 ドキュメントの解析情報を準備する 完全なセットアップ手順については、正規表現の例 (INV-\d{6,10} 請求書番号については、 \d{2}/\d{2}/\d{4} 日付用)、および2人の労働者 JavaScript 表現分類器のサンプル。
認証 API リクエスト
毎 PDF4me REST 電話にはあなたの API キー Authorization ヘッダー。開発者ダッシュボードからキーを作成または選択し、サーバー側に保持してください。ブラウザのコードに公開しないでください。
見逃してはならない重要な事実
ドキュメントコンテンツ、 ドキュメント名、 そして 非同期 必須です。 テンプレートID、 テンプレート名、 そして ParseId これらはオプションであり、カスタムキャプチャフィールドでキー付けされたレスポンスが必要な場合にのみ必要です。これらがない場合、 API それでも、次のような便利なデフォルトフィールドを返します ドキュメントタイプ そして ページ数。アプリケーション/json テンプレート内のキャプチャキーごとに1つのフィールドとデフォルトフィールドがあります。これは、生のバイナリを返すProtect、Compress、Convertエンドポイントとは異なります。 PDFs. Parse Document は常に次の値を返します JSON なぜなら、ファイルではなく構造化データを返すからです。REST API 終点
方法: 役職
URL: https://api.pdf4me.com/api/v2/ParseDocument
送信 コンテンツタイプ: application/json そして 承認 ヘッダーにあなたの API キーを設定します。 非同期 に 間違い 同期応答の場合(HTTP 解析済みで200 JSON)、 または 真実 受け取る HTTP 202プラスa 位置 解析されたヘッダーが200を返すまでポーリングします JSON。
Postmanリクエストの設定
| 設定 | 価値 |
|---|---|
| Method | POST |
| URL | https://api.pdf4me.com/api/v2/ParseDocument |
| Headers | Content-Type: application/json |
| Authorization | Basic Auth with your API key, or header Authorization: Basic YOUR_API_KEY |
| Body | raw JSON with docContent, docName, async (and optional TemplateId, TemplateName, ParseId) |
| Response (sync) | When async is false: HTTP 200 with parsed JSON containing one field per template key plus default fields such as documentType and pageCount. |
| Response (async) | When async is true: HTTP 202 with a Location header. GET that URL until you receive 200 with the parsed JSON. Useful for large PDFs or batch processing. |
パラメータ
常に必須: ドキュメントコンテンツ、 ドキュメント名、 非同期。 条件付き(テンプレートベースの抽出): テンプレートID (推奨)または テンプレート名 プラス ParseIdこれらがなければ API 依然として有用なデフォルトフィールド(documentType、pageCount)は返されますが、カスタムキーの値は返されません。
| パラメータ | 必須 | その機能 | 例 |
|---|---|---|---|
| jobIdExt | Optional | Your own reference for this call. It is stored with the API call log so you can correlate calls with your jobs. Type: string. | |
| integrations | Optional | Integration identifiers, forwarded unchanged with the job's notification settings. Type: array. | |
| isAsync | Optional | Set to `true` to process the action asynchronously and get a job to poll at `/api/v2/GetActionStatus`. Only honoured by actions that support asynchronous processing. Type: boolean. | true |
| docName | Optional | Source file name including its extension. Several actions dispatch on the extension, so it should always be set; when omitted a per-action default is used. Type: string. | invoice.pdf |
| docContent | Required | The source file. Accepts the base64-encoded file content, a `pdf4meblobid://<id>` reference to a previously uploaded blob, or an `https` URL to the source document. Required: an empty value fails with `File is empty`. Type: string. | JVBERi0xLjQK... |
| docContentBytes | Optional | Alternative raw byte payload for the source file. Type: string. | |
| callBackUrl | Optional | Optional URL notified when an asynchronous job completes. Type: string. | |
| templateId | Optional | ID (GUID) of a parse template saved in the PDF4me Dashboard (https://dev.pdf4me.com/dashboard/#/parse-document/). Overridden by `parseId` and by a matching `templateName`. The call fails with `TemplateId is empty` when no template is given. Type: string. | 12345678-1234-1234-1234-123456789abc |
| parseId | Optional | ID (GUID) of a parse template saved in the PDF4me Dashboard (https://dev.pdf4me.com/dashboard/#/parse-document/). When set, it is used instead of `templateId`. Type: string. | 87654321-4321-4321-4321-cba987654321 |
| templateName | Optional | Name of a parse template saved in your PDF4me Dashboard account (https://dev.pdf4me.com/dashboard/#/parse-document/), matched case-insensitively. When a template with this name exists, it takes precedence over `templateId` and `parseId`. Type: string. | invoice_template |
リクエスト例
例A:最小限のペイロード(テンプレートなし)
最も小さな呼び出しは API 受け入れます。デフォルトのフィールド(documentType、pageCount)を返しますが、テンプレートが参照されていないため、カスタムキーの値は返されません。
{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"async": true
}
例B:テンプレートベースの抽出(プロダクションパターン)
推奨される本番環境用ペイロード。テンプレートで定義されたキャプチャキーごとに1つのフィールドと、デフォルトフィールドを返します。
{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateId": "12345678-1234-1234-1234-123456789abc",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}
例C:名前によるテンプレート検索
TemplateId が手元にない場合の代替手段としてルックアップを使用できます。ただし、テンプレートの名前を変更するとこの呼び出しが機能しなくなるため、本番環境での使用は避けてください。
{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateName": "invoice_template",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}
応答成功 (同期、 async: false)
HTTP 解析された200 JSONテンプレートからの各キャプチャキーがフィールドになります。デフォルトのフィールド(documentType、 pageCount)は常に返されます。
{
"parsedData": {
"invoiceNumber": "INV-2024-001",
"invoiceDate": "15/01/2024",
"totalAmount": "$1,250.50",
"customerName": "Acme Corporation"
},
"documentType": "invoice",
"pageCount": 1
}
応答成功 (非同期、 async: true)
HTTP 202で Location ヘッダー。それをポーリングします。 URL と GET (同じ認証ヘッダー) HTTP 解析された200 JSON。
HTTP/1.1 202 Accepted
Location: https://api.pdf4me.com/api/v2/ParseDocumentStatus/<job-id>
curlの例
curl -X POST https://api.pdf4me.com/api/v2/ParseDocument \
-H "Content-Type: application/json" \
-H "Authorization: Basic YOUR_API_KEY" \
-d '{
"docContent": "JVBERi0xLjQK...",
"docName": "invoice.pdf",
"TemplateId": "12345678-1234-1234-1234-123456789abc",
"ParseId": "87654321-4321-4321-4321-cba987654321",
"async": true
}'
テンプレート設定
解析テンプレートには、すべての抽出ロジックが含まれています。ダッシュボードで一度設定すれば、あとは次のように呼び出すことができます。 TemplateId どこからでも。
正規表現安定したパターンINV-\d{6,10})、日付(\d{2}/\d{2}/\d{4})、量($?\d{1,3}(?:,\d{3})*(?:.\d{2})?)、納税者番号、郵便番号。生産キーの約80%で使用されます。JavaScript式条件論理と分類器文章; 関数は文字列を返します。参照 ドキュメントの解析情報を準備する 2 つの動作中の分類器サンプル (functionFormatTextDate1 と functionGetInvoiceOrder) について。コードサンプル
事前に構築されたサンプルをロードします PDFエンコードして Base64、 POST に /api/v2/ParseDocument同期/非同期応答を処理します。
統合例
一般的なREST統合パターンTypical ways developers call Parse Document.
- 監視員が新しいベンダーをピックアップする PDFs メールの受信トレイまたはクラウドフォルダから。
- サービスは各項目を読み取ります PDF バイトとしてエンコードし、 Base64。
- POST に
/api/v2/ParseDocument請求書のTemplateIdと新しいParseIdを使用します。 - 返されたマップ
請求書番号、合計金額、 そして請求書発行日直接データベースへ INSERT。
- A JavaScript テンプレート内の式キーは、文書の種類(請求書、注文書、利用規約)を返します。
- POST 正規表現で抽出されたフィールドとともに型を返します JSON 応答。
- あなたのコードは型フィールドに基づいて分岐し、構造化データを適切な下流システムにルーティングします。
- 数MBを超えるファイルの場合、 POST と
非同期: true。 - 読んでください
位置202レスポンスのヘッダー。 - 投票する URL と GET 10秒ごとに( Python サンプルでは最大15回の再試行を使用します。
- レスポンスステータスが200の場合は、 JSON 本体を操作し、下流の処理を続行する。