simplismart usage.
Cost & Usage
Usage Stats
Fetches cost and compute usage for a given plan type and time range.Each filter flag can be passed only once (use comma-separated values like
a,b,c for multiple values). Passing an unsupported filter for the selected plan type returns an error.- You can find
workspace-idunder Settings > Workspaces. Select your workspace and copy the workspace ID.

- Go to Deployments and select a deployment to find the
deployment-idanddeployment-slug.

Plan Types
Examples:
Dedicated usage (
private): daily cost for the last 7 days
shared): hourly cost for the last 24 hours, linked to a given workspace
private): daily cost scoped to deployments by --deployment-id (comma-separated UUIDs)
shared): daily cost filtered to inference on specific --model-name values
training): weekly rollup for specific jobs (--training-job-name)
compilation): weekly rollup for --model-repo-name:
reserved): daily cost plus the pooled reservation commitment breakdown
--group-by accelerator (or omitting --group-by, with no deployment filter) gets you the full commitment breakdown automatically — no flag to pass:
total_cost reflects what your org is actually billed under the reservation. computed_overage_amount is usage billed above what you’ve committed to for that window; computed_true_up_amount is committed capacity you paid for but didn’t use that window. If your org moved from a private plan to a reserved plan, items includes usage from before that migration too, so you get one continuous view instead of a gap at the migration date.
--group-by deployment never returns the commitment breakdown — overage/true-up cost is pooled across your whole account and can’t be attributed to a single deployment, so a pooled, account-wide figure sitting next to a per-deployment cost list would be misleading. Use --group-by accelerator (or omit --group-by) whenever you want the breakdown.--deployment-id/--deployment-slug can’t be combined with an explicit --group-by accelerator — the SDK rejects it locally, and the backend rejects it too (400), since a pooled/accelerator-grouped query never resolves per-deployment sources at all. Omitting --group-by alongside a deployment filter is fine — for --plan-type reserved it auto-corrects to --group-by deployment instead of defaulting to the pooled shape.--group-by deployment gets you a flat per-deployment metered cost list instead — it never includes the commitment breakdown:
--group-by can be omitted for a deployment-filtered reserved query too — --deployment-id/--deployment-slug auto-correct an omitted --group-by to the per-deployment shape:
--group-by just changes how items is organized — it’s available for both --plan-type private and --plan-type reserved, with the same two values (deployment or accelerator) either way. The reservation breakdown above only ever comes with --plan-type reserved — a --plan-type private request, even with --group-by accelerator, never includes reservation_commitment. For --plan-type reserved, the breakdown always covers your whole account, and only appears with --group-by accelerator (or --group-by omitted).
Pooled (--group-by accelerator) items gain a sources key (a list of every deployment source folded into it) in place of a single source value. Each point in a pooled item also carries computed_commitment_utilized_amount, computed_overage_amount, and computed_true_up_amount:
computed_commitment_utilized_amount— cost covered by capacity you’ve already committed to.computed_overage_amount— cost billed at on-demand rates because usage went above your committed quantity that window.computed_true_up_amount— committed capacity you paid for but didn’t use that window.
Expected output — a single JSON object printed to stdout, with cost/usage broken down per
items entry (one per deployment, or one per accelerator type with --group-by accelerator) and per time bucket within each entry’s points:
total_cost (top-level) for the overall total, and each item’s event_name + total_cost for the breakdown by deployment (or by accelerator type with --group-by accelerator). For --plan-type reserved, event_name is already the plain accelerator type (nvidia-h100, nvidia-l40s, cpu).
Post-processing — pipe JSON to jq to read the total, or break it down per item:
The
--pg-token global flag or the SIMPLISMART_PG_TOKEN environment variable must be set. All times must be in ISO 8601 format and start-time must be before end-time.