Ghid pentru Venice Billing
Ce face
venice-billing este capability-ul pentru verificarea soldului, costurilor și consumului din Venice API. Acoperă trei endpoint-uri read-only, toate marcate Beta:
GET /billing/balance— verifică dacă un cont mai poate consuma și întoarce soldurile DIEM/USD disponibile.GET /billing/usage— ledger paginat, per request, disponibil ca JSON sau CSV.GET /billing/usage-analytics— sumar agregat pentru dashboard-uri: pe dată, model și API key.
Îl folosești pentru întrebări de tip: mai există credit, unde s-a dus consumul, ce model costă cel mai mult, ce cheie API a generat trafic, sau cum export consumul pentru reconciliere.
Nu este pentru x402 wallet balance. Pentru x402 folosește capability-ul venice-x402 și endpoint-ul GET /x402/balance/{walletAddress}.
Vezi și All guides pentru restul ghidurilor.
Când îmi folosește
Îți folosește înainte de joburi care pot consuma mult, la audit de costuri, la export lunar, la debugging de request-uri scumpe sau la construirea unui dashboard intern.
Cazuri tipice:
- verifici
canConsumeînainte de inference; - vezi soldurile DIEM și USD;
- exporți ledger-ul în CSV;
- filtrezi usage după monedă, dată, pagină și sortare;
- identifici top modele după cost sau unități;
- separi consumul pe API key;
- cauți un request prin
inferenceDetails.requestId.
Ordinea de consum Venice este: DIEM, apoi BUNDLED_CREDITS, apoi USD. VCU există ca legacy/deprecated DIEM și nu ar trebui folosit în cod nou decât pentru compatibilitate.
Atenție: pe /billing/balance, canConsume reflectă doar DIEM pozitiv sau USD pozitiv. Bundled credits pot fi consultate în fluxul real de request, dar nu sunt incluse în acel flag. Dacă faci dashboard, nu transforma canConsume într-un adevăr absolut despre toate sursele posibile de consum.
Cum îl invoc / declanșez
Invocarea exactă depinde de runtime-ul în care este instalat capability-ul. Declanșează venice-billing când taskul cere billing, balance, usage ledger, CSV export sau usage analytics pentru Venice API.
La nivel API, toate endpoint-urile cer Bearer auth:
curl https://api.venice.ai/api/v1/billing/balance \
-H "Authorization: Bearer $VENICE_API_KEY"GET /billing/balance și GET /billing/usage cer cheie ADMIN. O cheie INFERENCE primește 401. GET /billing/usage-analytics funcționează cu orice cheie autentificată, dar este scoped la contul din spatele cheii.
Nu pune cheia în documente, loguri, capturi sau commit-uri. Folosește variabile de mediu sau secret store-ul runtime-ului.
Exemplu practic
Vrei un dashboard pentru ultimele zile de consum.
- Ceri analytics:
curl "https://api.venice.ai/api/v1/billing/usage-analytics?lookback=30d" \
-H "Authorization: Bearer $VENICE_API_KEY"- Folosești câmpurile pregătite pentru grafice:
byDatepentru consum pe zile;byModelpentru totaluri pe model;byModelDailyșibyModelDailyUsdpentru serii temporale pe model;topModelspentru legendă;byKey,byKeyDaily,byKeyDailyUsdșitopKeyNamespentru consum pe chei.
- Dacă ai nevoie de audit detaliat, treci la ledger:
curl "https://api.venice.ai/api/v1/billing/usage?limit=500&page=1&sortOrder=desc" \
-H "Authorization: Bearer $VENICE_API_KEY" \
-H "Accept: application/json"Pentru CSV, setează Accept: text/csv și paginează cu page=1,2,3,... până când ai trecut de totalPages.
Output / unde aterizează
Output-ul vine direct de la API:
/billing/balanceîntoarce JSON cucanConsume,consumptionCurrency,balancesșidiemEpochAllocation./billing/usageîntoarce JSON paginat sau CSV. Pentru CSV, serverul setează download cabilling-usage.csv./billing/usage-analyticsîntoarce agregări pentru grafice:byDate,byModel,byModelDaily,byModelDailyUsd,byKey,byKeyDaily,byKeyDailyUsd,topModels,topKeyNames.
În ledger, fiecare intrare poate include timestamp, sku, units, pricePerUnitUsd, amount, currency, notes și inferenceDetails. Pentru LLM-uri, units sunt milioane de tokens: 0.000227 înseamnă 227 tokens. amount este negativ pentru debit. inferenceDetails poate fi null pentru SKU-uri non-inference.
Limite / gotchas
- Endpoint-urile sunt Beta; validează schema înainte să depinzi rigid de câmpuri.
/billing/balanceși/billing/usagecer cheie ADMIN.usage-analyticseste cached aproximativ 10 minute; spike-urile recente pot apărea cu întârziere.lookbackacceptă valori până la 90 de zile; valori mai mari pot fi clamp-uite la 90.- Pentru intervale calendaristice,
startDateșiendDatetrebuie trimise împreună. - Range-urile peste 90 de zile pot întoarce
400. byModelDaily.dateeste Unix milliseconds;byDate.dateeste stringYYYY-MM-DD.apiKeyId: nullînseamnă consum venit din web app, nu eroare.currencypoate includeUSD,DIEM,BUNDLED_CREDITSși legacyVCU.401poate însemna auth invalid sau cheie cu rol greșit.504pe analytics indică timeout; scurteazălookbacksau range-ul.