A single-file browser tool that reads a photo of a pharmacy receipt and extracts the fields needed to file an insurance claim — no typing, no backend.
Submitting prescription reimbursement claims means copying a dozen small fields (claimant, drug name, DIN, amounts, dates) off a paper receipt by hand, one at a time. This tool turns a receipt photo into clean, copyable claim fields in a few seconds, so the data goes straight into whatever claim form you use.
- Plain HTML / CSS / JavaScript — a single self-contained file, no build step
- Google Gemini 3.1 Flash Lite vision model, accessed via the OpenRouter API
- Browser
localStoragefor the API key (nothing is sent to any server but the model API)
- Drag-and-drop / multi-image — drop one or more receipt photos at once
- AI field extraction — pulls claimant, drug name, DIN, prescription number, amounts, and dates from the receipt image
- One-click copy — copy any single field, or all fields as JSON, to the clipboard
- Bring-your-own key — you supply your own OpenRouter API key; it is stored only in your browser
- Zero install — open the HTML file in any modern browser
- Get an API key from OpenRouter.
- Provide the key one of two ways:
- Quick: open
Receipt_Reader.htmland paste the key into the key field — it's saved in your browser's local storage for next time; or - File-based (recommended for repeat local use): copy
config.example.jstoconfig.local.jsand put your key there.config.local.jsis gitignored and loads automatically, so the key never enters the field or git. You can also override the model there.
- Quick: open
- Open
Receipt_Reader.htmlin a modern browser, drag in a receipt, and let the model extract the fields.
Security: this is a client-side app. If you ever host it publicly, do not ship
config.local.jswith a real key — anyone viewing the page can read it. For a hosted version, let each user paste their own key.
Receipt images are sent to the OpenRouter / Gemini API only for extraction. No data is stored on any server operated by this project — the API key and results live in your browser session. Avoid using it with receipts you are not comfortable sending to a third-party model API.

