---
name: flexprice
description: Use when the task touches billing, usage metering, plans, customers, subscriptions, wallets, or invoices in Flexprice. Covers reading data, sending usage events, and changing catalog objects.
---
# Flexprice
## Which surface to use
- Read or list anything: use the Flexprice MCP tools (get_*) if connected, otherwise `flexprice <resource> list --output json`.
- Send usage events: `flexprice events ingest` with an explicit `--event_id` so retries dedupe.
- Change catalog or customer data: propose the change, show the exact command, and wait for approval before running any create, update, or delete.
- Anything without a named command: `flexprice get|post|delete <path>`.
## Rules
- Always pass `--no-input --output json` and read the exit code (3 = auth, 4 = not found, 5 = rate limited).
- Never pass an API key on the command line. It comes from FLEXPRICE_API_KEY.
- Never run a destructive action without `--force`, and never add `--force` unless the user asked for that specific deletion.
- Use the sandbox environment key unless the user names production.
- Event names are case-sensitive and immutable after creation. Check `flexprice features list` before inventing one.
## Reference
- Docs: https://docs.flexprice.io/llms-full.txt
- Command list: run `flexprice resources`