Properties
| Name | Type | Description |
|---|---|---|
| key | object | |
| label | string | |
| type | string | |
| ui_url | object | |
| deep_search | object | |
| research_plan | object | |
| use_external_urls | object | |
| kpi_label | object | |
| kpi_aggregation | object | |
| kpi_baseline | object | |
| kpi_delta | object | |
| kpi_threshold | object | |
| kpi_sparkline | object | |
| legend_position | object | |
| show_title | object | |
| show_legend | object | |
| auto_height | object | |
| show_controls | object | |
| widget_chrome | object | |
| accent_color | object | |
| position | object | |
| size | object | |
| text | object | |
| rows | object | |
| columns | object | |
| values | object | |
| trend_on | object | |
| trend_by | object | |
| trend_granulation | object | |
| distribution_of | object | |
| distribution_by | object | |
| stacked_by | object | |
| segment_field_name | object | |
| percent_field_name | object | |
| percent_field_value | object | |
| bubble_field_name | object | |
| bubble_field_value | object | |
| search_query | object | |
| corrected_query | object | |
| original_query | object | |
| translated_query | object | |
| task | object | |
| filters | array | |
| sorted_by | object | |
| custom_prompt_begin | object | |
| custom_prompt_end | object | |
| main_field | object | |
| additional_fields | object | |
| quantify_prompt | object | |
| number_of_topics | object | |
| taxonomy_key | object | |
| category_id | object | |
| category_name | object | |
| anecdote_id | object | |
| anecdote_name | object | |
| table_chart | object | |
| table_sort | object | |
| survey_id | object | |
| question | object | |
| artifact_id | object | |
| widget_id | object | |
| caption | object | |
| insight_types | object | |
| overview_settings | object | |
| segments_data | object | |
| distribution_filters | object | |
| stacking_filters | object | |
| trend_filters | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/onclarity-com/json-schema/onclarity-com-dashboard-element-schema.json",
"title": "DashboardElement",
"x-generated": "2026-10-29",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/onclarity-com-openapi.json#/components/schemas/DashboardElement",
"properties": {
"key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Key"
},
"label": {
"type": "string",
"title": "Label"
},
"type": {
"type": "string",
"title": "Type"
},
"ui_url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Ui Url"
},
"deep_search": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Deep Search",
"default": false
},
"research_plan": {
"anyOf": [
{
"items": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Research Plan"
},
"use_external_urls": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Use External Urls",
"default": false
},
"kpi_label": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Kpi Label"
},
"kpi_aggregation": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Kpi Aggregation"
},
"kpi_baseline": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Kpi Baseline"
},
"kpi_delta": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Kpi Delta"
},
"kpi_threshold": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Kpi Threshold"
},
"kpi_sparkline": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Kpi Sparkline"
},
"legend_position": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Legend Position"
},
"show_title": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Show Title"
},
"show_legend": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Show Legend"
},
"auto_height": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Auto Height"
},
"show_controls": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"title": "Show Controls"
},
"widget_chrome": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Widget Chrome"
},
"accent_color": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Accent Color"
},
"position": {
"anyOf": [
{
"$ref": "#/$defs/DashboardElementPosition"
},
{
"type": "null"
}
]
},
"size": {
"anyOf": [
{
"$ref": "#/$defs/DashboardElementSize"
},
{
"type": "null"
}
]
},
"text": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Text"
},
"rows": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/TableField"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Rows"
},
"columns": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/TableField"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Columns"
},
"values": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/TableField"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Values"
},
"trend_on": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Trend On"
},
"trend_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Trend By"
},
"trend_granulation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Trend Granulation"
},
"distribution_of": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Distribution Of"
},
"distribution_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Distribution By"
},
"stacked_by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Stacked By"
},
"segment_field_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Segment Field Name"
},
"percent_field_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Percent Field Name"
},
"percent_field_value": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Percent Field Value"
},
"bubble_field_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Bubble Field Name"
},
"bubble_field_value": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Bubble Field Value"
},
"search_query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Search Query"
},
"corrected_query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Corrected Query"
},
"original_query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Original Query"
},
"translated_query": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Translated Query"
},
"task": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Task"
},
"filters": {
"items": {
"$ref": "#/$defs/QueryFilter"
},
"type": "array",
"title": "Filters"
},
"sorted_by": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/QuerySort"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Sorted By"
},
"custom_prompt_begin": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Custom Prompt Begin"
},
"custom_prompt_end": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Custom Prompt End"
},
"main_field": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Main Field"
},
"additional_fields": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Additional Fields",
"default": []
},
"quantify_prompt": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Quantify Prompt"
},
"number_of_topics": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Number Of Topics"
},
"taxonomy_key": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Taxonomy Key"
},
"category_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Id"
},
"category_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Category Name"
},
"anecdote_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Anecdote Id"
},
"anecdote_name": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Anecdote Name"
},
"table_chart": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Table Chart"
},
"table_sort": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Table Sort"
},
"survey_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Survey Id"
},
"question": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Question"
},
"artifact_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Artifact Id"
},
"widget_id": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Widget Id"
},
"caption": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Caption"
},
"insight_types": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Insight Types"
},
"overview_settings": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Overview Settings"
},
"segments_data": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Segments Data"
},
"distribution_filters": {
"anyOf": [
{
"$ref": "#/$defs/ExtraFilters"
},
{
"type": "null"
}
]
},
"stacking_filters": {
"anyOf": [
{
"$ref": "#/$defs/ExtraFilters"
},
{
"type": "null"
}
]
},
"trend_filters": {
"anyOf": [
{
"$ref": "#/$defs/ExtraFilters"
},
{
"type": "null"
}
]
}
},
"type": "object",
"required": [
"label",
"type",
"filters"
],
"$defs": {
"DashboardElementPosition": {
"properties": {
"x": {
"type": "integer",
"title": "X"
},
"y": {
"type": "integer",
"title": "Y"
}
},
"type": "object",
"required": [
"x",
"y"
],
"title": "DashboardElementPosition"
},
"DashboardElementSize": {
"properties": {
"h": {
"type": "integer",
"title": "H"
},
"w": {
"type": "integer",
"title": "W"
}
},
"type": "object",
"required": [
"h",
"w"
],
"title": "DashboardElementSize"
},
"ExtraFilters": {
"properties": {
"include_filters": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Include Filters"
},
"exclude_filters": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Exclude Filters"
},
"size": {
"type": "integer",
"title": "Size",
"default": 10240
}
},
"type": "object",
"title": "ExtraFilters"
},
"MetricFormat": {
"properties": {
"unit": {
"type": "string",
"enum": [
"count",
"percent",
"ratio",
"score",
"currency",
"duration"
],
"title": "Unit",
"default": "count"
},
"decimals": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Decimals"
},
"scale": {
"anyOf": [
{
"items": {
"type": "number"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Scale"
}
},
"additionalProperties": false,
"type": "object",
"title": "MetricFormat",
"description": "How a derived number should be read (RFC P0-7).\n\nCarried through to the response so every surface — table, chart, export —\nrenders the same value the same way, and so a score with a scale can't be\nmistaken for a percentage again (§2.4)."
},
"MetricGuards": {
"properties": {
"min_denominator": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Min Denominator",
"description": "Below this denominator the ratio is undefined rather than small; the value becomes null and renders as '—'."
}
},
"additionalProperties": false,
"type": "object",
"title": "MetricGuards",
"description": "Suppression rules for a single derived value (RFC P0-6)."
},
"MetricScope": {
"properties": {
"narrow": {
"items": {
"$ref": "#/$defs/QueryFilter"
},
"type": "array",
"title": "Narrow"
},
"shift": {
"anyOf": [
{
"$ref": "#/$defs/ShiftTransform"
},
{
"type": "null"
}
]
},
"drop": {
"items": {
"type": "string"
},
"type": "array",
"title": "Drop",
"description": "Ignore the ambient filters on these keys."
},
"keep_only": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Keep Only",
"description": "Reset every ambient filter except these keys. An EMPTY list keeps none of them, which is the whole project — the denominator of a share of the total. Absent means no such transform at all; the two are different populations and the default cannot be `[]` or they collapse into one."
},
"replace": {
"additionalProperties": {
"type": "string"
},
"type": "object",
"title": "Replace",
"description": "Swap a dimension's value — compare against a named peer."
}
},
"additionalProperties": false,
"type": "object",
"title": "MetricScope",
"description": "The Δ applied to the ambient filter set before a measure is aggregated.\n\nFive transforms, in two families.\n\nThe narrowing pair is cheap — they compile to a `filter` sub-agg inside the\nexisting bucket tree, so a comparison costs one round trip and no client-side\nmath:\n\n* `narrow` adds predicates, always *intersecting* the page filters.\n* `shift` replaces the measure's date range with a calendar window.\n\nThe widening three — `drop`, `keep_only`, `replace` — escape the bucket, so\nthey are aggregated in a top-level `global` sibling and composed back onto\neach cell by the axes the widened population is still pinned by. They\ncompile; only two combinations are refused, and `_widening_errors` says which\nand why. Because their operands live in a parallel subtree, nothing that\ndepends on one can be a `bucket_script` — see `MetricPlan.python_expressions`\n— or decide the result set."
},
"QueryFilter": {
"properties": {
"type": {
"anyOf": [
{
"type": "string",
"const": "exists"
},
{
"type": "string",
"const": "list"
},
{
"type": "string",
"const": "nested"
},
{
"type": "string",
"const": "range"
},
{
"type": "string",
"const": "text"
}
],
"title": "Type"
},
"key": {
"type": "string",
"title": "Key"
},
"values": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"items": {
"type": "integer"
},
"type": "array"
},
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Values"
},
"min": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Min"
},
"max": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
},
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Max"
},
"operator": {
"anyOf": [
{
"type": "string",
"const": "eq"
},
{
"type": "string",
"const": "neq"
},
{
"type": "string",
"const": "contains"
}
],
"title": "Operator",
"default": "eq"
},
"generated": {
"type": "boolean",
"title": "Generated",
"default": false
}
},
"type": "object",
"required": [
"type",
"key"
],
"title": "QueryFilter"
},
"QuerySort": {
"properties": {
"key": {
"type": "string",
"title": "Key"
},
"order": {
"anyOf": [
{
"type": "string",
"const": "asc"
},
{
"type": "string",
"const": "desc"
}
],
"title": "Order",
"default": "asc"
}
},
"type": "object",
"required": [
"key"
],
"title": "QuerySort"
},
"ShiftTransform": {
"properties": {
"key": {
"type": "string",
"title": "Key",
"default": "ds"
},
"unit": {
"type": "string",
"enum": [
"day",
"week",
"month",
"quarter",
"year"
],
"title": "Unit",
"default": "week"
},
"offset": {
"type": "integer",
"title": "Offset",
"default": 0
},
"count": {
"type": "integer",
"minimum": 1.0,
"title": "Count",
"description": "Trailing length in units — 4 weeks, 3 months, …",
"default": 1
},
"align": {
"type": "string",
"enum": [
"complete",
"to_date"
],
"title": "Align",
"default": "complete"
},
"week_start": {
"type": "string",
"enum": [
"monday",
"sunday"
],
"title": "Week Start",
"default": "monday"
},
"anchor": {
"type": "string",
"enum": [
"today",
"dashboard_end"
],
"title": "Anchor",
"default": "today"
}
},
"additionalProperties": false,
"type": "object",
"title": "ShiftTransform",
"description": "Move a measure's date range by whole calendar units (RFC §6.13).\n\nThis is what makes week-over-week possible. Today's only comparison shifts\nthe range back by its own length in days, so a 90-day dashboard gets a\n90-day baseline and month-over-month compares 31 days to 30."
},
"TableField": {
"properties": {
"key": {
"type": "string",
"title": "Key",
"default": ""
},
"order": {
"anyOf": [
{
"type": "string",
"const": "asc"
},
{
"type": "string",
"const": "desc"
},
{
"type": "null"
}
],
"title": "Order"
},
"operation": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Operation"
},
"n": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "N"
},
"weight": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Weight"
},
"percentile": {
"anyOf": [
{
"type": "number",
"maximum": 100.0,
"minimum": 0.0
},
{
"type": "null"
}
],
"title": "Percentile",
"description": "Which percentile to return for operation = 'percentile'. Defaults to 95."
},
"custom_prompt_begin": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Custom Prompt Begin"
},
"custom_prompt_end": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Custom Prompt End"
},
"kind": {
"anyOf": [
{
"type": "string",
"enum": [
"expression",
"rescope",
"window"
]
},
{
"type": "null"
}
],
"title": "Kind"
},
"as": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "As"
},
"scope": {
"anyOf": [
{
"$ref": "#/$defs/MetricScope"
},
{
"type": "null"
}
]
},
"expr": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Expr"
},
"of": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Of"
},
"window": {
"anyOf": [
{
"$ref": "#/$defs/WindowTransform"
},
{
"type": "null"
}
]
},
"format": {
"anyOf": [
{
"$ref": "#/$defs/MetricFormat"
},
{
"type": "null"
}
]
},
"guards": {
"anyOf": [
{
"$ref": "#/$defs/MetricGuards"
},
{
"type": "null"
}
]
},
"drill": {
"anyOf": [
{
"type": "string",
"enum": [
"numerator",
"denominator",
"none"
]
},
{
"type": "null"
}
],
"title": "Drill"
},
"include_filters": {
"items": {
"type": "string"
},
"type": "array",
"title": "Include Filters"
},
"exclude_filters": {
"items": {
"type": "string"
},
"type": "array",
"title": "Exclude Filters"
},
"size": {
"anyOf": [
{
"type": "integer",
"maximum": 100000.0
},
{
"type": "null"
}
],
"title": "Size",
"description": "Bucket count for this grouping. Capped at 100000."
},
"interval": {
"anyOf": [
{
"type": "string",
"const": "day"
},
{
"type": "string",
"const": "week"
},
{
"type": "string",
"const": "month"
},
{
"type": "null"
}
],
"title": "Interval"
}
},
"type": "object",
"title": "TableField"
},
"WindowTransform": {
"properties": {
"op": {
"type": "string",
"enum": [
"moving_avg",
"cumulative_sum",
"rank"
],
"title": "Op"
},
"periods": {
"type": "integer",
"maximum": 365.0,
"minimum": 2.0,
"title": "Periods",
"description": "Window length in buckets, for moving_avg.",
"default": 4
},
"direction": {
"type": "string",
"enum": [
"asc",
"desc"
],
"title": "Direction",
"default": "desc"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"op"
],
"title": "WindowTransform",
"description": "A derived series over the buckets a metric already produced.\n\nThese are the three result-set operations the RFC lists and the builder could\nnot express: a moving average, a running total, and a rank.\n\nComputed after the response, over the buckets that came back — and that is\nthe definition rather than an approximation. `order_by`'s limit and\n`min_bucket_n` have already decided which buckets there are; a moving average\nis of the series on screen, a rank is among the rows shown. This is the one\nplace where \"the page\" and \"the result set\" are the same thing, which is why\n`having` and `order_by` are still refused a page-level answer (see\n`_plan_result_set_ops`) and these are not."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/onclarity-com-dashboard-element"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.