Create format

Parses a builder query and echoes it back normalized to the v3 shape — the endpoint the UI uses to canonicalize a query without running it.

POST /v1/o11y/query_range/format

Addresshttps://api.hanzo.ai/v1/o11y/query_range/format
MethodPOST
Operationpost_o11y_query_range_format
AuthAuthorization: Bearer $HANZO_API_KEY

Parses a builder query and echoes it back normalized to the v3 shape — the endpoint the UI uses to canonicalize a query without running it.

Callers need the viewer role; the runtime's own gate enforces it.

Request

87 fields, body application/json (required).

FieldInTypeRequiredDescription
compositeQuerybodyo11y.v3.CompositeQuery—
compositeQuery.builderQueriesbodyobject—
compositeQuery.builderQueries.*bodyo11y.BuilderQuery—
compositeQuery.builderQueries.*.IsAnomalybodyboolean—
compositeQuery.builderQueries.*.QueriesUsedInFormulabodystring[]—
compositeQuery.builderQueries.*.ShiftBybodyinteger (int64)—
compositeQuery.builderQueries.*.aggregateAttributebodyo11y.AttributeKey—
compositeQuery.builderQueries.*.aggregateAttribute.dataTypebodystring—
compositeQuery.builderQueries.*.aggregateAttribute.isColumnbodyboolean—
compositeQuery.builderQueries.*.aggregateAttribute.isJSONbodyboolean—
compositeQuery.builderQueries.*.aggregateAttribute.keybodystring—
compositeQuery.builderQueries.*.aggregateAttribute.typebodystring—
compositeQuery.builderQueries.*.aggregateOperatorbodystring—
compositeQuery.builderQueries.*.dataSourcebodystring—
compositeQuery.builderQueries.*.disabledbodyboolean—
compositeQuery.builderQueries.*.expressionbodystring—
compositeQuery.builderQueries.*.filtersbodyo11y.FilterSet—
compositeQuery.builderQueries.*.filters.itemsbodyo11y.FilterItem[]—
compositeQuery.builderQueries.*.filters.items[].keybodyo11y.AttributeKey—
compositeQuery.builderQueries.*.filters.items[].key.dataTypebodystring—
compositeQuery.builderQueries.*.filters.items[].key.isColumnbodyboolean—
compositeQuery.builderQueries.*.filters.items[].key.isJSONbodyboolean—
compositeQuery.builderQueries.*.filters.items[].key.keybodystring—
compositeQuery.builderQueries.*.filters.items[].key.typebodystring—
compositeQuery.builderQueries.*.filters.items[].opbodystring—
compositeQuery.builderQueries.*.filters.items[].valuebodyany—
compositeQuery.builderQueries.*.filters.opbodystring—
compositeQuery.builderQueries.*.functionsbodyo11y.Function[]—
compositeQuery.builderQueries.*.functions[].argsbodyany[]—
compositeQuery.builderQueries.*.functions[].namebodystring—
compositeQuery.builderQueries.*.functions[].namedArgsbodyobject—
compositeQuery.builderQueries.*.functions[].namedArgs.*bodyany—
compositeQuery.builderQueries.*.groupBybodyo11y.AttributeKey[]—
compositeQuery.builderQueries.*.groupBy[].dataTypebodystring—
compositeQuery.builderQueries.*.groupBy[].isColumnbodyboolean—
compositeQuery.builderQueries.*.groupBy[].isJSONbodyboolean—
compositeQuery.builderQueries.*.groupBy[].keybodystring—
compositeQuery.builderQueries.*.groupBy[].typebodystring—
compositeQuery.builderQueries.*.havingbodyo11y.Having[]—
compositeQuery.builderQueries.*.having[].columnNamebodystring—
compositeQuery.builderQueries.*.having[].opbodystring—
compositeQuery.builderQueries.*.having[].valuebodyany—
compositeQuery.builderQueries.*.legendbodystring—
compositeQuery.builderQueries.*.limitbodyinteger (uint64)—
compositeQuery.builderQueries.*.offsetbodyinteger (uint64)—
compositeQuery.builderQueries.*.orderBybodyo11y.OrderBy[]—
compositeQuery.builderQueries.*.orderBy[].columnNamebodystring—
compositeQuery.builderQueries.*.orderBy[].orderbodystring—
compositeQuery.builderQueries.*.pageSizebodyinteger (uint64)—
compositeQuery.builderQueries.*.queryNamebodystring—
compositeQuery.builderQueries.*.reduceTobodystring—
compositeQuery.builderQueries.*.selectColumnsbodyo11y.AttributeKey[]—
compositeQuery.builderQueries.*.selectColumns[].dataTypebodystring—
compositeQuery.builderQueries.*.selectColumns[].isColumnbodyboolean—
compositeQuery.builderQueries.*.selectColumns[].isJSONbodyboolean—
compositeQuery.builderQueries.*.selectColumns[].keybodystring—
compositeQuery.builderQueries.*.selectColumns[].typebodystring—
compositeQuery.builderQueries.*.seriesAggregationbodystring—
compositeQuery.builderQueries.*.spaceAggregationbodystring—
compositeQuery.builderQueries.*.stepIntervalbodyinteger (int64)—
compositeQuery.builderQueries.*.temporalitybodystring—
compositeQuery.builderQueries.*.timeAggregationbodystring—
compositeQuery.chQueriesbodyobject—
compositeQuery.chQueries.*bodyo11y.DatastoreQuery—
compositeQuery.chQueries.*.disabledbodyboolean—
compositeQuery.chQueries.*.legendbodystring—
compositeQuery.chQueries.*.querybodystring—
compositeQuery.fillGapsbodyboolean—FillGaps is used to fill the gaps in the time series data
compositeQuery.panelTypebodystring—
compositeQuery.promQueriesbodyobject—
compositeQuery.promQueries.*bodyo11y.PromQuery—
compositeQuery.promQueries.*.disabledbodyboolean—
compositeQuery.promQueries.*.legendbodystring—
compositeQuery.promQueries.*.querybodystring—
compositeQuery.promQueries.*.statsbodystring—
compositeQuery.queriesbodyo11y.QueryEnvelope[]—
compositeQuery.queries[].specbodyany—Spec is the deferred decoding of the query if any.
compositeQuery.queries[].typebodyany—Type is the type of the query.
compositeQuery.queryTypebodystring—
compositeQuery.unitbodystring—Unit for the time series data shown in the graph This is used in alerts to format the value and threshold
endbodyinteger (int64)—
formatForWebbodyboolean—
noCachebodyboolean—
startbodyinteger (int64)—
stepbodyinteger (int64)—step is in seconds; used for prometheus queries
variablesbodyobject—
variables.*bodyany—

