space ocr
ガイド記事料金ドキュメント
OCR API

検証できるデータを返すOCR API

1回のRESTコールで、各フィールドにバウンディングボックス・4頂点・マッチ率が付いた構造化JSONが返ります。Bearer認証、組み込みテンプレート、非同期ジョブ、署名付きWebhook。

ほとんどのOCR APIは、ページ全体のテキストの塊と1つの信頼度スコアを返すだけです。請求書の合計を探し、パースし、正しい場所に入ったことを祈る——その作業は結局あなたの側に残ります。space-ocrのOCR APIは、その構造化までやります。画像とテンプレートを1回POSTすれば、型付きフィールドがJSONで返ります。

本番で効いてくるのは、各値に何が付いてくるかです。すべてのフィールドが、ページ上のどこから読み取ったかという正確なボックス、その4つの角、そしてマッチ率とともに返ります。だからパイプラインはモデルの言い分を信じる必要がなく、各値を書類上の実際の位置と照らして確認できます。

その場で確認できる、実際のレスポンス

下のフィールドにマウスを合わせてみてください——請求書上のボックスが、その値を読み取った場所です。これは実際の解析結果です。請求先名 ソジュハンザン海物語様、ご請求金額 ¥84,263、合計金額 ¥46,752、各明細行——すべてが自分のボックスとマッチ率とともに返っています。モックアップではありません。

Invoice with extracted-field bounding boxes
Verified fields
Invoice

Each value with a box carries a verified on-page location — bbox + 4-point vertices + match_ratio — on a 0–1000 normalized grid (0,0 top-left → 1000,1000 bottom-right), the same shape the live API returns. Hover a field to trace it back to the pixels it came from.

1コールで、ボックス付きJSON
POST /ocr/fields に画像を1枚送れば、型付きフィールドが返ります。各値がbboxを持つので、位置を探す2回目のパスが要りません。
bbox・vertices・match_ratio
各フィールドが0〜1000グリッド上の xmin/ymin/xmax/ymax、ページの傾きに沿う回転4頂点、しきい値をかけられる match_ratio を返します。
組み込みテンプレート
templateId を渡すだけ——receipt・invoice・delivery・business_card・driver_license など。独自の fields(明細行は array フィールド)も送れます。
非同期ジョブ+署名付きWebhook
POST /upload で画像をキューに入れ、ファイルごとにジョブを取得。完了は HMAC-SHA256 署名付きWebhookで通知——または GET /jobs/{jobId} でポーリング。
CSV・JSONエクスポート
REST経由のJSONに加え、保存済みシートを UTF-8 BOM付きCSV(Excel・CJK対応、明細行は展開)で。
言語は全自動
日本語・韓国語・中国語・英語をひとつのエンジンで——言語ヒントの設定は不要、混在スクリプトや全角文字も処理します。

space-ocrでのOCR APIの仕組み

Bearerトークンで認証します——キーは spocr_ で始まり、ベースURLは https://api.space-ocr.com です。ラスター画像を1枚、URLまたはbase64で POST /ocr/fields に送ります(公開APIは画像——JPEG・PNG・GIF・BMP・TIFF・WebP——を受け付けるので、PDFならページ画像を送ります)。組み込みの templateId か独自の fields を渡せば、フィールドごとに値・bbox・vertices・match_ratio が入った { status: 'success', data: {...} } が返ります。

座標はモデルが作ったものではありません。LLMは各値と、使ったword-token IDを返すだけ。そのうえで文字マッチャーが、その値をGoogle Visionが実際にページで検出したシンボルと突き合わせ、カバレッジを match_ratio として採点します。0.85以上で確実なマッチ、1.0はすべての文字がページ上で見つかったことを意味します。すべてのレスポンスに X-Request-Id ヘッダが付き、エラーは { error: { code, message, requestId } } で返ります。

画像からフィールドを抽出
1
2
3
4
5
6
7
8
curl -s https://api.space-ocr.com/ocr/fields \
  -H "Authorization: Bearer $SPACE_OCR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image": "https://example.com/invoice.png",
    "imageType": "url",
    "templateId": "invoice"
  }'
同じ呼び出しをPythonで
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import os, requests

resp = requests.post(
    "https://api.space-ocr.com/ocr/fields",
    headers={"Authorization": f"Bearer {os.environ['SPACE_OCR_API_KEY']}"},
    json={
        "image": "https://example.com/invoice.png",
        "imageType": "url",
        "templateId": "invoice",
    },
    timeout=60,
)
resp.raise_for_status()
for name, field in resp.json()["data"].items():
    print(name, field["value"], field["bbox"], field["match_ratio"])

