Early access v1 draft

Receipts in.
Structured spend out.

Spendyard is a small, stateless API. Send it a receipt, an invoice or a forwarded email, and get back the vendor, the amount, and whether it's a subscription or a one-time cost.

Stores nothingAny inputREST API and CLI
InputPDF invoice
FIGMA, INC.
Invoice F-20481
3 Oct 2026

Professional plan
1 editor · billed monthly

TOTAL         USD 15.00
200 OKapplication/json
{
  "vendor": "Figma",
  "amount": {
    "value": "15.00",
    "currency": "USD"
  },
  "date": "2026-10-03",
  "kind": "subscription",
  "interval": "monthly",
  "category": "software",
  "confidence": 0.97
}
POST /v1/extractexample · 640 ms
[■] What you get back

One shape for every kind of spend

Whatever you send in, the response has the same fields. Your code can stay simple, whether the input was a seat-based PDF invoice, a forwarded renewal email or a usage-based cloud bill.

FieldTypeMeaning
vendorstringWho you paid, normalised (“Figma”, not “FIGMA, INC.”)
amountMoneyValue as a decimal string plus ISO 4217 currency
dateplainDateDate of purchase or invoice
kind"subscription" | "one_time"Recurring cost or a single purchase
interval"monthly" | "yearly"?Billing interval, set only for subscriptions
categorystringSpend category such as design tools, collaboration or infrastructure
confidencefloat320–1. Use it to route unsure results to a human.
[ ] Stateless by design

The yard is empty when you leave

Spendyard reads what you send, returns the result and keeps nothing. There are no stored documents, no accounts of your vendors and no history to export or delete.

Your receipts stay in your systems. That makes Spendyard easy to approve for security reviews, and easy to place inside the tools you already run.

[■] Two ways in

Call it from code or a terminal

The REST API is the product. The CLI is a thin client on top of it, so it always returns the same result.

REST API

One endpoint. Send a file, raw text or a full email (.eml).

curl https://api.spendyard.com/v1/extract \
  -H "Authorization: Bearer $SPENDYARD_KEY" \
  -F file=@receipt.pdf

CLI

For scripts, folders of PDFs and quick checks.

spendyard extract receipt.pdf
spendyard extract ./inbox/*.eml --json
[■] Build on it

A building block, not another expense app

  • Inbox forwarding. Forward receipts to an address and post the result to your ledger.
  • SaaS spend tracking. Find every subscription and its interval across a year of invoices.
  • Accounting sync. Pre-fill vendor, amount and category before a bookkeeper sees it.
  • Agents. Let an assistant read the receipt folder and answer “what do we pay for monthly?”
[■] Early access

Try it on your own receipts

We're opening the API to a small group of teams first. Send a short note about what you'd build and roughly how many receipts a month, and we'll send you a key.

hello@moowork.dev