Billing for both products: Studio plan usage and credit consumption, and the Max subscription with its seats and capability licenses.
frontline billing [options] [command]Get current billing plan information (JSON by default; use --pretty for key/value output)
frontline billing get [options]Options
| Flag | Description | Default |
|---|---|---|
--pretty | Pretty human-readable output | |
--table | Alias of --pretty | |
--json | Output raw JSON (default behavior — accepted as a no-op) | |
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug information (redacted token) |
Studio (account-level) plan usage and credit consumption
frontline billing studio [options] [command]Studio usage: credits and campaign emails used vs limit, agents, workflows, flows, users and KBs vs plan limits (requires a USER API key)
frontline billing studio usage [options]Options
| Flag | Description | Default |
|---|---|---|
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug info on stderr (token is redacted) | |
--pretty | Pretty-print human-readable output (instead of default JSON) | |
--table | Render list results as a table (implies --pretty) | |
--json | Output raw JSON (default behavior — accepted as a no-op) |
Daily credit consumption broken down by AI model
frontline billing studio credits [options]Options
| Flag | Description | Default |
|---|---|---|
--start-date <date> | Filter from date (YYYY-MM-DD) | |
--end-date <date> | Filter to date (YYYY-MM-DD) | |
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug info on stderr (token is redacted) | |
--pretty | Pretty-print human-readable output (instead of default JSON) | |
--table | Render list results as a table (implies --pretty) | |
--json | Output raw JSON (default behavior — accepted as a no-op) |
Max subscription, seats and capability licenses. Read what the account has, and hand out what it already pays for with seats assign and licenses grant. Buying, resizing and cancelling the subscription are app-only, since they move money. Everything here needs a USER API key belonging to an OWNER or ADMIN.
frontline billing max [options] [command]The account's current Max subscription: plan, seat counts, add-on pools, feature limits and what renews next.
frontline billing max usage [options]Options
| Flag | Description | Default |
|---|---|---|
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug info on stderr (token is redacted) | |
--pretty | Pretty-print human-readable output (instead of default JSON) | |
--table | Render list results as a table (implies --pretty) | |
--json | Output raw JSON (default behavior — accepted as a no-op) |
The Max plans that can be bought, with their prices and price keys. Buying one is done in the app.
frontline billing max plans [options]Options
| Flag | Description | Default |
|---|---|---|
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug info on stderr (token is redacted) | |
--pretty | Pretty-print human-readable output (instead of default JSON) | |
--table | Render list results as a table (implies --pretty) | |
--json | Output raw JSON (default behavior — accepted as a no-op) |
Everything Max sells: plans, capability add-ons and additional credit bags, with their prices and price keys. Buying is done in the app.
frontline billing max catalog [options]Options
| Flag | Description | Default |
|---|---|---|
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug info on stderr (token is redacted) | |
--pretty | Pretty-print human-readable output (instead of default JSON) | |
--table | Render list results as a table (implies --pretty) | |
--json | Output raw JSON (default behavior — accepted as a no-op) |
Who holds a Max seat. A seat is what lets someone use Max at all; capability add-ons like Meeting Intelligence sit on top of a seat as licenses.
frontline billing max seats [options] [command]The whole assignment grid: every user in the account with their seat and each capability license, plus how much of each pool is already handed out. Start here before assigning anything.
frontline billing max seats matrix [options]Options
| Flag | Description | Default |
|---|---|---|
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug info on stderr (token is redacted) | |
--pretty | Pretty-print human-readable output (instead of default JSON) | |
--table | Render list results as a table (implies --pretty) | |
--json | Output raw JSON (default behavior — accepted as a no-op) |
Give a user a Max seat, taken from the seats the account has already bought. Fails when every seat is taken — free one with unassign, or buy more in the app.
frontline billing max seats assign [options] <userId>Options
| Flag | Description | Default |
|---|---|---|
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug info on stderr (token is redacted) | |
--pretty | Pretty-print human-readable output (instead of default JSON) | |
--table | Render list results as a table (implies --pretty) | |
--json | Output raw JSON (default behavior — accepted as a no-op) |
Take a user's Max seat back so someone else can have it. Any capability licenses they held go back to their pools too, since a license cannot exist without a seat.
frontline billing max seats unassign [options] <userId>Options
| Flag | Description | Default |
|---|---|---|
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug info on stderr (token is redacted) | |
--pretty | Pretty-print human-readable output (instead of default JSON) | |
--table | Render list results as a table (implies --pretty) | |
--json | Output raw JSON (default behavior — accepted as a no-op) |
Capability add-ons that sit on top of a seat: MAX_MEETINGS unlocks the notetaker, MAX_EMAIL_AGENT unlocks email labeling, drafting and follow-ups. Valid capabilities: MAX_MEETINGS, MAX_EMAIL_AGENT.
frontline billing max licenses [options] [command]Give a user a capability license from the pool you have bought. They must already hold a Max seat.
frontline billing max licenses grant [options] <capability> <userId>Options
| Flag | Description | Default |
|---|---|---|
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug info on stderr (token is redacted) | |
--pretty | Pretty-print human-readable output (instead of default JSON) | |
--table | Render list results as a table (implies --pretty) | |
--json | Output raw JSON (default behavior — accepted as a no-op) |
Return a user's capability license to the pool. Their Max seat is untouched.
frontline billing max licenses revoke [options] <capability> <userId>Options
| Flag | Description | Default |
|---|---|---|
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug info on stderr (token is redacted) | |
--pretty | Pretty-print human-readable output (instead of default JSON) | |
--table | Render list results as a table (implies --pretty) | |
--json | Output raw JSON (default behavior — accepted as a no-op) |
The raw declarative save behind seats assign and licenses grant: you send the complete grid, not a delta.
frontline billing max assignments [options] [command]Replace the whole assignment grid in one call. Whoever is missing from --seat-user-ids loses their seat, and a capability you omit from --licenses is left exactly as it is. Read seats matrix first so you send back a complete picture.
frontline billing max assignments set [options]Options
| Flag | Description | Default |
|---|---|---|
--seat-user-ids <json> | JSON array of every user id that should hold a seat, e.g. '[12,34]' | |
--licenses <json> | JSON object of capability to holder ids, e.g. '{"MAX_MEETINGS":[12],"MAX_EMAIL_AGENT":[12,34]}' | |
--api-key <key> | Override API key for this run (else FRONTLINE_API_KEY env, else stored profile key) | |
--base-url <url> | Advanced: override Public API base URL for this run | |
--profile <name> | Credentials profile: uses that profile's saved API key and Public API base URL (see frontline auth profiles list) | |
--debug | Show debug info on stderr (token is redacted) | |
--pretty | Pretty-print human-readable output (instead of default JSON) | |
--table | Render list results as a table (implies --pretty) | |
--json | Output raw JSON (default behavior — accepted as a no-op) |