Paste your OpenAI key
Stored in this browser only (localStorage). Sent straight to
api.openai.com as an Authorization header — never
to us, because there's no “us.”
Need a key?
Your batches
Submitted to OpenAI's Batch API (usually done in a few minutes, and
cheaper than the fast mode). They're saved here in your browser
— close the tab, come back whenever. The batch IDs are also
valid on platform.openai.com for ~30 days (their
retention), so your data is recoverable even if your browser data
gets wiped.
Drop in your receipts
JPG or PNG, one at a time or a stack. Images are downscaled to 1568px on the long edge before sending. HEIC isn't supported yet — convert to JPG first.
Drag photos here
JPG or PNG · any orientation · up to a few MB each
Process the queue
Each file hits OpenAI's vision endpoint. Status flips from queued → processing → ok / review. The whole bill lands on your OpenAI account.
Your scans
Filenames are slugged brand--YYYY-MM-DD--amount so they
sort cleanly in a folder. Rows marked review had missing or
ambiguous fields — double-check those. Export a spreadsheet for
bookkeeping, or grab everything in one ZIP.
PRIVACY, IN PLAIN TERMS
What leaves your browser, and what doesn't.
This is a static HTML page I host on a personal subdomain. Open the
Network tab in DevTools and you'll see exactly two hosts: wherever
you loaded the page from, and api.openai.com. That's it.
I'm not affiliated with OpenAI — your key goes to them, your bill
comes from them.
- Leaves your browser
- Your API key (as an
Authorizationheader) and a downscaled JPEG of each receipt — only toapi.openai.com. - Stays in your browser
- Original full-resolution photos. The cropped/warped outputs. The parsed JSON. None of it is uploaded anywhere.
- Never collected
- No accounts, no cookies, no analytics beacons, no third-party scripts. Close the tab and everything's gone.
QUESTIONS
The things you're probably wondering.
How do I get an OpenAI API key?
- Go to platform.openai.com/api-keys and sign in.
- Click Create new secret key. Give it any name.
- Copy the
sk-…string and paste it into step 01. - Add a small amount of credit at Billing. A few bucks tends to go a long way — usually hundreds of receipts, but OpenAI sets the rate, not me.
What will it cost me?
The tool itself is free. The actual cost is whatever OpenAI charges you for the vision API call, billed directly to your OpenAI account. I'm not affiliated with them and don't know your exact rate — check their pricing page for what applies to you.
Anecdotally, from my own use, it's tended to be somewhere around:
| Mode | Roughly |
|---|---|
| Fast | ~1¢ per receipt |
| Batch | under half a cent per receipt |
Your mileage will vary with image size, model pricing changes, and whatever OpenAI's doing with Batch discounts that week.
What exactly leaves my browser?
Your API key is read from the input and sent as an Authorization
header on requests to OpenAI. Receipt images are downscaled to 1568px
on the long edge, then sent (base64-encoded) to OpenAI for OCR. The
model's structured response is parsed locally and used to crop and
warp the image in-browser. Nothing is sent to any other server.
Something says “review” — what do I do?
A receipt is flagged review when a critical field (brand,
date, amount) is missing, the date isn't a valid YYYY-MM-DD,
the detected corners don't form a plausible rectangle, or the model
itself reported poor quality. The JPG and JSON still download — just
open them, fix the field by hand, and move on.
Who made this? Is it a product?
Just a person, not a product. I built it to speed up my own tax prep and put it online in case it helps someone else. It's MIT-licensed, hosted on a personal subdomain, no signup, no payment to me, no analytics beyond anonymous pageviews. If you want to tweak it, fork the repo. I'm not affiliated with OpenAI; I just call their API.
Why not just use a SaaS OCR product?
Plenty of them exist and some are great. This one exists because I personally didn't want to hand my receipts — vendor names, amounts, dates, sometimes my home address — to yet another company whose retention policy I'd never read. Bring your own key, run it on your own machine, ship the output into your own folder. Close the tab and it's gone.