Usage and billing data
Read what your organisation consumed: browser minutes, task executions, gateway tokens and stored artifacts per day, plus open sessions and the included quota.
Last updated:
What the meter records
Four dimensions are metered, by one writer, from the moment a browser is ready rather than from admission: browser_minutes (written when a session ends), task_executions (one per finished task or workflow run), gateway_tokens (input plus output tokens through the inference gateway) and stored_artifacts (a daily sample of profiles, credentials and reserved pool browsers). GET /v1/usage reads them back as totals over a window and as UTC day buckets, so you can see consumption before the invoice does.
/v1/usage
Metered consumption over a window. Without parameters: the current UTC calendar month up to now.
Query parameters
| Name | Type | Description |
|---|---|---|
from
|
string | ISO instant or `YYYY-MM-DD`. Defaults to the first of the current UTC month. |
to
|
string | Exclusive end. Defaults to now. The window may span at most 92 days; a longer one is `invalid_request`. |
Response fields
Responses are loose: a newer server may add a dimension, so tolerate fields you do not know.
| Name | Type | Description |
|---|---|---|
totals
|
object | The four dimensions summed over the window. |
days
|
array | One entry per UTC day in the window, zero-filled, each carrying the four dimensions and a `date`. A session’s minutes land on the day it *ended*. |
inFlight
|
object | `openSessions` and `estimatedMinutes` for sessions still running: their minutes are not in `totals` until they end, and the estimate counts from creation, so it slightly overstates. |
included
|
object | `browserHours` and `executions` your plan includes, or `null` where the plan sets no quota. From the same entitlements the API enforces. |
Read this month
BASE="https://browserberg.com"
AUTH="Authorization: Bearer $BROWSERBERG_API_KEY"
# The current UTC month by default; from/to bound a window of at most 92 days.
curl -s "$BASE/v1/usage" -H "$AUTH" \
| python3 -c 'import json,sys; u=json.load(sys.stdin); print("window:", u["from"], "->", u["to"]); print("totals:", json.dumps(u["totals"])); print("days:", len(u["days"]), "open sessions:", u["inFlight"]["openSessions"]); print("included:", json.dumps(u["included"]))'
import { Browserberg } from '@browserberg/sdk';
const bb = new Browserberg({
apiKey: process.env.BROWSERBERG_API_KEY!,
baseUrl: 'https://browserberg.com',
});
const usage = await bb.usage();
console.log('window:', usage.from, '->', usage.to);
console.log('browser minutes:', usage.totals.browser_minutes);
console.log('days in window:', usage.days.length);
console.log('open sessions:', usage.inFlight.openSessions);
console.log('included hours:', usage.included.browserHours);
import os
from browserberg import Browserberg
bb = Browserberg(os.environ["BROWSERBERG_API_KEY"], base_url="https://browserberg.com")
usage = bb.usage()
print("window:", usage.window_from, "->", usage.window_to)
print("browser minutes:", usage.totals.browser_minutes)
print("days in window:", len(usage.days))
print("open sessions:", usage.open_sessions)
print("included hours:", usage.included_browser_hours)
window: 2026-01-01T00:00:00.000Z -> 2026-01-01T00:00:00.000Z
totals: {"browser_minutes": 14.850004, "gateway_tokens": 94699, "task_xxxxxxxx": 15, "stored_artifacts": 10}
days: 5 open sessions: 33
included: {"browserHours": 2000, "executions": 20000}
Note · Where it shows in the dashboard
The Verbrauch screen draws the same numbers: a month picker, the four totals, a daily chart, open sessions and how much of the included quota is used. A member account can read it; nothing on it changes anything.