ChatResponse

Response structure for Chat gRPC method

AI PlatformConsultingDigital TransformationIT ServicesMulti-AgentNeuro AIFortune 500

Properties

Name Type Description
request object
response object
View JSON Schema on GitHub

JSON Schema

cognizant-technology-chat-response-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/cognizant-technology/json-schema/cognizant-technology-chat-response-schema.json",
  "title": "ChatResponse",
  "description": "Response structure for Chat gRPC method",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/cognizant-technology-agentservice-api-openapi.yml#/components/schemas/ChatResponse",
  "type": "object",
  "properties": {
    "request": {
      "$ref": "#/$defs/ChatRequest"
    },
    "response": {
      "$ref": "#/$defs/ChatMessage"
    }
  },
  "$defs": {
    "ChatContext": {
      "type": "object",
      "properties": {
        "chat_histories": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ChatHistory"
          },
          "description": "A potentially full list of chat histories that pertain to the node. These will typically come in the last message of any particular agent's chat stream.   Do not expect any or all internal agents will broadcast their chat history, but you can at least expect the front-man to broadcast his."
        }
      },
      "description": "Message for holding the state of play for any chat session such that should the client send this back to the service, a different server knows exactly where to pick up where the previous conversation left off."
    },
    "ChatFilter": {
      "type": "object",
      "properties": {
        "chat_filter_type": {
          "enum": [
            "UNKNOWN",
            "MINIMAL",
            "MAXIMAL"
          ],
          "type": "string",
          "description": "For now allow for an enum to describe how we want chat messages streamed. In the future the description of this server-side filter might offer more fine-grained control (hence an encapsulating structure).",
          "format": "enum"
        }
      },
      "description": "Allows for controlling the messages that get streamed via StreamingChat."
    },
    "ChatHistory": {
      "type": "object",
      "properties": {
        "origin": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Origin"
          }
        },
        "messages": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ChatMessage"
          }
        }
      },
      "description": "A structure for storing chat history for a given node in the graph described by the origin."
    },
    "ChatMessage": {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "UNKNOWN",
            "SYSTEM",
            "HUMAN",
            "AI",
            "AGENT",
            "AGENT_FRAMEWORK",
            "AGENT_TOOL_RESULT",
            "AGENT_PROGRESS"
          ],
          "type": "string",
          "description": "The type of chat message",
          "format": "enum"
        },
        "text": {
          "type": "string",
          "description": "String contents of any chat message"
        },
        "mime_data": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/MimeData"
          },
          "description": "Optional bytes for any non-text media referenced by this message. For some chat sources, the string text field might also be populated as a reference for how the data was created.  If this happens, then it should be safe to assume that the text is enough to represent the message in any history carried forward. As of 1/13/25 this is a forward-looking, experimental field not likely to be used in regular operation until we can get proper plumbing of such data in place."
        },
        "origin": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Origin"
          },
          "description": "Optional list of Origin structures (see above) describing the origin of the chat message. The intent here is to be able to distiguish responses from nested agents. For each top-level agent/front-man (perhaps on another server) that is called, an extra structure is added to the list."
        },
        "structure": {
          "type": "object",
          "description": "Optional structure for a message whose contents are parsed JSON. The idea is to have the server side do the parsing when requested by the agent spec. As of 1/30/25 this is a forward-looking, experimental field not likely to be used in regular operation until we can get proper plumbing of such data in place."
        },
        "chat_context": {
          "$ref": "#/$defs/ChatContext"
        },
        "tool_result_origin": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Origin"
          },
          "description": "Optional list of Origin structures (see above) describing the origin of a tool result."
        },
        "sly_data": {
          "type": "object",
          "description": "This is an entirely optional map whose keys refer to data that is better left out of the LLM chat stream.  The keys themselves might appear in the chat stream, referring to the data, but the data itself does not. The intent is for the key references to be passed to tools, which then grab the values by programmatic means, but these tools might also have private data to send back to the client as well."
        },
        "content_blocks": {
          "$ref": "#/$defs/ContentBlocks"
        }
      },
      "description": "Structure describing a single chat message. This could be a single response, or a list of these might comprise a chat history."
    },
    "ChatRequest": {
      "type": "object",
      "properties": {
        "sly_data": {
          "type": "object",
          "description": "This is an entirely optional map whose keys refer to data that is better left out of the LLM chat stream.  The keys themselves might appear in the chat stream, referring to the data, but the data itself does not. The intent is for the key references to be passed to tools, which then grab the values by programmatic means."
        },
        "user_message": {
          "$ref": "#/$defs/ChatMessage"
        },
        "chat_context": {
          "$ref": "#/$defs/ChatContext"
        },
        "chat_filter": {
          "$ref": "#/$defs/ChatFilter"
        }
      },
      "description": "Request structure for Chat gRPC method"
    },
    "ContentBlocks": {
      "type": "object",
      "properties": {
        "format": {
          "type": "string",
          "description": "Identifies the schema of the blocks, for example \"langchain_v1\". Clients that do not recognize a format should ignore the blocks and fall back to the text field of the ChatMessage. The server does the same: a message with blocks but no format is treated as an unknown format, its blocks are ignored and only the text is used."
        },
        "blocks": {
          "type": "array",
          "items": {
            "type": "object"
          },
          "description": "The blocks themselves: text, reasoning or thinking summaries, images, audio, files and provider-specific extras such as signatures."
        }
      },
      "description": "Optional structured content of a ChatMessage, tagged with the schema its blocks follow so the format can evolve without breaking clients."
    },
    "MimeData": {
      "type": "object",
      "properties": {
        "mime_type": {
          "type": "string",
          "description": "MIME type of the image data"
        },
        "mime_bytes": {
          "type": "string",
          "description": "Raw bytes of the image",
          "format": "byte"
        }
      },
      "description": "A Message identifying image data"
    },
    "Origin": {
      "type": "object",
      "properties": {
        "tool": {
          "type": "string",
          "description": "String name of the originating tool, as per the agent spec."
        },
        "instantiation_index": {
          "type": "integer",
          "description": "Some tools can be called more than once by one or more different paths. Allow for an instantiation index to distinguish these in the chat stream. Index counting starts at 0.",
          "format": "int32"
        }
      }
    }
  }
}

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.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/cognizant-technology-chat-response"
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.