OCR APIを呼び出す手順

  1. APIキーを取得
    サインインしてキーを作成します——spocr_ で始まります。https://api.space-ocr.com への毎リクエストに Authorization: Bearer <key> として送ります。
  2. 画像を送る
    POST /ocr/fields に image(URLまたは純粋なbase64)と imageType を送ります。PDFはページ画像を送ってください——APIはラスター形式(JPEG・PNG・GIF・BMP・TIFF・WebP)を受け付けます。
  3. テンプレートまたはフィールドを選ぶ
    'invoice' や 'receipt' といった組み込み templateId を渡すか、独自の fields を指定します——明細行テーブルには children を持つ array フィールドを含めます。
  4. 構造化された結果を読む
    各値に bbox・vertices・match_ratio・bbox_source が付いた { status: 'success', data: {...} } が返ります。match_ratio にしきい値をかけ、0.85未満を要確認として洗い出せます。
  5. スケールとクエリ
    POST /upload で多数の画像をキューに入れ(ファイルごとにジョブ、署名付きWebhookまたは GET /jobs/{jobId})、保存済みシートを GET /view で where・sort・select を使って読みます——OCR再実行も追加料金もありません。

シンプルで予測できる料金

1枚あたり¥10($0.05 / ₩100)、クレジットカード不要・月100スキャンの無料枠付き。保存済みシートを GET /view で読み直すのはOCR再実行ではなく無課金です。定額プランは月間スキャン数・シート数・ストレージを追加します。

Free
¥0
  • 100 スキャン/月
  • 3 シート
  • 1 GB ストレージ
無料 — カード不要
Starter
¥2,980/月
  • 400 スキャン/月
  • 10 シート
  • 10 GB ストレージ
無料で始める
おすすめ
Pro
¥8,980/月
  • 1,100 スキャン/月
  • シート無制限
  • 100 GB ストレージ
無料で始める
OCR APIの認証はどうしますか?
毎リクエストにHTTP Bearerトークンを送ります——Authorization: Bearer <key>。キーは spocr_ で始まります。ベースURLは https://api.space-ocr.com でバージョンパスはありません。ヘッダ欠落・無効は401、未認識キーは403、すべてのレスポンスに支援用の X-Request-Id ヘッダが付きます。
OCR APIは各フィールドに何を返しますか?
値、バウンディングボックス(0〜1000正規化グリッド上の xmin/ymin/xmax/ymax、ピクセルではありません)、書類の傾きに沿う回転4頂点、match_ratio、bbox_source です。match_ratio が0.85以上で確実なマッチ、1.0はすべての文字がページ上で見つかったことを意味します。
OCR APIでPDFを読めますか?
公開APIはラスター画像——JPEG・PNG・GIF・BMP・TIFF・WebP——を受け付けるので、PDFはページ画像を送ります。Webアプリは PDF を直接受け付け、各ページを画像にレンダリングしてからOCRします。どちらでも構造化結果は同じです。
OCR APIは大量・バッチ処理に対応しますか?
はい。POST /upload は画像を1枚以上受け付け、ファイルごとに status 'pending' のジョブを返します。完了は HMAC-SHA256 署名付きWebhook(X-Spaceocr-Signature)で届くか、GET /jobs/{jobId} でポーリングできます。POST /ocr/fields は1枚分の同期処理のままです。
レートリミットやエラーコードはありますか?
上限はキーあたり毎分60リクエストです。超過すると429・code 'rate_limited' が返り、待機時間は本文の details.retryAfterSec にあります(Retry-After ヘッダではありません)。すべてのエラーは 400・401・402・404・429・500・502 を通じて { error: { code, message, requestId } } の封筒を共有します。
OCR APIの料金はいくらですか?
1枚あたり$0.05(¥10 / ₩100)で、クレジットカード不要・月100スキャンの無料枠があります。POST /ocr/fields と POST /upload の各画像は1スキャン、GET /space・/view・/amount は無課金です。定額プラン(StarterとPro)は月間スキャン数・シート数・ストレージを追加します——上の料金表をご覧ください。

確認できるデータを返すOCRを実装

無料枠——月100スキャン、クレジットカード不要。すべてのフィールドがボックスとマッチ率とともに返ります。

関連