構造化データ抽出 API
/ocr.json エンドポイントは、画像または文書から名前付きフィールドを抽出します。
このエンドポイントは型付き JSON を返します。レスポンスに含める値は、fields クエリパラメーターで選択します。
エンドポイント
POST https://api.ocrskill.com/ocr.json
各リクエストには bearer トークンが必要です。
Authorization: Bearer sk-your-key-here
無料の API キーを取得するには、次のコマンドを使用します。
curl https://api.ocrskill.com/get-key.json
クイックスタート
フィールド名を fields に追加します。次に、ファイルをアップロードします。
curl "https://api.ocrskill.com/ocr.json?fields=last_name,first_name,nationality,birthdate" \
-H "Authorization: Bearer sk-your-key-here" \
-F "file=@identity-card.pdf"
エンドポイントは次の JSON を返します。
{
"last_name": "MUSTERMANN",
"first_name": "ERIKA",
"nationality": "DEUTSCH",
"birthdate": "1964-08-12"
}
ファイルの送信
エンドポイントは、マルチパートアップロード、未加工ファイル、JSON データ URI を受け付けます。
最大ファイルサイズは 20 MB です。
マルチパートアップロード
file、image、document、data のいずれかのフォームフィールドでファイルを送信します。
curl "https://api.ocrskill.com/ocr.json?fields=thumbnail_hook_text,video_title,video_channel" \
-H "Authorization: Bearer sk-your-key-here" \
-F "file=@thumbnail.jpg"
未加工バイナリのアップロード
正しい Content-Type を指定して、ファイルのバイト列を送信します。
curl "https://api.ocrskill.com/ocr.json?fields=company_name,invoice_date" \
-H "Authorization: Bearer sk-your-key-here" \
-H "Content-Type: application/pdf" \
--data-binary "@invoice.pdf"
データ URI を含む JSON 本文
document_url にデータ URI を指定した JSON オブジェクトを送信します(Mistral API と同様で互換性があります)。
curl "https://api.ocrskill.com/ocr.json?fields=title,publish_date" \
-H "Authorization: Bearer sk-your-key-here" \
-H "Content-Type: application/json" \
-d '{
"document_url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQ..."
}'
対応ファイル形式
エンドポイントは次の画像形式に対応します。
- PNG
- JPEG
- WebP
- GIF
- BMP
- TIFF
エンドポイントは次の文書形式にも対応します。
- Microsoft Word(
DOCおよびDOCX) - Microsoft Excel(
XLSおよびXLSX) - Microsoft PowerPoint(
PPTおよびPPTX) - OpenDocument の文書、表計算、プレゼンテーションファイル(
ODT、ODS、ODP) - RTF
- CSV
フィールドの選択
fields パラメーターには、フィールド名をカンマで区切って指定します。
必須フィールド
接尾辞のないフィールド名には値が必要です。値が見つからない場合、エンドポイントは 400 を返します。
?fields=last_name,first_name,birthdate
任意フィールド
フィールドを任意にするには ? を追加します。値が見つからない場合、レスポンスにはその任意フィールドが含まれません。
?fields=last_name,first_name,birthdate?,nationality?
検出モードの使用
検出モードを使用するには、fields を省略します。このモードでは、対応するすべてのフィールドが任意になります。
レスポンスには、エンドポイントが検出したフィールドのみが含まれます。
curl "https://api.ocrskill.com/ocr.json" \
-H "Authorization: Bearer sk-your-key-here" \
-F "file=@report.docx"
エラー処理
| 状況 | ステータス | 詳細 |
|---|---|---|
fields に不明なフィールド名がある |
400 |
エラーは未対応のフィールドを示します。 |
| フィールド名が空 | 400 |
空の値と末尾のカンマを削除します。 |
| フィールド名が重複 | 400 |
各フィールドは一度だけ指定します。 |
| 必須フィールドがない | 400 |
エラーには抽出の詳細と、抽出された input_text が含まれます。 |
| bearer トークンがない、または無効 | 401 |
Authorization: Bearer sk-... を送信します。 |
| 未対応または不明なファイル形式 | 400 |
対応ファイル形式のいずれかを送信します。 |
エンドポイントは日付フィールドを YYYY-MM-DD 形式にします。文字列値の先頭と末尾にある空白を削除します。
エンドポイントはリテラル文字列 "null" を拒否します。
対応フィールド
1 回のリクエストで、次のフィールド名を任意に組み合わせて選択できます。
人物
| フィールド | 型 | 説明 |
|---|---|---|
last_name |
string | 姓。 |
first_name |
string | 名。 |
birthdate |
date | 生年月日(YYYY-MM-DD)。 |
sex_gender |
string | 性別。 |
住所
| フィールド | 型 | 説明 |
|---|---|---|
street_name |
string | 住所の通り名。 |
street_number |
string | 通り、建物、または家屋の番号。 |
address_rest |
string | 街区、入口、階、部屋、または私書箱。 |
town_or_city |
string | 町、市、自治体、または地域。 |
county |
string | 郡、地区、または行政区画。 |
judet |
string | ルーマニアの județ または同等の郡レベルの行政区画。 |
region |
string | 地方、州、または広域地域。 |
country |
string | 国名。 |
ID カード
| フィールド | 型 | 説明 |
|---|---|---|
nationality |
string | 国籍。 |
cnp |
string | 個人識別番号(Cod numeric personal)。 |
id_card_series_number |
string | ID カードのシリーズ番号または番号。 |
expiration_date |
date | ID カードの有効期限(YYYY-MM-DD)。 |
issue_date |
date | ID カードの発行日(YYYY-MM-DD)。 |
id_card_issuer |
string | ID カード発行者の名前。 |
id_card_birth_place |
string | ID カードに記載された出生地。 |
車両登録
| フィールド | 型 | 説明 |
|---|---|---|
certificate_id |
string | 登録証明書の番号またはシリーズ番号。 |
license_plate |
string | A: 車両登録番号またはナンバープレート。 |
first_registration_date |
date | B: 初回登録日(YYYY-MM-DD)。 |
holder_last_name |
string | C.1.1: 所有名義人の姓。 |
holder_company |
string | C.1.1: 所有名義人の会社名。 |
holder_first_name |
string | C.1.2: 所有名義人の名。 |
holder_full_address |
string | C.1.3: 所有名義人の完全な住所または本社所在地。 |
owner_last_name |
string | C.2.1: 所有者の姓。 |
owner_company |
string | C.2.1: 所有者の会社名。 |
owner_first_name |
string | C.2.2: 所有者の名。 |
owner_full_address |
string | C.2.3: 所有者の完全な住所または本社所在地。 |
vehicle_brand |
string | D.1: 車両のメーカーまたはブランド。 |
vehicle_model |
string | D.2: 種類、バリエーション、バージョン、またはモデル。 |
vehicle_commercial_summary |
string | D.3: 商用上の説明またはモデルの概要。 |
vehicle_identification_number |
string | E: VIN または車台番号。 |
max_technical_weight |
string | F.1: 技術的に許容される最大積載時質量。 |
vehicle_mass |
string | G: 使用中の車両質量。 |
registration_valid_until |
date | H: 登録の有効期限(YYYY-MM-DD)。 |
registration_date |
date | I: 登録日(YYYY-MM-DD)。 |
certificate_issue_date |
date | I.1: 証明書の発行日(YYYY-MM-DD)。 |
vehicle_category |
string | J: 車両カテゴリー。 |
type_approval_number |
string | K: 型式認証番号。 |
engine_capacity |
string | P.1: エンジンの総排気量。 |
engine_power |
string | P.2: エンジンの最大正味出力。 |
fuel_type |
string | P.3: 燃料の種類または動力源。 |
power_to_weight_ratio |
string | Q: 記載がある場合の出力重量比。 |
vehicle_color |
string | R: 車両の色。 |
seats |
string | S.1: 運転席を含む座席数。 |
standing_places |
string | S.2: 記載がある場合の立席数。 |
vehicle_identification_series |
string | Y: 車両識別書のシリーズ番号。 |
certificate_issuer |
string | Z: 証明書発行者の名前。 |
last_itp_date |
date | 前回の定期技術検査日(YYYY-MM-DD)。 |
会社、請求書、領収書
| フィールド | 型 | 説明 |
|---|---|---|
company_name |
string | 会社、組織、または法人の名前。 |
buyer_name |
string | 購入者名。 |
seller_name |
string | 販売者名。 |
total_amount |
number | 請求または支払いの合計金額。 |
invoice_date |
date | 請求書の発行日。 |
receipt_date |
date | 領収書の発行日。 |
著作物
| フィールド | 型 | 説明 |
|---|---|---|
title |
string | 記事のタイトル。 |
sub_title |
string | 記事のサブタイトル。 |
article_abstract |
string | 記事の抄録または要約のセクション。 |
article_body |
string | 記事本文。 |
publish_date |
date | コンテンツの公開日(YYYY-MM-DD)。 |
article_tags |
string | カンマ区切りのコンテンツタグ。 |
tags |
string | カンマ区切りのコンテンツタグ。 |
concise_summary |
string | コンテンツの簡潔な要約。要約がない場合は新しく作成します。 |
イベント
| フィールド | 型 | 説明 |
|---|---|---|
event_name |
string | イベントの名前またはタイトル。 |
event_venue |
string | イベントの会場、場所、または複数の会場。 |
event_dates |
string | テキスト形式のイベントの日付または期間。 |
event_date |
date | イベントの日付または部分的な日付(YYYY-MM-DD)。 |
動画サムネイル
| フィールド | 型 | 説明 |
|---|---|---|
thumbnail_hook_text |
string | 記載どおりの動画またはクリップのフックテキスト。 |
video_title |
string | 動画またはクリップのタイトル。 |
video_channel |
string | クリエイターのチャンネル名。 |
video_length_str |
string | 記載どおりの動画またはクリップの長さ。 |
date_posted_str |
string | 記載どおりの公開日。 |
構造化 JSON の代わりに Markdown として抽出
構造化フィールドではなく Markdown が必要な場合は、/ocr エンドポイントを使用します。同じファイル形式に対応します。
curl https://api.ocrskill.com/ocr \
-H "Authorization: Bearer sk-your-key-here" \
-F "file=@example.pdf"
よくある質問
構造化データとは何ですか?
構造化データは、名前付きフィールドと一貫した型を使用します。/ocr.json エンドポイントは、アプリケーションが直接読み取れる文字列、数値、日付を返します。
Google の構造化データまたは schema.org のマークアップですか?
いいえ。Google の構造化データは、検索エンジン向けに Web ページを説明します。Web ページ内で JSON-LD または microdata を使用します。
OCRskill は、ファイルから型付き JSON を抽出します。アプリケーションは、この JSON を保存または処理できます。
出力に JSON スキーマはありますか?
はい。OCRskill は、リクエストされた fields からレスポンススキーマを作成します。
日付フィールドは YYYY-MM-DD を使用します。このリファレンスの各フィールドは、型付き JSON プロパティ 1 つに対応します。
PDF から JSON、画像から PDF、または PDF から画像に変換できますか?
PDF は /ocr.json に直接送信できます。ページを画像に変換する必要はありません。
OCRskill は、画像から PDF または PDF から画像への変換をしません。
画像からテキストを抽出するにはどうすればよいですか(image to text)?
Markdown を抽出するには /ocr を呼び出します。名前付きの値を抽出するには、fields を指定して /ocr.json を呼び出します。
画像をプロンプトに変換できますか(image to prompt)?
プロンプト用の Markdown を抽出するには /ocr を呼び出します。プロンプトに特定の値だけが必要な場合は、/ocr.json を使用します。
抽出に失敗したのはなぜですか?
抽出を完了できない場合、エンドポイントは 400 を返します。原因を確認するには、エラーメッセージを読みます。
一般的な原因は、必須フィールドの欠落、不明なフィールド、重複したフィールド、未対応のファイル形式です。
エラーには input_text も含まれます。この値で、構造化抽出が失敗する前に OCRskill が抽出したテキストを確認します。
OCRskill を Claude と使用できますか?
はい。OCRskill で Markdown または JSON を抽出します。次に、結果を Claude に送信します。