Response

StatusBodyMeaning
200o11y.O11yQueryRangeFormatOutok
202Approvalheld for approval
defaultproblem-detailsrefused

200 body — 2 fields.

FieldInTypeAlwaysDescription
databodyany—Data is the query, normalized to the v3 shape.
statusbodystring—Status is "success".

Failure carries the platform error shape — see Errors.

Examples

hanzo o11y query_range format
import { Configuration, O11yApi } from 'hanzoai';

const api = new O11yApi(new Configuration({ accessToken: process.env.HANZO_API_KEY }));
const { data } = await api.postO11yQueryRangeFormat({ compositeQuery: {"builderQueries":{},"chQueries":{},"fillGaps":false,"panelType":"<panelType>"}, end: 0 });
from hanzoai.cloud import ApiClient, Configuration
from hanzoai.cloud.api import O11yApi

client = ApiClient(Configuration(access_token=os.environ["HANZO_API_KEY"]))
result = O11yApi(client).post_o11y_query_range_format(composite_query={"builderQueries":{},"chQueries":{},"fillGaps":false,"panelType":"<panelType>"}, end=0)
cfg := hanzoai.NewConfiguration()
cfg.AddDefaultHeader("Authorization", "Bearer "+os.Getenv("HANZO_API_KEY"))
client := hanzoai.NewAPIClient(cfg)

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

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

let result = o11y_api::post_o11y_query_range_format(&cfg, Default::default()).await?;
import ai.hanzo.cloud.ApiClient;
import ai.hanzo.cloud.api.O11yApi;

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

var result = new O11yApi(client).postO11yQueryRangeFormat();
curl -X POST https://api.hanzo.ai/v1/o11y/query_range/format \
  -H "Authorization: Bearer $HANZO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
       "compositeQuery": {
         "builderQueries": {},
         "chQueries": {},
         "fillGaps": false,
         "panelType": "<panelType>"
       },
       "end": 0
     }'

MCP reaches o11y through the o11y tool, which names its 307 operations with its own verbs — this one among them, under a name only MCP declares. describe explains any of them:

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

O11y API · All Hanzo APIs · Interactive reference

Was this page useful?