Groundfloor Docs

Billing API

Read an organization's bill estimate, its monthly billing statements, and the plan catalogue.

GET /v1/accounts/{account_id}/billing/summary

Returns the organization's compute-unit (CU) usage for a period, each step of the bill calculation, and the resulting amount in USD. The path uses accounts because organizations used to be called accounts; use the organization's ID.

Permission: view_billing on the organization. Organization Owners, Admins and Billing admins have it; Writers, Members and Partners don't.

Query parameterDefaultDescription
since_seconds2592000 (30 days)Look-back window ending now. Minimum 3600 (1 hour), maximum 34560000 (400 days)
curl -s -H "Authorization: Bearer $TOKEN" \
  "https://platform.groundfloor.cloud/v1/accounts/$ORGANIZATION_ID/billing/summary?since_seconds=604800" | jq .

The summary is an estimate, not an invoice. While status is estimate, the per-CU price is a placeholder (pricing_final is false) and storage and network usage are reported as 0. Don't present these amounts to your own customers as a final bill.

Response

FieldDescription
account_idThe organization ID
period_start, period_endThe window the figures cover
billing_tierlow, mid, high, or strategic. Sets the multiplier applied to usage
statusestimate or final. Expect estimate until billing is generally available
is_estimatetrue while status is estimate
pricing_finalfalse while the per-CU rates and tier multipliers aren't locked
ai_usage_onlytrue when compute, storage and network are all 0, so the figures cover AI usage only
ai_usage_truncatedtrue when the look-back window is longer than a day. AI usage is read from a capped request log, so for longer windows the AI figure can be understated
breakdownCU by source: compute, storage, network, ai
raw_cuSum of the breakdown, before the multiplier
multiplierThe billing_tier multiplier
adjusted_curaw_cu times multiplier
sell_price_per_cu_usdPrice of one CU
base_bill_usdadjusted_cu times the price
discountFractional discount applied, from 0 up to but not including 1
final_bill_usdbase_bill_usd after the discount
noteA caveat in plain text. While status is estimate it begins with "ESTIMATE — NOT A FINAL BILL."

What the sources currently measure:

  • Compute: Coderunner run time for functions, jobs and schedules, and allocated CPU and memory over deployed time for services. It's based on deployment records, not a live measurement.
  • Storage and network: not metered yet; always 0.
  • AI: not available yet; always 0. The LLM gateway is coming soon; once it is, token usage through it is planned to be converted to CU.

Responses can be cached for a few minutes, so the AI figure may lag slightly behind recent requests.

Billing statements

GET /v1/accounts/{account_id}/billing-statements
GET /v1/accounts/{account_id}/billing-statements/{statement_id}
GET /v1/accounts/{account_id}/billing-statements/{statement_id}/export.csv

Your organization's monthly statements, newest period first. Only statements Groundfloor has issued, or later voided, are returned. Permission: view_billing on the organization.

The list takes status (issued or void), limit (1 to 200, default 50) and offset, and returns items and total_count. Amounts are decimal strings in currency (USD).

FieldDescription
period_start, period_endThe month covered. period_end is exclusive
plan_tierThe plan the statement was priced on
statusissued or void, with issued_at and voided_at
base_fee_usd, usage_subtotal_usd, included_credit_usd, total_usdThe plan's base fee, the usage charges, the usage included in the plan, and the total
contains_estimatestrue when some usage is estimated; those lines have estimated: true
warningsCodes for anything unusual about the statement
linesDetail only. One line per workspace resource and meter: workspace_name, resource_label, meter, billable_quantity, billable_unit, unit_price_usd, amount_usd and more

export.csv returns the lines plus a summary as a CSV file. An unknown statement, or one that belongs to another organization, is 404.

Plan catalogue

GET /v1/billing/plans

The plans and unit rates. Any signed-in user can read it. Each plan has a key (free, indie, business or enterprise), a label, its monthly_fee_usd and included_usd (null for Enterprise, which is agreed per organization), and its limits; rates holds the unit prices. Only the workspaces and file_storage_bytes limits are enforced today; the others are listed for information. See Quotas and limits.

Errors

StatusMeaning
403Missing view_billing on the organization
404Organization not found
422since_seconds outside the allowed range