space ocr
Where paper ends, data begins

Any into a queryable sheet.

Automate it via API or as a Claude plugin.
Receipt, invoice, or any document at all — it becomes a database you can search and query, with every cell verifiable right back to its source.
What space ocr does

Scans & photos, turned into data

Photos and scans land as rows in a sheet, every cell traces back to where it came from, and one click drops a CSV — all of it, in one place.

Any layout into the sheet you want

Receipts, faxes, handwritten notes — set the columns once and they land in a familiar sheet, just like Excel.

UnstructuredHandwrittenExcel-likeYour columns
/All sourcesall_in_one.sheet
···
Receipt
Memo
Fax
Form
#
Type
Vendor
Amount
1
Receipt
ABC Co.
¥1,200
2
Memo
XYZ K.K.
¥3,400
3
Fax
DEF Ltd.
¥800
4
Form
GHI Inc.
¥5,600
5
Receipt
JKL
¥2,100
6
Memo
MNO
¥980
7
Fax
PQR Trading
¥4,250
8
Form
STU Logistics
¥1,750
9
Receipt
VWX Mart
¥3,120
10
Memo
YZA Foods
¥760
11
Fax
BCD K.K.
¥2,890

Click a cell, see the area on the photo

Wonder where the AI got that value from? Click the cell and it lights up on the photo. If something's off, fix it right there — the change history saves itself.

Audit evidenceAI result verificationInline editingChange history
Item
Unit price
Shimaro-Yaka Toast (6 slices)
¥98
Toyama Preference Koshihikari Rice (5kg)
¥1,980
Calpis Soft Drink (800 g)
¥698

Specify only the fields you want extracted

Purchase orders, invoices, bankbooks — each job needs different fields. Set the columns yourself, or let AI suggest them from a sample photo. Then just upload — the AI finds what you asked for.

Purchase ordersInvoicesBankbook entriesEstimatesApplication forms
/Purchase ordersnew column
×
#
Vendor
Date
Total
1
ABC Co.
2026-05-23
¥1,200
2
XYZ Corp.
2026-05-22
¥3,400
3
DEF Ltd.
2026-05-20
¥800
4
GHI K.K.
2026-05-18
¥5,600
5
JKL Inc.
2026-05-15
¥2,100
Column name
Grand total
Create

Drop your photos right onto the sheet

Fifty purchase orders, a whole stack of receipts — drop them straight onto the sheet. Each photo becomes one row, and the results stack up automatically.

Purchase ordersReceiptsInvoicesFAX bulk import
/Purchase ordersorders_05.sheet
···
#
Vendor
Date
Total
1
ABC Co.
05-23
¥1,200
2
XYZ Corp.
05-22
¥3,400
3
DEF Ltd.
05-20
¥800
4
GHI K.K.
05-18
¥5,600
5
JKL Inc.
05-15
¥2,100
6
MNO Foods
05-13
¥980
7
PQR Trading
05-11
¥4,250
Receipt
Total¥1,200
Invoice
Amt¥3,400
Order
Sum¥980

Pull scattered docs into one search

Drop everything into Spaces, attach memos, and search across all of it at once. "Where did I put that?" — gone.

Document searchTidy client inboxPaper archive to digital
/myspacePurchase orders
···
Explorer
invoice
myspace
Purchase orders
invoice_03_15.sheet
invoice_03_22.sheet
vendor notes.txt
Receipts
Bank statements
See it work

From document to data you can verify

All real product, no mockups: drop a document and rows fill in, hover any value to see its exact place on the page, then search every scan to land on the verified cell.

Drop a document — OCR fills the spreadsheet rows for you.
Hover any value and its exact spot on the original lights up.
Search across every scan and land on the verified cell.
For developers

One API key, your whole space

One API key, no SDK. Define fields, get structured JSON — every value with verified coordinates. Unconfirmed cells are flagged for review, not silently wrong.

One call, structured JSON

curl -X POST https://api.space-ocr.com/ocr/fields \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{ "image": "receipt.jpg", "imageType": "url",
        "fields": [{ "name": "total" }, { "name": "date" }] }'

# → "total": "12,000", "date": "2025-04-10"
#   field_bboxes.total: { text_verified: true, needs_review: false }

Why build on it

  • Structured JSON, one call

    Define fields once; POST /ocr/fields returns schema-mapped JSON, nested arrays included.

  • Verifiable values

    Every field carries bbox + vertices, cross-checked by two engines (text_verified).

  • Flags what it can't trust

    Unverified cells return needs_review instead of a silent wrong value.

  • Consistent output

    Sheet text accuracy ~0.98 run-to-run, up from a jittery ~0.73.

  • Async + signed webhooks

    Batch, poll /jobs, HMAC-signed webhook. REST · JSON, OpenAPI 3.1.