Receipts
Paste a grocery receipt to build your price book. Instacart has no API for reading orders, so what you actually paid has to come in this way — and it's what every cost feature runs on.
Fetch receipts from your mailbox
Add these to .env.local and restart the dev server. Missing: IMAP_HOST, IMAP_USER, IMAP_PASSWORD.
IMAP_HOST=imap.gmail.com IMAP_PORT=993 IMAP_USER=you@gmail.com IMAP_PASSWORD=<16-char app password> IMAP_MAILBOX=Receipts # a Gmail label, not your whole inbox IMAP_FROM=instacart.com # only fetch this sender
Use an app password, not your account password — generate one at myaccount.google.com/apppasswords (needs 2-Step Verification, and is unavailable under Advanced Protection). An app password can read your whole mailbox, so set IMAP_MAILBOX to a dedicated label and IMAP_FROM to the sender; the fetcher then only ever touches those.
Price book
36 priced items
107 observations from receipts
Bought one thing, or shopped somewhere that doesn't email a receipt? Log it straight into the price book.
Paste a receipt
Copy the whole order-confirmation email — items, fees and totals. Fees and totals are recognised and skipped. Nothing is saved to the price book until you review it.
Or upload the email itself
Save the receipt from your mail app as .eml and drop it here. This is the same path automatic inbox fetching will use, so whatever works here will work there.
Imported
Automatic email import is the natural next step — the same parser, fed from an inbox instead of a paste.