JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/cm-com/main/json-schema/cm-com-conversation-item-schema.json",
"title": "ConversationItem",
"x-generated": "2026-10-13",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/cm-com-halo-analytics-v1-openapi.yml#/components/schemas/ConversationItem",
"oneOf": [
{
"type": "object",
"required": [
"User"
],
"properties": {
"User": {
"$ref": "#/$defs/UserConversationItem"
}
}
},
{
"type": "object",
"required": [
"Assistant"
],
"properties": {
"Assistant": {
"$ref": "#/$defs/AssistantConversationItem"
}
}
},
{
"type": "object",
"required": [
"Tool"
],
"properties": {
"Tool": {
"$ref": "#/$defs/ToolConversationItem"
}
}
},
{
"type": "object",
"required": [
"ToolInteraction"
],
"properties": {
"ToolInteraction": {
"$ref": "#/$defs/ToolInteractionConversationItem"
}
}
},
{
"type": "object",
"required": [
"Handover"
],
"properties": {
"Handover": {
"$ref": "#/$defs/HandoverConversationItem"
}
}
}
],
"$defs": {
"Actor": {
"oneOf": [
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"msc_user"
]
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"name": {
"type": [
"string",
"null"
]
},
"type": {
"type": "string",
"enum": [
"msc_agent"
]
}
}
},
{
"type": "object",
"required": [
"id",
"name",
"type"
],
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"teams"
]
}
}
}
],
"description": "Identifies the specific participant who authored a `User` or `Assistant`\nconversation item, for conversations with more than one distinct actor\non that role (e.g. MSC's end-user/agent distinction, or a Teams channel\nthread). Absent when the item's role alone identifies the author.\n\nSerializes as a tagged object (`{\"type\": \"msc_user\"}`, `{\"type\": \"teams\", ...}`,\netc). Deserialization additionally accepts the bare strings `\"End_User\"` /\n`\"Customer_Service_Agent\"` for `MscUser` / `MscAgent { name: None }` — MSC's\nlegacy `/instruction` and `/suggestion` endpoints have sent exactly those two\nstring values on the wire for years, so reading that shape can't be dropped.\nNothing produces it anymore; it's accepted, not emitted."
},
"AdditionalProperties": {
"oneOf": [
{
"type": "boolean"
},
{
"$ref": "#/$defs/JsonSchema"
}
]
},
"AgentAnswerResult": {
"type": "object",
"required": [
"temperature",
"top_p",
"tools",
"tool_choice_required",
"formatting_options",
"agent_prompt"
],
"properties": {
"agent_prompt": {
"type": "string"
},
"content": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/ContentPart"
}
},
"formatting_options": {
"type": "array",
"items": {
"$ref": "#/$defs/FormattingOption"
}
},
"model": {
"type": [
"string",
"null"
]
},
"request_type": {
"type": "string"
},
"temperature": {
"type": "number",
"format": "double"
},
"tool_choice_required": {
"type": "boolean"
},
"tool_uses": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/ToolUse"
}
},
"tools": {
"type": "array",
"items": {
"$ref": "#/$defs/ToolOption"
}
},
"top_p": {
"type": "number",
"format": "double"
},
"usage": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/UsageDetails"
}
]
}
}
},
"AgentHandoverDetails": {
"type": "object",
"description": "Agent handover details",
"required": [
"stop_status"
],
"properties": {
"from_agent_name": {
"type": [
"string",
"null"
]
},
"from_agent_version_id": {
"type": [
"integer",
"null"
],
"format": "int32"
},
"reasoning": {
"type": [
"string",
"null"
]
},
"stop_status": {
"$ref": "#/$defs/AgentInteractionState"
},
"to_agent_name": {
"type": [
"string",
"null"
]
},
"to_agent_version_id": {
"type": [
"integer",
"null"
],
"format": "int32"
}
}
},
"AgentInteractionState": {
"type": "string",
"description": "Agent interaction state",
"enum": [
"active",
"completed",
"breakout",
"handover"
]
},
"AgenticPromptInjectionResult": {
"type": "object",
"required": [
"input",
"staged_output",
"agent_instructions",
"is_safe",
"reasoning"
],
"properties": {
"agent_instructions": {
"type": "string"
},
"input": {
"type": "string"
},
"is_safe": {
"type": "boolean"
},
"reasoning": {
"type": "string"
},
"request_type": {
"type": "string"
},
"staged_output": {
"type": "string"
},
"usage": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/UsageDetails"
}
]
}
}
},
"AgenticUnparkPayload": {
"type": "object",
"description": "Unpark payload for agentic activity - user continues conversation via orchestrator",
"required": [
"query"
],
"properties": {
"query": {
"$ref": "#/$defs/UserResponse",
"description": "User's query to continue the conversation"
}
}
},
"AnswerStyleResult": {
"type": "object",
"required": [
"original_answer",
"language"
],
"properties": {
"language": {
"type": "string"
},
"original_answer": {
"type": "string"
},
"request_type": {
"type": "string"
},
"rewritten_answer": {
"type": [
"string",
"null"
]
},
"usage": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/UsageDetails"
}
]
}
}
},
"AssistantConversationItem": {
"type": "object",
"required": [
"content"
],
"properties": {
"actor": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/Actor"
}
]
},
"content": {
"type": "array",
"items": {
"$ref": "#/$defs/ContentPart"
}
},
"id": {
"type": [
"string",
"null"
]
},
"meta": {
"$ref": "#/$defs/AssistantConversationItemMeta"
},
"name": {
"type": [
"string",
"null"
]
},
"parent_tool_use_id": {
"type": [
"string",
"null"
]
},
"tool_uses": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/ToolUse"
}
}
}
},
"AssistantConversationItemMeta": {
"type": "object",
"properties": {
"answering_agent_id": {
"type": [
"integer",
"null"
],
"format": "int32"
},
"audio_interrupted_ms": {
"type": [
"integer",
"null"
],
"format": "int32",
"minimum": 0
},
"contexts": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/Contexts"
}
]
},
"conversation_ended_delay": {
"type": [
"integer",
"null"
],
"format": "int64"
},
"feedback_reasoning": {
"type": [
"string",
"null"
]
},
"generation_duration_ms": {
"type": [
"integer",
"null"
],
"format": "int32"
},
"initialized": {
"type": [
"string",
"null"
]
},
"language": {
"type": [
"string",
"null"
]
},
"match": {
"type": [
"boolean",
"null"
]
},
"model_results": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/ModelResult"
}
},
"origin": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/RequestOrigin"
}
]
},
"provider": {
"type": [
"string",
"null"
]
},
"rank": {
"type": [
"integer",
"null"
],
"format": "int32"
},
"reasoning": {
"type": [
"string",
"null"
]
},
"reasoning_summary": {
"type": [
"string",
"null"
],
"description": "A reasoning model's concise summary of its own chain-of-thought (e.g.\nOpenAI Responses API `reasoning.summary`), surfaced for observability.\nDeliberately separate from `reasoning`, which elsewhere in the\norchestrator/analytics stack means why the system took an action\n(fallback trigger, classification, guardrail) — conflating the two\nwould surface a model's internal thinking where a business-logic\nrationale is expected."
},
"tokens": {
"type": [
"integer",
"null"
],
"format": "int32"
},
"used_feedback": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/Feedback"
}
},
"used_knowledge": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/Knowledge"
}
},
"used_media": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/MediaContentPart"
}
}
}
},
"BasicPromptInjectionResult": {
"type": "object",
"required": [
"input",
"is_safe",
"reasoning"
],
"properties": {
"input": {
"type": "string"
},
"is_safe": {
"type": "boolean"
},
"reasoning": {
"type": "string"
},
"request_type": {
"type": "string"
},
"usage": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/UsageDetails"
}
]
}
}
},
"CandidateChunk": {
"type": "object",
"description": "Candidate chunk for RAG refiner/selector",
"required": [
"content"
],
"properties": {
"content": {
"type": "string"
},
"distance": {
"type": "number",
"format": "double"
},
"id": {
"type": "integer",
"format": "int64"
}
}
},
"ClassifyInstructionResult": {
"type": "object",
"required": [
"input",
"is_instruction"
],
"properties": {
"input": {
"type": "string"
},
"is_instruction": {
"type": "boolean"
},
"request_type": {
"type": "string"
},
"usage": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/UsageDetails"
}
]
}
}
},
"ContentPart": {
"oneOf": [
{
"type": "object",
"required": [
"text",
"type"
],
"properties": {
"text": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"text"
]
}
}
},
{
"type": "object",
"required": [
"text",
"type"
],
"properties": {
"redacted": {
"type": "boolean"
},
"signature": {
"type": [
"string",
"null"
]
},
"text": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"thinking"
]
}
}
},
{
"type": "object",
"required": [
"json_value",
"type"
],
"properties": {
"json_value": {
"$ref": "#/$defs/Value"
},
"type": {
"type": "string",
"enum": [
"json"
]
}
}
},
{
"allOf": [
{
"$ref": "#/$defs/MediaContentPart"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"media"
]
}
}
}
]
},
{
"type": "object",
"description": "OpenAI Responses API `phase: \"commentary\"` text: an intermediate\npreamble emitted before a tool call, distinct from the turn's final\nanswer. Plain assistant-authored text, not hidden reasoning like\n`Thinking`.",
"required": [
"text",
"type"
],
"properties": {
"text": {
"type": "string"
},
"type": {
"type": "string",
"enum": [
"commentary"
]
}
}
}
]
},
"ContextValue": {
"oneOf": [
{
"type": "object",
"required": [
"Plain"
],
"properties": {
"Plain": {
"type": "string"
}
}
},
{
"type": "object",
"description": "A sensitive string (masked in debug output).\n\n- `is_external: true` — the value came from an external source (e.g. user/API input)\n No decryption is needed.\n- `is_external: false` — the value is internally managed (e.g. a database default)\n and is stored encrypted. It must be decrypted before use.",
"required": [
"Secret"
],
"properties": {
"Secret": {
"type": "object",
"description": "A sensitive string (masked in debug output).\n\n- `is_external: true` — the value came from an external source (e.g. user/API input)\n No decryption is needed.\n- `is_external: false` — the value is internally managed (e.g. a database default)\n and is stored encrypted. It must be decrypted before use.",
"required": [
"value",
"is_external"
],
"properties": {
"is_external": {
"type": "boolean"
},
"value": {
"type": "string"
}
}
}
}
}
],
"description": "Value of context\n- Plain: A non-sensitive string (media and structured data stored as JSON strings)\n- Secret: A sensitive string (not printed in debug)"
},
"Contexts": {
"type": "object",
"description": "Type alias for a mapping from strings to context values",
"additionalProperties": {
"$ref": "#/$defs/ContextValue"
},
"propertyNames": {
"type": "string"
}
},
"ConversationSummaryPurpose": {
"type": "string",
"description": "Conversation summary purpose",
"enum": [
"handover",
"resolution",
"general"
]
},
"CustomGuardrailResult": {
"type": "object",
"required": [
"input",
"prompt",
"result"
],
"properties": {
"input": {
"type": "string"
},
"prompt": {
"type": "string"
},
"request_type": {
"type": "string"
},
"result": {
"$ref": "#/$defs/CustomGuardrailResultType"
},
"rewritten_input": {
"type": [
"string",
"null"
]
},
"usage": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/UsageDetails"
}
]
}
}
},
"CustomGuardrailResultType": {
"type": "string",
"description": "Custom guardrail result type",
"enum": [
"continue",
"stop",
"rewrite"
]
},
"DematerializedMediaContentPart": {
"type": "object",
"required": [
"mime_type",
"data_uri",
"data_hash"
],
"properties": {
"data_hash": {
"type": "string"
},
"data_uri": {
"$ref": "#/$defs/MediaDataUri"
},
"metadata": {
"$ref": "#/$defs/Value"
},
"mime_type": {
"type": "string"
},
"name": {
"type": [
"string",
"null"
]
}
}
},
"DetectedLanguage": {
"type": "object",
"description": "Detected language with probability",
"required": [
"language",
"language_iso",
"probability"
],
"properties": {
"language": {
"type": "string"
},
"language_iso": {
"type": "string"
},
"probability": {
"type": "number",
"format": "double"
}
}
},
"DoNotAnswerResult": {
"type": "object",
"required": [
"should_answer"
],
"properties": {
"request_type": {
"type": "string"
},
"should_answer": {
"type": "boolean"
},
"usage": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/UsageDetails"
}
]
}
}
},
"FallbackAnswerResult": {
"type": "object",
"required": [
"account_name",
"language",
"fallback_prompt",
"fallback_answer"
],
"properties": {
"account_name": {
"type": "string"
},
"fallback_answer": {
"type": "string"
},
"fallback_prompt": {
"type": "string"
},
"language": {
"type": "string"
},
"request_type": {
"type": "string"
},
"usage": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/UsageDetails"
}
]
}
}
},
"Feedback": {
"type": "object",
"required": [
"feedback_id",
"profile_id",
"account_id",
"conversation_id",
"interaction_id",
"original_answer",
"feedback",
"distance",
"feedback_reason"
],
"properties": {
"account_id": {
"type": "string",
"format": "uuid"
},
"conversation_id": {
"type": "string",
"format": "uuid"
},
"distance": {
"type": "number",
"format": "double"
},
"feedback": {
"type": "string"
},
"feedback_id": {
"$ref": "#/$defs/i64"
},
"feedback_reason": {
"$ref": "#/$defs/FeedbackReason"
},
"interaction_id": {
"type": "string",
"format": "uuid"
},
"original_answer": {
"type": "string"
},
"profile_id": {
"$ref": "#/$defs/i64"
}
}
},
"FeedbackReason": {
"type": "string",
"enum": [
"wrongly-formulated",
"incorrect",
"do-not-answer"
]
},
"FeedbackResult": {
"type": "object",
"required": [
"original_answer"
],
"properties": {
"original_answer": {
"type": "string"
},
"reasoning": {
"type": [
"string",
"null"
]
},
"request_type": {
"type": "string"
},
"rewritten_answer": {
"type": [
"string",
"null"
]
},
"usage": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/UsageDetails"
}
]
}
}
},
"FlowToolDefinition": {
"allOf": [
{
"$ref": "#/$defs/FunctionDefinition"
},
{
"type": "object",
"required": [
"tool_id"
],
"properties": {
"tool_id": {
"type": "integer",
"format": "int32"
}
}
}
],
"description": "Flow-based tool definition with a mandatory tool ID."
},
"FormattingOption": {
"type": "string",
"description": "Formatting option for agent answer",
"enum": [
"buttons",
"carousel",
"show_feedback"
]
},
"FunctionDefinition": {
"type": "object",
"description": "Common function shape: name, description, and parameters.\nRe-used by `ToolOption::Function` and `ToolOption::Routing`.",
"required": [
"name",
"description"
],
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string"
},
"parameters": {
"type": "array",
"items": {
"$ref": "#/$defs/FunctionOptionParameter"
}
}
}
},
"FunctionOptionParameter": {
"type": "object",
"required": [
"name",
"required",
"schema"
],
"properties": {
"name": {
"type": "string"
},
"required": {
"type": "boolean"
},
"schema": {
"$ref": "#/$defs/JsonSchema"
}
}
},
"FunctionUseArgument": {
"type": "object",
"required": [
"parameter",
"value"
],
"properties": {
"parameter": {
"type": "string"
},
"value": {
"$ref": "#/$defs/Value"
}
}
},
"HandoverConversationItem": {
"type": "object",
"required": [
"content"
],
"properties": {
"content": {
"type": "array",
"items": {
"$ref": "#/$defs/ContentPart"
}
},
"from_id": {
"type": [
"integer",
"null"
],
"format": "int32"
},
"from_type": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/HandoverEntityType"
}
]
},
"id": {
"type": [
"string",
"null"
]
},
"meta": {
"$ref": "#/$defs/HandoverConversationItemMeta"
},
"name": {
"type": [
"string",
"null"
]
},
"to_id": {
"type": [
"integer",
"null"
],
"format": "int32"
},
"to_type": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/HandoverEntityType"
}
]
}
}
},
"HandoverConversationItemMeta": {
"type": "object",
"properties": {
"contexts": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/Contexts"
}
]
},
"conversation_ended_delay": {
"type": [
"integer",
"null"
],
"format": "int64"
},
"handover_details": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/HandoverDetails"
}
]
},
"initialized": {
"type": [
"string",
"null"
]
},
"model_results": {
"type": [
"array",
"null"
],
"items": {
"$ref": "#/$defs/ModelResult"
}
},
"origin": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/$defs/RequestOrigin"
}
]
},
"rank": {
"type": [
"integer",
"null"
],
"format": "int32"
},
"tokens": {
"type": [
"integer",
"null"
],
"format": "int32"
}
}
},
"HandoverDetails": {
"oneOf": [
{
"allOf": [
{
"$ref": "#/$defs/AgentHandoverDetails"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"agent"
]
}
}
}
]
},
{
"allOf": [
{
"$ref": "#/$defs/TextRouterHandoverDetails"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"text_router_v2"
]
}
}
}
]
},
{
"allOf": [
{
"$ref": "#/$defs/TextMscHandoverDetails"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"text_msc"
]
}
}
}
]
},
{
"allOf": [
{
"$ref": "#/$defs/TextMarketplaceHandoverDetails"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"text_marketplace"
]
}
}
}
]
},
{
"allOf": [
{
"$ref": "#/$defs/TextLoggingHandoverDetails"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"text_logging"
]
}
}
}
]
},
{
"allOf": [
{
"$ref": "#/$defs/VoiceMscHandoverDetails"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"voice_msc"
]
}
}
}
]
},
{
"allOf": [
{
"$ref": "#/$defs/VoiceForwardHandoverDetails"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"voice_forward"
]
}
}
}
]
},
{
"allOf": [
{
"$ref": "#/$defs/VoiceTransferHandoverDetails"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"voice_transfer"
]
}
}
}
]
},
{
"allOf": [
{
"$ref": "#/$defs/VoiceCustomHandoverDetails"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"voice_custom"
]
}
}
}
]
},
{
"allOf": [
{
"$ref": "#/$defs/VoiceLoggingHandoverDetails"
},
{
"type": "object",
"required": [
"type"
],
"
# --- truncated at 32 KB (87 KB total) ---
# Full source: https://artifacts.apis.io/cm-com/json-schema/cm-com-conversation-item-schema.json
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/cm-com-conversation-item"
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.