What leaves your infrastructure
This page describes how the service works today; the LICENSE and the BiVelio Terms govern.
What the Software (the SDK and the local gateway) sends to BiVelio, what it never sends, and how long BiVelio keeps it.
Never sent to BiVelio
- The content of your requests and responses: prompts, system instructions, messages, tool definitions, tool arguments and results, retrieved documents, and completions.
- The credentials you use with your LLM provider: API keys, OAuth tokens, or other authorization headers.
That content and those credentials travel only between your systems and the LLM provider you configure.
Usage records
The SDK sends usage records only when you configure a license server or metering URL; the local gateway always does. Each batch carries your BiVelio service-account key, which identifies your organization, and the Software's surface and version in the x-bvsala-version header.
Each record is limited to the fields below. BiVelio's ingest rejects any record that carries a field not on this list.
Identifiers
A request identifier generated on your side (at random, or by your own generator). For a repeated request valued by reference, the identifier and time of the earlier request whose provider counter is used. A seat identifier: a value you set, or an opaque value computed on your machine as a keyed hash (HMAC), keyed with your service-account key, of the platform, CPU architecture, runtime executable path, host name, operating-system user name and home directory; those underlying values are never sent. Through the local gateway, the session and sub-agent identifiers your coding agent attaches to its own requests (for example, Claude Code's session id), only when they are plain identifiers. An organization hint (BiVelio always derives your organization from the key). A flag marking CI or ephemeral runners.
requestIdreferenceRequestIdreferenceAtseatIdsessionIdagentIdorgIdci
Model and time
The identifier of the model that served the request: the model named in the request or, where the Software sent the request to another model under a setting you enabled, that model; for a self-hosted or Azure deployment, the name you gave it. And the time of the request.
modelat
Counts
LLM calls executed and avoided; input and output tokens before and after the Software's optimizations, including tokens removed, compressed, or read from the provider's cache; and the cache outcome.
avoidedLlmactualLlmbaselineInputTokensactualInputTokenseliminatedInputTokenscompressedInputTokensbaselineOutputTokensactualOutputTokensproviderCachedInputTokenscacheResult
Cost
Cost figures computed by the Software from its price catalogue, or from a cost model you supply: baseline cost, actual cost, the net-saving ratio, the basis of the figures (measured, reference, estimated, shadow or unmeasured), and the value, at the provider's cache-read price, of input tokens your provider reported as cleared from context.
baselineCostactualCostnetSavingsbasiseliminatedInputFloorCost
Optional verification (SDK only, off by default)
If you turn on the SDK's verification option, the SDK sends a sample of the requests it served to your own provider again, without optimization, and discards that second response. For each sampled request it sends BiVelio, through a separate channel, only the fields below; that channel also rejects any other field, and nothing it receives is used to calculate the commission.
Each sampled request
The label verification, the request identifier and time; the model requested and the model that served; the cache outcome; the category of the request and the outcome of the check; the input, cached-input and output tokens and the cost of the served request and of the unoptimized copy; how the copy finished and whether it met the response contract; and the per-token prices applied.
basisrequestIdatrequestedModelservedModelcacheResultstratumoutcomeoptimizedInputTokensoptimizedCachedInputTokensoptimizedOutputTokensoptimizedCostnaiveInputTokensnaiveCachedInputTokensnaiveOutputTokensnaiveCostnaiveFinishReasonnaiveContractinputPer1kcachedInputPer1koutputPer1k
Daily counts
For each day, the number of requests in each category, including the requests excluded from the check.
daycategoryrequests
Each batch
A random batch identifier, used to discard duplicates, and the two lists above.
batchIdsamplescounts
Other requests to BiVelio
The Software also fetches its current license token and the signed license revocation list, and the local gateway fetches your organization's feature entitlements. These requests carry your service-account key where authentication is required, and no request data.
Like any HTTPS request, all of the above also reveals ordinary network metadata, such as your IP address.
What BiVelio keeps, and for how long
The ingest adds each usage record to daily totals: per day, per model, per seat and per gateway session. Individual rows are kept only in the places below, and a daily job deletes each row once it is older than its period:
- Request identifiers, kept to discard duplicate records: 30 days.
- Repeated requests valued by reference (request identifiers, model, time and the provider counter used), the rows behind your statement's download: 460 days.
- Verification samples and their daily counts: 180 days.
- Verification batch identifiers: 30 days.
Daily totals, seat activity and your sealed statements have no automatic deletion schedule today.
What BiVelio uses it for
To operate licensing and revocation, show your dashboard, count seats in use, and calculate the fees described on the pricing page.
Your account on this website
Your sign-in e-mail, your organization and your billing details (payments are processed by Stripe) are covered by BiVelio's privacy policy.
Questions and requests about this data: privacy@bivelio.com.