OpenAI APIs · Schema

OpenAI Chat Completion

Represents a chat completion response generated by the model, containing one or more message choices with associated metadata and token usage.

Artificial IntelligenceEmbeddingsImage GenerationLanguage ModelsSpeech

Properties

Name Type Description
id string A unique identifier for the chat completion
object string The object type, always chat.completion
created integer Unix timestamp of when the completion was created
model string The model used for the chat completion
choices array A list of chat completion choices
usage object
system_fingerprint string Fingerprint representing the backend configuration
View JSON Schema on GitHub

JSON Schema

openai-chat-completion-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.openai.com/schemas/openai/chat-completion.json",
  "title": "OpenAI Chat Completion",
  "description": "Represents a chat completion response generated by the model, containing one or more message choices with associated metadata and token usage.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "A unique identifier for the chat completion"
    },
    "object": {
      "type": "string",
      "const": "chat.completion",
      "description": "The object type, always chat.completion"
    },
    "created": {
      "type": "integer",
      "description": "Unix timestamp of when the completion was created"
    },
    "model": {
      "type": "string",
      "description": "The model used for the chat completion"
    },
    "choices": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "index": {
            "type": "integer",
            "description": "The index of the choice in the list"
          },
          "message": {
            "$ref": "#/$defs/ChatMessage"
          },
          "finish_reason": {
            "type": "string",
            "enum": ["stop", "length", "tool_calls", "content_filter"],
            "description": "The reason the model stopped generating tokens"
          }
        }
      },
      "description": "A list of chat completion choices"
    },
    "usage": {
      "$ref": "#/$defs/Usage"
    },
    "system_fingerprint": {
      "type": "string",
      "description": "Fingerprint representing the backend configuration"
    }
  },
  "required": ["id", "object", "created", "model", "choices"],
  "$defs": {
    "ChatMessage": {
      "type": "object",
      "properties": {
        "role": {
          "type": "string",
          "enum": ["system", "user", "assistant", "tool"],
          "description": "The role of the message author"
        },
        "content": {
          "description": "The contents of the message",
          "oneOf": [
            { "type": "string" },
            { "type": "null" }
          ]
        },
        "tool_calls": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/ToolCall"
          },
          "description": "Tool calls generated by the model"
        },
        "refusal": {
          "type": ["string", "null"],
          "description": "The refusal message if the model refused to respond"
        }
      },
      "required": ["role"]
    },
    "ToolCall": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "The ID of the tool call"
        },
        "type": {
          "type": "string",
          "const": "function"
        },
        "function": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string",
              "description": "The name of the function to call"
            },
            "arguments": {
              "type": "string",
              "description": "The arguments as a JSON string"
            }
          },
          "required": ["name", "arguments"]
        }
      },
      "required": ["id", "type", "function"]
    },
    "Usage": {
      "type": "object",
      "properties": {
        "prompt_tokens": {
          "type": "integer",
          "description": "Number of tokens in the prompt"
        },
        "completion_tokens": {
          "type": "integer",
          "description": "Number of tokens in the generated completion"
        },
        "total_tokens": {
          "type": "integer",
          "description": "Total number of tokens used"
        }
      },
      "required": ["prompt_tokens", "completion_tokens", "total_tokens"]
    }
  }
}