Account
Your company's account: who is calling, its keys, its caps, what it spent and the models it may use.
GET/v1/usage/line-itemsThe charges behind one task or one conversation, newest first: the receipt you can show your user.
Request4 fields
Query
limitintegerHow many items per page, 1 to 100. Default 20.
- Type
integer
cursorstringWhere to go on from: the next_cursor of the page before, unchanged. Absent: the first page.
- Type
string
task_idstringThe charges behind this piece of work, by its task_ id. Send this or conversation_id.
- Type
string
conversation_idstringThe charges behind this conversation, by its conv_ id. Send this or task_id.
- Type
string
Answers 2002 fields
dataobject[]The items on this page.
idstringThe charge's id.
- Type
string
object"usage.line_item"Always usage.line_item.
- Type
"usage.line_item"
category"orchestrator" | "intelligence" | "tools" | "compute" | "background" | "voice"The kind of spend: orchestrator (Bash's replies), intelligence (its thinking at work), tools, compute, background or voice.
- Type
"orchestrator" | "intelligence" | "tools" | "compute" | "background" | "voice"
amount_usdnumberBilled US dollars; a refund is negative. A subject's items add up to its cost_usd.
- Type
number
modelstring | nullThe model the charge was for; null when it was for no model.
- Type
string | null
descriptionstringWhat the charge was, in a few fixed words such as Work by Bash; a refund starts Refund: .
- Type
string
created_atstringWhen it was charged, as an ISO 8601 date and time in UTC.
- Type
string
next_cursorstring | nullSend it as cursor for the next page; null on the last page.
- Type
string | null
const receipt = await vestra.usage.lineItems({ conversation: 'conv_8f2k' });receipt = vestra.usage.line_items(conversation="conv_8f2k")vestra usage items conv_8f2k# See costs by user. This is what everything cost since the 1st, in billed US dollars.curl "$VESTRA_BASE_URL/v1/usage?from=2026-10-01&group_by=user" \ -H "Authorization: Bearer $VESTRA_API_KEY" # See one user's spend.curl "$VESTRA_BASE_URL/v1/usage?user_id=traveller-42" \ -H "Authorization: Bearer $VESTRA_API_KEY" # Get a conversation's receipt. It lists every charge, newest first.curl "$VESTRA_BASE_URL/v1/usage/line-items?conversation_id=conv_8f2k" \ -H "Authorization: Bearer $VESTRA_API_KEY" # Set caps and alerts. This sets a monthly cap for each user, with alerts at 50% and 80% of it.curl -X PATCH "$VESTRA_BASE_URL/v1/limits" \ -H "Authorization: Bearer $VESTRA_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "user_monthly_usd": 20, "alert_thresholds": [50, 80] }'{ "method": "tools/call", "params": { "name": "usage", "arguments": { "from": "2026-10-01", "group_by": "user" } }}