List overview

Returns the caller org's analytics KPIs for one time window.

GET /v1/event/overview

Addresshttps://api.hanzo.ai/v1/event/overview
MethodGET
Operationget_event_overview
AuthAuthorization: Bearer $HANZO_API_KEY

Returns the caller org's analytics KPIs for one time window. Three lenses over one warehouse: llm is the live per-org LLM usage ledger (requests, tokens, spend, models, providers, errors) and is always real; web (pageviews, visitors, sessions) and commerce (orders, revenue, AOV) read the product-event table and report available=false rather than fabricating zeros when it holds nothing yet.

The org is the validated principal's — never a parameter — so a caller can only ever read its own tenant. 401 without a validated bearer, 400 on an unknown range, 503 when the warehouse is unreachable.

Request

3 fields.

FieldInTypeRequiredDescription
rangequerystring—Range is a relative window: a count and a unit — 24h, 7d, 90d, any <N>h or <N>d — or day, week, month, all.
startquerystring—Start is the inclusive lower bound of a custom window, RFC3339.
endquerystring—End is the exclusive upper bound of a custom window, RFC3339.

Response

StatusBodyMeaning
200event.Overviewok
defaultproblem-detailsrefused

200 body — 32 fields.

FieldInTypeAlwaysDescription
commercebodyevent.CommerceOverview—
commerce.aovbodynumber (double)—AOV is average order value — Revenue/Orders, rounded to two places.
commerce.availablebodyboolean—Available is false when the product-event table could not be read — the lens is reported missing rather than as zeros that look like no sales.
commerce.ordersbodyinteger (int64)—Orders is how many order_completed events landed in the window.
commerce.reasonbodystring—Reason says why the lens is unavailable.
commerce.revenuebodynumber (double)—Revenue is the total those orders carried, in the events' own currency unit.
commerce.sourcebodystring—Source is the warehouse table the lens read.
endbodystring—End is the window's exclusive upper bound, RFC3339 UTC.
intervalbodystring—Interval is the bucket width the window implies: hour or day.
llmbodyevent.LLMOverview—
llm.availablebodyboolean—Available is true whenever the ledger answered — including with no usage in the window, which is honest zeros rather than a missing lens.
llm.completionTokensbodyinteger (int64)—CompletionTokens is the output half of Tokens.
llm.errorRatebodynumber (double)—ErrorRate is Errors/Requests, 0..1, rounded to three places.
llm.errorsbodyinteger (int64)—Errors is how many of Requests failed.
llm.modelsbodyinteger (int64)—Models is how many distinct models the org called.
llm.promptTokensbodyinteger (int64)—PromptTokens is the input half of Tokens.
llm.providersbodyinteger (int64)—Providers is how many distinct providers served them.
llm.requestsbodyinteger (int64)—Requests is how many LLM calls the org made in the window.
llm.sourcebodystring—Source is the warehouse table the lens read.
llm.spendCentsbodyinteger (int64)—SpendCents is what those calls cost, in cents.
llm.tokensbodyinteger (int64)—Tokens is prompt plus completion tokens over those calls.
rangebodystring—Range is the window that was actually applied: 24h, 7d, 30d or custom.
scopebodyevent.Scope—
scope.orgbodystring—Org is the IAM org slug the rows were read under: the validated principal's, resolved server-side.
startbodystring—Start is the window's inclusive lower bound, RFC3339 UTC.
webbodyevent.WebOverview—
web.availablebodyboolean—Available is false when the product-event table could not be read — the lens is reported missing rather than as zeros that look like real traffic.
web.pageviewsbodyinteger (int64)—Pageviews is how many $pageview events landed in the window.
web.reasonbodystring—Reason says why the lens is unavailable.
web.sessionsbodyinteger (int64)—Sessions is how many distinct visits they span.
web.sourcebodystring—Source is the warehouse table the lens read.
web.visitorsbodyinteger (int64)—Visitors is how many distinct people those pageviews came from.

Failure carries the platform error shape — see Errors.

Examples

hanzo event overview
import { Configuration, EventApi } from 'hanzoai';

const api = new EventApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.getEventOverview();
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import EventApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = EventApi(client).get_event_overview()
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

resp, _, err := client.EventAPI.GetEventOverview(context.Background()).Execute()
if err != nil {
	return err
}
use hanzo_client::apis::{configuration::Configuration, event_api};

let mut cfg = Configuration::new();
cfg.bearer_access_token = std::env::var("HANZO_API_KEY").ok();

let result = event_api::get_event_overview(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.EventApi;

ApiClient client = new ApiClient();
client.setBearerToken(System.getenv("HANZO_API_KEY"));

var result = new EventApi(client).getEventOverview();
curl https://api.hanzo.ai/v1/event/overview \
  -H "Authorization: Bearer $HANZO_API_KEY"

Tool event, op get_event_overview — POST the JSON-RPC envelope to https://api.hanzo.ai/v1/mcp.

curl -X POST https://api.hanzo.ai/v1/mcp \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "jsonrpc": "2.0",
       "id": 1,
       "method": "tools/call",
       "params": {
         "name": "event",
         "arguments": {
           "op": "get_event_overview",
           "input": {}
         }
       }
     }'

Event API · All Hanzo APIs · Interactive reference

Was this page useful?