ChatGPT · Schema
ChatCompletionMessage
AgentsArtificial IntelligenceChatGPTEmbeddingsFine-TuningGPT-4GPT-5Language ModelOpenAIReal-Time
Properties
| Name | Type | Description |
|---|---|---|
| role | string | The role of the message author. |
| content | object | The contents of the message. Can be a string for text content or an array of content parts for multimodal input. |
| name | string | An optional name for the participant. Provides the model information to differentiate between participants of the same role. |
| tool_calls | array | The tool calls generated by the model, such as function calls. Present on assistant messages when the model calls tools. |
| tool_call_id | string | Tool call that this message is responding to. Required for tool role messages. |
| refusal | string | The refusal message generated by the model. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "#/components/schemas/ChatCompletionMessage",
"title": "ChatCompletionMessage",
"type": "object",
"required": [
"role"
],
"properties": {
"role": {
"type": "string",
"description": "The role of the message author.",
"enum": [
"system",
"user",
"assistant",
"tool"
],
"example": "system"
},
"content": {
"description": "The contents of the message. Can be a string for text content\nor an array of content parts for multimodal input.\n",
"oneOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"$ref": "#/components/schemas/ChatCompletionContentPart"
}
}
],
"nullable": true,
"example": "example_value"
},
"name": {
"type": "string",
"description": "An optional name for the participant. Provides the model\ninformation to differentiate between participants of the\nsame role.\n",
"example": "Example Title"
},
"tool_calls": {
"type": "array",
"description": "The tool calls generated by the model, such as function calls.\nPresent on assistant messages when the model calls tools.\n",
"items": {
"$ref": "#/components/schemas/ChatCompletionToolCall"
},
"example": []
},
"tool_call_id": {
"type": "string",
"description": "Tool call that this message is responding to. Required for\ntool role messages.\n",
"example": "500123"
},
"refusal": {
"type": "string",
"description": "The refusal message generated by the model.",
"nullable": true,
"example": "example_value"
}
}
}
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/chatgpt-chatcompletionmessage"
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.