Okareo · Schema
ChatSessionCreateRequest
CompanyArtificial IntelligenceSynthetic DataVoice AgentsTesting
Properties
| Name | Type | Description |
|---|---|---|
| agent | object | |
| session_type | object | |
| context | object | |
| title | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/okareo/json-schema/okareo-chat-session-create-request-schema.json",
"title": "ChatSessionCreateRequest",
"x-generated": "2026-11-10",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/okareo-chat-api-openapi.yml#/components/schemas/ChatSessionCreateRequest",
"properties": {
"agent": {
"$ref": "#/$defs/ChatAgent"
},
"session_type": {
"$ref": "#/$defs/ChatSessionType"
},
"context": {
"$ref": "#/$defs/ChatSessionContext"
},
"title": {
"anyOf": [
{
"type": "string",
"maxLength": 255
},
{
"type": "null"
}
],
"title": "Title"
}
},
"type": "object",
"required": [
"agent",
"session_type"
],
"$defs": {
"AnalyticsFilter": {
"properties": {
"member": {
"type": "string",
"title": "Member"
},
"operator": {
"$ref": "#/$defs/ComparisonOperator",
"default": "equal"
},
"values": {
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"format": "uuid"
}
]
},
"type": "array",
"title": "Values"
}
},
"type": "object",
"required": [
"member"
],
"title": "AnalyticsFilter"
},
"AnalyticsFilterGroup-Input": {
"properties": {
"op": {
"type": "string",
"enum": [
"and",
"or"
],
"title": "Op"
},
"filters": {
"items": {
"anyOf": [
{
"$ref": "#/$defs/AnalyticsFilter"
},
{
"$ref": "#/$defs/AnalyticsFilterGroup-Input"
}
]
},
"type": "array",
"minItems": 1,
"title": "Filters"
}
},
"type": "object",
"required": [
"op",
"filters"
],
"title": "AnalyticsFilterGroup"
},
"ChartStateForChat": {
"properties": {
"id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Id"
},
"title": {
"type": "string",
"title": "Title",
"default": ""
},
"chart_type": {
"type": "string",
"title": "Chart Type",
"default": "line"
},
"query": {
"anyOf": [
{
"$ref": "#/$defs/PanelQuery-Input"
},
{
"type": "null"
}
]
},
"table_config": {
"anyOf": [
{
"$ref": "#/$defs/PanelTableConfig"
},
{
"type": "null"
}
]
},
"style": {
"anyOf": [
{
"additionalProperties": true,
"type": "object"
},
{
"type": "null"
}
],
"title": "Style"
},
"layout": {
"anyOf": [
{
"$ref": "#/$defs/PanelLayout"
},
{
"type": "null"
}
]
}
},
"type": "object",
"title": "ChartStateForChat",
"description": "Chat-layer chart shape: PanelConfig's field set, deliberately\nLENIENT — this is a read snapshot of the client's in-memory draft, which may be\nmid-edit invalid (blank title, leftover table_config, legacy chart_type). Business\nvalidation happens at the write boundary, never on the read context. `id` is a\nplain string so provisional ids (\"draft-1\") survive; `style` passes FE-only\nstyling through untouched. Non-UUID ids are stripped only where state is\npersisted, never here."
},
"ChatAgent": {
"type": "string",
"enum": [
"dashboard"
],
"title": "ChatAgent"
},
"ChatScope": {
"type": "string",
"enum": [
"dashboard",
"chart"
],
"title": "ChatScope",
"description": "Whether a chat turn operates on the whole dashboard or a single chart."
},
"ChatSessionContext": {
"properties": {
"dashboard_id": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
],
"title": "Dashboard Id"
},
"panel_id": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
],
"title": "Panel Id"
},
"panel_state": {
"anyOf": [
{
"$ref": "#/$defs/PanelConfig-Input"
},
{
"type": "null"
}
]
},
"scope": {
"anyOf": [
{
"$ref": "#/$defs/ChatScope"
},
{
"type": "null"
}
]
},
"chart_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Chart Id"
},
"dashboard_state": {
"anyOf": [
{
"$ref": "#/$defs/DashboardStateForChat"
},
{
"type": "null"
}
]
},
"turn_intent": {
"anyOf": [
{
"$ref": "#/$defs/ChatTurnIntent"
},
{
"type": "null"
}
]
},
"time_range": {
"anyOf": [
{
"$ref": "#/$defs/TimeRange"
},
{
"type": "null"
}
]
}
},
"type": "object",
"title": "ChatSessionContext"
},
"ChatSessionType": {
"type": "string",
"enum": [
"dashboard_panel_creation"
],
"title": "ChatSessionType"
},
"ChatTurnIntent": {
"type": "string",
"enum": [
"insights"
],
"title": "ChatTurnIntent",
"description": "Special turn kinds. INSIGHTS is a chart-scoped read-and-report turn: the\nagent follows the dashboard-insights skill and delivers via record_insights;\nthe streamer refuses to emit chart_ops for it."
},
"ComparisonOperator": {
"type": "string",
"enum": [
"equal",
"not_equal",
"contains",
"not_contains",
"greater_than",
"greater_than_or_equal",
"less_than",
"less_than_or_equal",
"is_set",
"not_set"
],
"title": "ComparisonOperator"
},
"DashboardStateForChat": {
"properties": {
"title": {
"type": "string",
"title": "Title"
},
"description": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Description"
},
"charts": {
"items": {
"$ref": "#/$defs/ChartStateForChat"
},
"type": "array",
"title": "Charts"
},
"notices": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Notices",
"description": "What the client told the person after the previous turn's chart ops, such as an op it refused and why. The agent must not claim those changes landed."
}
},
"type": "object",
"required": [
"title"
],
"title": "DashboardStateForChat",
"description": "Whole-dashboard read context sent with a chat turn (both scopes). `charts` is the\nclient's current in-memory draft snapshot; agent ops apply against that snapshot."
},
"PanelConfig-Input": {
"properties": {
"id": {
"anyOf": [
{
"type": "string",
"format": "uuid"
},
{
"type": "null"
}
],
"title": "Id"
},
"title": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"title": "Title"
},
"chart_type": {
"type": "string",
"enum": [
"line",
"bar",
"composed",
"area",
"radar",
"stat",
"table"
],
"title": "Chart Type"
},
"query": {
"$ref": "#/$defs/PanelQuery-Input"
},
"table_config": {
"anyOf": [
{
"$ref": "#/$defs/PanelTableConfig"
},
{
"type": "null"
}
]
},
"layout": {
"$ref": "#/$defs/PanelLayout"
}
},
"type": "object",
"required": [
"title",
"chart_type",
"query",
"layout"
],
"title": "PanelConfig"
},
"PanelLayout": {
"properties": {
"x": {
"type": "integer",
"minimum": 0.0,
"title": "X"
},
"y": {
"type": "integer",
"minimum": 0.0,
"title": "Y"
},
"w": {
"type": "integer",
"minimum": 1.0,
"title": "W"
},
"h": {
"type": "integer",
"minimum": 1.0,
"title": "H"
}
},
"type": "object",
"required": [
"x",
"y",
"w",
"h"
],
"title": "PanelLayout"
},
"PanelQuery-Input": {
"properties": {
"cube": {
"type": "string",
"title": "Cube",
"default": "check_trend"
},
"measures": {
"items": {
"type": "string"
},
"type": "array",
"title": "Measures"
},
"dimensions": {
"items": {
"type": "string"
},
"type": "array",
"title": "Dimensions"
},
"filters": {
"items": {
"anyOf": [
{
"$ref": "#/$defs/AnalyticsFilter"
},
{
"$ref": "#/$defs/AnalyticsFilterGroup-Input"
}
]
},
"type": "array",
"title": "Filters"
},
"segments": {
"items": {
"type": "string"
},
"type": "array",
"title": "Segments"
},
"time_dimensions": {
"items": {
"$ref": "#/$defs/TimeDimension"
},
"type": "array",
"title": "Time Dimensions"
},
"order": {
"additionalProperties": {
"type": "string",
"enum": [
"asc",
"desc"
]
},
"type": "object",
"title": "Order"
}
},
"type": "object",
"required": [
"measures"
],
"title": "PanelQuery",
"description": "Query template stored per panel.\n\nDoes NOT include project_id. ``time_range`` is injected by the frontend\nfrom the dashboard context and global time picker. Panels may include\noptional ``time_dimensions`` and ``order`` for Cube-style query shape."
},
"PanelTableConfig": {
"properties": {
"mode": {
"type": "string",
"enum": [
"flat",
"pivot"
],
"title": "Mode",
"default": "flat"
},
"row_dimensions": {
"items": {
"type": "string"
},
"type": "array",
"title": "Row Dimensions"
},
"column_dimension": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Column Dimension"
},
"value_measure": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Value Measure"
}
},
"type": "object",
"title": "PanelTableConfig"
},
"TimeDimension": {
"properties": {
"dimension": {
"type": "string",
"title": "Dimension"
},
"date_range": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array",
"maxItems": 2,
"minItems": 2
},
{
"type": "null"
}
],
"title": "Date Range"
},
"granularity": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Granularity"
}
},
"type": "object",
"required": [
"dimension"
],
"title": "TimeDimension"
},
"TimeRange": {
"type": "string",
"enum": [
"LAST_HOUR",
"LAST_24_HOURS",
"LAST_7_DAYS",
"LAST_14_DAYS",
"LAST_30_DAYS",
"LAST_90_DAYS"
],
"title": "TimeRange"
}
}
}
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/okareo-chat-session-create-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.