Output, CSV, and scripting
Tables for reading, CSV for spreadsheets, JSON for scripts.
Updated October 31, 2026
By default, commands print tables sized to your terminal. If a table is too wide, IDs are hidden first; widen the window or use --json to see them.
CSV for spreadsheets
Add --csv before the group on any list command:
cost --csv suppliers list > suppliers.csv
cost --csv documents list --since 2026-10-01 --limit 200 > october.csv
JSON for scripts
cost --json documents list --status needs_attention
cost --json projects list | jq -r '.[] | "\(.name)\t\(.total_spend)"'
List results come back as {"items": [...], "total": ..., "has_more": ...} where the list can be paged, and as a plain array otherwise.
Paging
Most lists return 25 rows. Use --limit (up to 200) and --offset:
cost documents list --limit 100 --offset 100
cost materials history pages with --limit and --page-number.
In CI and cron
Use an API key from the environment, so nothing is saved to disk:
export COSTCRUNCH_API_KEY=${{ secrets.COSTCRUNCH_API_KEY }}
uvx --from costcrunch cost --csv spend monthly > spend.csv
Didn't answer your question?
Email [email protected]