- Run
bun install. - Run
cd packages/outlay-cli && bun link. - Run
outlay-api login --email "$OUTLAY_EMAIL" --password "$OUTLAY_PASSWORD"or setOUTLAY_EMAIL/OUTLAY_USERNAMEandOUTLAY_PASSWORDfirst. - List your current expenses with
outlay-api expenses --state pending. - Inspect a specific expense with
outlay-api expense <receiptId>. - Submit a new expense with
outlay-api submit-expense ....
bun run outlay-api login
bun run outlay-api login --email you@example.com --password '...'
bun run outlay-api me --output json
bun run outlay-api expenses --state pending
bun run outlay-api expense 434952 --output json
bun run outlay-api categories
bun run outlay-api projects
bun run outlay-api payment-methods
bun run outlay-api dimensions
bun run outlay-api submit-expense \
--date 2026-03-09 \
--amount 123.45 \
--description 'Client lunch' \
--category-id 7650 \
--payment-method-id 13870 \
--currency-id DKK \
--foreign-amount 123.45 \
--foreign-currency-id DKK \
--project-id 123 \
--cost-type-id 456 \
--department-id 789 \
--reason 'Customer meeting in Copenhagen' \
--participants 'Jane Doe, John Doe' \
--receipt-file ./receipt.png
bun run outlay-api discover
bun run outlay-api fetch /api/v1/user?include=companies --output json
bun run outlay-api schemaAll typed read commands support both table and JSON output.
- Table mode is the default. Commands show a compact set of useful columns unless you override them.
- Use
--output jsonto print the raw normalized response payload. - Use
--fields field1,field2,...to choose specific table columns. - Use
--fields allto show every flattened field the command returns in table mode.
Examples:
outlay-api expenses --state pending
outlay-api expenses --state pending --output json
outlay-api expenses --state pending --fields id,number,date,description,amount,state
outlay-api expense 434962 --fields all
outlay-api payment-methods --fields id,name,is_reimbursableloginsupports direct API authentication with flags or environment variables. Use--browseronly when you explicitly want the old interactive capture flow.- The API requests discovered so far target
https://api.outlay.com/api/v1/...with a Bearer token and no CSRF dependency. - The typed command set currently includes
me,expenses,expense,categories,projects,payment-methods,dimensions, andsubmit-expense. submit-expenseuses multipart form data and the optional--receipt-fileis uploaded in thefilefield.