Query Ad Hoc Widget
POSThttps://api.confident-ai.com/v2/widgets/query
Computes the data for a widget you define inline, without saving it to a dashboard. Use it to chart your observability data on demand. Branch on data.kind to read the result: the widget's type and mode say how it is drawn, not how the payload is shaped. A query accepts at most 20 lines, a topK.limit of at most 100, and a range no longer than 366 days.
curl -X POST "https://api.confident-ai.com/v2/widgets/query" \
-H "CONFIDENT_API_KEY: <PROJECT-API-KEY>" \
-H "Content-Type: application/json" \
-d '{
"widget": {
"name": "Trace volume",
"description": "Traces served per day across production.",
"type": "LINE",
"unit": "COUNT",
"mode": "TIME_SERIES",
"bucketMode": "SERIES",
"dimension": "model",
"topK": {
"limit": 10,
"orderBy": "p90_latency",
"direction": "desc"
},
"startTime": "2025-01-01T00:00:00.000Z",
"endTime": "2025-01-31T23:59:59.999Z",
"layout": {
"x": 0,
"y": 0,
"w": 6,
"h": 2
},
"lines": [
{
"name": "Traces",
"color": "BLUE",
"dataModel": "TRACE",
"aggregation": "COUNT",
"filters": {
"operator": "AND",
"groups": [
{
"operator": "AND",
"filters": [
{
"category": "User Id",
"condition": "Is less than",
"value": "string",
"key": "string"
}
]
}
]
},
"extraQueryParams": {
"metricMetadataKey": "tokenCount"
}
}
]
},
"startTime": "2025-01-01T00:00:00.000Z",
"endTime": "2025-01-31T23:59:59.999Z",
"granularity": "thirty_minutes"
}'{
"success": true,
"data": {
"type": "LINE",
"mode": "TIME_SERIES",
"data": {
"kind": "BIG_NUMBER",
"unit": "COUNT",
"values": [
{
"key": "Traces",
"name": "Traces",
"color": "AMBER",
"lineId": "<LINE-ID>",
"value": 3814
}
]
}
},
"deprecated": false
}Headers
CONFIDENT_API_KEYstringRequiredThe API key of your Confident AI project.
Request body
widgetobjectRequiredA widget to add to a dashboard: the chart to draw, the time range and breakdown to draw it over, and the lines to plot on it.
Show 12 propertiesHide 12 properties
namestringRequiredThe name shown as the widget's title.
descriptionstring | nullWhat the widget shows. Send null to leave it unset.
typeenum | nullThe visualization a widget is drawn as. It is how the widget is displayed and does not by itself decide the shape of a query response — a
TABLEwidget returns tabular data whatever itsmodeis.Show 7 enum valuesHide 7 enum values
LINEAREABARSTACKED_BARGROUPED_BARTABLEBIG_NUMBER
unitenum | nullThe unit a widget's values are measured in.
Show 6 enum valuesHide 6 enum values
COUNTPERCENTSCORESECONDSUSDMILLISECONDS
modeenum | nullHow a widget aggregates its lines.
TIME_SERIESplots each configured line over time;DIMENSION_SERIEStakes a single metric and splits it into one series per value of the widget'sdimension. This is the widget's saved configuration — the shape of a query response is given bykindon the result.Show 2 enum valuesHide 2 enum values
TIME_SERIESDIMENSION_SERIES
bucketModeenum | nullHow a widget's data is bucketed over the query time range.
SERIESsplits the range into one bucket pergranularityinterval;RANGEaggregates the whole range into a single bucket, as a BIG_NUMBER widget wants. Defaults toSERIES.Show 2 enum valuesHide 2 enum values
SERIESRANGE
dimensionenum | nullThe property a widget breaks its data down by, one series or table row per distinct value.
Show 26 enum valuesHide 26 enum values
projecttrace_namespan_namemodeltypethread_idtest_case_idtest_run_idend_usersourceannotatornameerrorprompt_aliastaglabelevaluation_modelprompt_versionprompt_labelprompt_commit_hashmetadatahyperparameterclassifierpolarityclassifier_labelversion
topKobject | nullCaps a dimension breakdown at the most interesting values, so a dimension with thousands of values still plots.
Show 3 propertiesHide 3 properties
limitintegerThe number of series or rows to keep, taking the highest or lowest by
orderBy. Defaults to 10.orderByenum | enumThe metric or column the dimension values are ranked by. Defaults to
count.Show 2 variantsHide 2 variants
enum
Show 28 enum valuesHide 28 enum values
countavg_latencyp50_latencyp90_latencyp99_latencyerror_ratepass_ratefailure_rateinput_costoutput_costtotal_costavg_costinput_tokensoutput_tokenstotal_tokenscount_distinct_endUserIdcount_distinct_threadIdcount_distinct_modelcount_distinct_projectIdcount_distinct_errorcount_distinct_metadataerror_countpass_countavg_scorestddev_scoremedian_scoreavg_ratingscore_histogram
- OR
enum
Show 3 enum valuesHide 3 enum values
created_atstart_timedimension
directionenumWhether to keep the highest ranked values or the lowest. Defaults to
desc.Show 2 enum valuesHide 2 enum values
ascdesc
startTimestring | nullThe start of the widget's own time range, as an ISO 8601 datetime. Send null to let the query decide the range.
endTimestring | nullThe end of the widget's own time range, as an ISO 8601 datetime. Send null to let the query decide the range.
layoutobject | nullA widget's position and size on the dashboard's 12-column grid. Omit it when creating a widget and Confident AI packs it into the first free space.
Show 4 propertiesHide 4 properties
xnumberRequiredThe widget's left edge, as a column index on the 12-column grid.
ynumberRequiredThe widget's top edge, as a row index on the grid.
wnumberRequiredThe widget's width in grid columns.
hnumberRequiredThe widget's height in grid rows.
linesarray | nullThe series the widget plots.
Show 6 propertiesHide 6 properties
namestringRequiredThe name the line is labelled with in the legend.
colorenum | nullThe colour a line is drawn in, from the Confident AI palette. A line you create without one is assigned the next colour in the palette.
Show 10 enum valuesHide 10 enum values
AMBERVIOLETEMERALDBLUEPINKCYANROSELIMETEALORANGE
dataModelenum | nullThe entity a widget line aggregates over. It decides which aggregations, filters and
extraQueryParamsthe line accepts.Show 12 enum valuesHide 12 enum values
TRACESPANLLM_SPANAGENT_SPANRETRIEVER_SPANTOOL_SPANCUSTOM_SPANTHREADEND_USERMETRIC_DATAANNOTATIONCLASSIFICATION
aggregationenum | nullThe aggregation a line computes, given as its token. Which tokens apply depends on the line's
dataModel—AVG_RATINGbelongs toANNOTATIONlines,TOTAL_TOKENSto span lines — and a token that does not apply to the line's data model is rejected with the list of the ones that do.Show 26 enum valuesHide 26 enum values
AVG_COSTAVG_COST_PER_USERAVG_LATENCYAVG_RATINGAVG_SCORECOUNTERROR_COUNTERROR_RATEFAILURE_RATEINPUT_COSTINPUT_TOKENSMEDIAN_SCORENEW_USERSOUTPUT_COSTOUTPUT_TOKENSP50_LATENCYP90_LATENCYP99_LATENCYPASS_RATERETENTIONTOTAL_COSTTOTAL_TOKENSUNIQUE_END_USERSUNIQUE_METADATA_VALUESUNIQUE_THREADSUNIQUE_USERS
filtersobject | nullA set of filter groups combined by a top-level operator. Each group combines its filter rows by its own operator, and each row matches one property, such as
NameorUser Id, against a value with a condition such asIsorContains.Show 2 propertiesHide 2 properties
operatorenumRequiredShow 2 enum valuesHide 2 enum values
ANDOR
groupslist of objectsRequiredShow 2 propertiesHide 2 properties
operatorenumRequiredShow 2 enum valuesHide 2 enum values
ANDOR
filterslist of objectsRequiredShow 4 propertiesHide 4 properties
categoryenumRequiredShow 80 enum valuesHide 80 enum values
User IdThread IdTrace UuidTrace NameTrace VersionTrace StatusTrace TagsTraceSpan UuidNameSpan NameSpan TypeSpan StatusMetrics StatusError StatusNameModelProviderIntegrationEmbedderChunk SizeTop-KHyperparameterDatasetDataset NameTest Run IDIdentifierTest FileStatusOfficialEvals ModeTests PassedTests FailedPass RateFail RateStar RatingThumbs RatingExplanationExpected OutputExpected OutcomeAnnotatorEnd UserAnnotation TypeAnnotation NameCriteriaAnnotation DateMetric ScoreMetric StatusNameMetadataClassifierMetricMetric NameTrace CountTest Case IDRequested review fromAssigned toTagsLabelsTools CalledFinalizedGolden IDIngestion TaskLatencyEnvironmentReview flagVulnerabilityVulnerability TypeAttack MethodRisk CategoryFrameworkAssessment IDPrompt AliasPrompt VersionPrompt LabelPrompt Commit HashPromptAnnotationsStatus CodeActor Type
conditionenum | enum | enum | enum | enum | enum | enum | enum | enum | enumRequiredvaluestring | number | list of stringsRequiredkeystring
extraQueryParamsobject | nullAdvanced per-line query parameters, whose recognised keys depend on the line's
dataModel.spanTyperestricts aSPANline to one span type;metricMetadataKeynames the metadata field a span, trace or thread line aggregates;categoryandmetricNamepick out the metric aMETRIC_DATAline reads;dataTypeandsourcesay which annotations anANNOTATIONline counts. Unrecognised keys are ignored, and most lines send none of these.
startTimestringThe start of the range to compute over, as an ISO 8601 datetime. Must be sent together with
endTime, and overrides a range set on the widget itself.endTimestringThe end of the range to compute over, as an ISO 8601 datetime. Must be sent together with
startTime, and must be later than it.granularityenumThe size of each bucket in computed widget data. Left unset, Confident AI picks one from the length of the query range.
Show 5 enum valuesHide 5 enum values
thirty_minuteshourdayweekmonth
Response
Query Ad Hoc Widget succeeded.
successbooleanIndicates if the request was successful.
dataobjectThe computed data for a widget that was defined inline rather than saved, so it carries no widget id.
Show 3 propertiesHide 3 properties
typeenum | nullThe visualization a widget is drawn as. It is how the widget is displayed and does not by itself decide the shape of a query response — a
TABLEwidget returns tabular data whatever itsmodeis.Show 7 enum valuesHide 7 enum values
LINEAREABARSTACKED_BARGROUPED_BARTABLEBIG_NUMBER
modeenum | nullHow a widget aggregates its lines.
TIME_SERIESplots each configured line over time;DIMENSION_SERIEStakes a single metric and splits it into one series per value of the widget'sdimension. This is the widget's saved configuration — the shape of a query response is given bykindon the result.Show 2 enum valuesHide 2 enum values
TIME_SERIESDIMENSION_SERIES
dataobject | object | object | objectA widget's computed data. Branch on
kindto read it: Confident AI derives the shape from the widget'stypeandmode, so aDIMENSION_SERIESwidget drawn as aTABLEreturnsTABLEdata.Show 4 variantsHide 4 variants
Widget Big Number DataobjectThe whole query range aggregated to one figure per line, as a BIG_NUMBER widget draws it.
Show 3 propertiesHide 3 properties
kindenumMarks the result as a set of headline figures.
Show 1 enum valueHide 1 enum value
BIG_NUMBER
unitenum | nullThe unit a widget's values are measured in.
Show 6 enum valuesHide 6 enum values
COUNTPERCENTSCORESECONDSUSDMILLISECONDS
valueslist of objectsOne figure per line on the widget.
Show 5 propertiesHide 5 properties
keystringA key that identifies this series within the result, unique across the result and stable between queries. Use it as a render key, or to line results up across queries.
namestringThe label to show for the series.
colorenumThe colour a line is drawn in, from the Confident AI palette. A line you create without one is assigned the next colour in the palette.
Show 10 enum valuesHide 10 enum values
AMBERVIOLETEMERALDBLUEPINKCYANROSELIMETEALORANGE
lineIdstringThe id of the widget line this series was computed from, when one line produced it.
valuenumber | nullThe aggregated value over the whole query range, or null when there was nothing to aggregate.
- OR
Widget Time Series DataobjectValues bucketed over the query range, each point's
xthe start of its time bucket.Show 3 propertiesHide 3 properties
kindenumMarks the result as series plotted against time.
Show 1 enum valueHide 1 enum value
TIME_SERIES
unitenum | nullThe unit a widget's values are measured in.
Show 6 enum valuesHide 6 enum values
COUNTPERCENTSCORESECONDSUSDMILLISECONDS
serieslist of objectsOne series per line, or per dimension value when the widget breaks its single line down.
Show 5 propertiesHide 5 properties
keystringA key that identifies this series within the result, unique across the result and stable between queries. Use it as a render key, or to line results up across queries.
namestringThe label to show for the series.
colorenumThe colour a line is drawn in, from the Confident AI palette. A line you create without one is assigned the next colour in the palette.
Show 10 enum valuesHide 10 enum values
AMBERVIOLETEMERALDBLUEPINKCYANROSELIMETEALORANGE
lineIdstringThe id of the widget line this series was computed from, when one line produced it.
pointslist of objectsThe series' points, ordered by time for
TIME_SERIESdata and by the order the dimension values were ranked in forDIMENSIONdata.Show 2 propertiesHide 2 properties
xstringThe point's position along the x axis: the start of the time bucket for
TIME_SERIESdata, the dimension value forDIMENSIONdata.ynumber | nullThe aggregated value at this point, or null when the bucket held nothing to aggregate.
- OR
Widget Dimension DataobjectThe whole query range aggregated per dimension value, as a DIMENSION_SERIES widget draws it.
Show 3 propertiesHide 3 properties
kindenumMarks the result as series plotted against a dimension.
Show 1 enum valueHide 1 enum value
DIMENSION
unitenum | nullThe unit a widget's values are measured in.
Show 6 enum valuesHide 6 enum values
COUNTPERCENTSCORESECONDSUSDMILLISECONDS
serieslist of objectsOne series per line, each point's
xa value of the widget's dimension.Show 5 propertiesHide 5 properties
keystringA key that identifies this series within the result, unique across the result and stable between queries. Use it as a render key, or to line results up across queries.
namestringThe label to show for the series.
colorenumThe colour a line is drawn in, from the Confident AI palette. A line you create without one is assigned the next colour in the palette.
Show 10 enum valuesHide 10 enum values
AMBERVIOLETEMERALDBLUEPINKCYANROSELIMETEALORANGE
lineIdstringThe id of the widget line this series was computed from, when one line produced it.
pointslist of objectsThe series' points, ordered by time for
TIME_SERIESdata and by the order the dimension values were ranked in forDIMENSIONdata.Show 2 propertiesHide 2 properties
xstringThe point's position along the x axis: the start of the time bucket for
TIME_SERIESdata, the dimension value forDIMENSIONdata.ynumber | nullThe aggregated value at this point, or null when the bucket held nothing to aggregate.
- OR
Widget Table DataobjectThe whole query range aggregated into a table, as a TABLE widget draws it.
Show 3 propertiesHide 3 properties
kindenumMarks the result as columns and rows.
Show 1 enum valueHide 1 enum value
TABLE
columnslist of objectsThe table's columns: the widget's dimension first, under the key
dimension, then one column per line.Show 2 propertiesHide 2 properties
keystringThe key each row holds this column's value under.
labelstringThe label to show in the column header.
rowslist of objectsOne row per dimension value. Each row holds its values under the
keyof the column they belong to, and a value is null where the row had nothing to aggregate.
deprecatedbooleanIndicates if this endpoint is deprecated.