> ## Documentation Index
> Fetch the complete documentation index at: https://io.net/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create Chat Completion

> Creates a model response for a given chat conversation.

<Note>
  Parameter support can differ depending on the model used to generate the response, particularly for newer reasoning models. Parameters that are only supported for reasoning models are noted below. For the current state of unsupported parameters in reasoning models, refer to the reasoning guide.
</Note>


## OpenAPI

````yaml /openapi/ai-models/create-chat-completion.json POST /api/v1/chat/completions
openapi: 3.1.0
info:
  title: IO Intelligence
  version: '1.0'
servers:
  - url: https://api.intelligence.io.solutions
security:
  - sec0: []
paths:
  /api/v1/chat/completions:
    post:
      tags:
        - OpenAI Compatible Developer API
      summary: Create Chat Completion
      operationId: create_chat_completion_v1_chat_completions_post
      parameters:
        - name: token
          in: header
          required: false
          schema:
            type: string
            description: JWT token
            title: Token
          description: JWT token
        - name: Authorization
          in: header
          required: false
          schema:
            type: string
            description: io.net provided API Key
            title: Authorization
          description: io.net provided API Key
        - name: x-api-key
          in: header
          required: false
          schema:
            type: string
            description: API key set by an SDK client
            title: X-Api-Key
          description: API key set by an SDK client
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChatCompletionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '404':
          description: Not found
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    ChatCompletionRequest:
      properties:
        messages:
          items:
            anyOf:
              - $ref: '#/components/schemas/ChatCompletionDeveloperMessageParam'
              - $ref: '#/components/schemas/ChatCompletionSystemMessageParam'
              - $ref: '#/components/schemas/ChatCompletionUserMessageParam'
              - $ref: '#/components/schemas/ChatCompletionAssistantMessageParam'
              - $ref: '#/components/schemas/ChatCompletionToolMessageParam'
              - $ref: '#/components/schemas/ChatCompletionFunctionMessageParam'
              - $ref: '#/components/schemas/CustomChatCompletionMessageParam'
          type: array
          minItems: 1
          title: Messages
          description: The conversation history
        model:
          type: string
          title: Model
        frequency_penalty:
          anyOf:
            - type: number
            - type: 'null'
          title: Frequency Penalty
          default: 0
        logit_bias:
          anyOf:
            - additionalProperties:
                type: number
              type: object
            - type: 'null'
          title: Logit Bias
        logprobs:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Logprobs
          default: false
        top_logprobs:
          anyOf:
            - type: integer
            - type: 'null'
          title: Top Logprobs
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          deprecated: true
        max_completion_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Completion Tokens
        'n':
          anyOf:
            - type: integer
              maximum: 20
              minimum: 1
            - type: 'null'
          title: 'N'
          default: 1
        presence_penalty:
          anyOf:
            - type: number
            - type: 'null'
          title: Presence Penalty
          default: 0
        response_format:
          anyOf:
            - $ref: '#/components/schemas/ResponseFormat'
            - type: 'null'
        seed:
          anyOf:
            - type: integer
            - type: 'null'
          title: Seed
        stop:
          anyOf:
            - type: string
            - items:
                type: string
              type: array
            - type: 'null'
          title: Stop
        stream:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Stream
          default: false
        stream_options:
          anyOf:
            - $ref: '#/components/schemas/StreamOptions'
            - type: 'null'
        temperature:
          anyOf:
            - type: number
            - type: 'null'
          title: Temperature
          default: 0.7
        top_p:
          anyOf:
            - type: number
            - type: 'null'
          title: Top P
          default: 1
        tools:
          anyOf:
            - items:
                $ref: '#/components/schemas/ChatCompletionToolsParam'
              type: array
            - type: 'null'
          title: Tools
        tool_choice:
          anyOf:
            - type: string
              const: none
            - type: string
              const: auto
            - type: string
              const: required
            - $ref: '#/components/schemas/ChatCompletionNamedToolChoiceParam'
            - type: 'null'
          title: Tool Choice
          default: none
        parallel_tool_calls:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Parallel Tool Calls
          default: false
        user:
          anyOf:
            - type: string
            - type: 'null'
          title: User
        best_of:
          anyOf:
            - type: integer
            - type: 'null'
          title: Best Of
        use_beam_search:
          type: boolean
          title: Use Beam Search
          default: false
        top_k:
          type: integer
          title: Top K
          default: -1
        min_p:
          type: number
          title: Min P
          default: 0
        repetition_penalty:
          type: number
          title: Repetition Penalty
          default: 1
        length_penalty:
          type: number
          title: Length Penalty
          default: 1
        stop_token_ids:
          anyOf:
            - items:
                type: integer
              type: array
            - type: 'null'
          title: Stop Token Ids
        include_stop_str_in_output:
          type: boolean
          title: Include Stop Str In Output
          default: false
        ignore_eos:
          type: boolean
          title: Ignore Eos
          default: false
        min_tokens:
          type: integer
          title: Min Tokens
          default: 0
        skip_special_tokens:
          type: boolean
          title: Skip Special Tokens
          default: true
        spaces_between_special_tokens:
          type: boolean
          title: Spaces Between Special Tokens
          default: true
        truncate_prompt_tokens:
          anyOf:
            - type: integer
              minimum: 1
            - type: 'null'
          title: Truncate Prompt Tokens
        prompt_logprobs:
          anyOf:
            - type: integer
            - type: 'null'
          title: Prompt Logprobs
        echo:
          type: boolean
          title: Echo
          description: >-
            If true, the new message will be prepended with the last message if
            they belong to the same role.
          default: false
        add_generation_prompt:
          type: boolean
          title: Add Generation Prompt
          description: >-
            If true, the generation prompt will be added to the chat template.
            This is a parameter used by chat template in tokenizer config of the
            model.
          default: true
        continue_final_message:
          type: boolean
          title: Continue Final Message
          description: >-
            If this is set, the chat will be formatted so that the final message
            in the chat is open-ended, without any EOS tokens. The model will
            continue this message rather than starting a new one. This allows
            you to "prefill" part of the model's response for it. Cannot be used
            at the same time as `add_generation_prompt`.
          default: false
        add_special_tokens:
          type: boolean
          title: Add Special Tokens
          description: >-
            If true, special tokens (e.g. BOS) will be added to the prompt on
            top of what is added by the chat template. For most models, the chat
            template takes care of adding the special tokens so this should be
            set to false (as is the default).
          default: false
        documents:
          anyOf:
            - items:
                additionalProperties:
                  type: string
                type: object
              type: array
            - type: 'null'
          title: Documents
          description: >-
            A list of dicts representing documents that will be accessible to
            the model if it is performing RAG (retrieval-augmented generation).
            If the template does not support RAG, this argument will have no
            effect. We recommend that each document should be a dict containing
            "title" and "text" keys.
        chat_template:
          anyOf:
            - type: string
            - type: 'null'
          title: Chat Template
          description: >-
            A Jinja template to use for this conversion. As of transformers
            v4.44, default chat template is no longer allowed, so you must
            provide a chat template if the tokenizer does not define one.
        chat_template_kwargs:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Chat Template Kwargs
          description: >-
            Additional kwargs to pass to the template renderer. Will be
            accessible by the chat template.
        guided_json:
          anyOf:
            - type: string
            - additionalProperties: true
              type: object
            - $ref: '#/components/schemas/BaseModel'
            - type: 'null'
          title: Guided Json
          description: If specified, the output will follow the JSON schema.
        guided_regex:
          anyOf:
            - type: string
            - type: 'null'
          title: Guided Regex
          description: If specified, the output will follow the regex pattern.
        guided_choice:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Guided Choice
          description: If specified, the output will be exactly one of the choices.
        guided_grammar:
          anyOf:
            - type: string
            - type: 'null'
          title: Guided Grammar
          description: If specified, the output will follow the context free grammar.
        guided_decoding_backend:
          anyOf:
            - type: string
            - type: 'null'
          title: Guided Decoding Backend
          description: >-
            If specified, will override the default guided decoding backend of
            the server for this specific request. If set, must be either
            'outlines' / 'lm-format-enforcer'
        guided_whitespace_pattern:
          anyOf:
            - type: string
            - type: 'null'
          title: Guided Whitespace Pattern
          description: >-
            If specified, will override the default whitespace pattern for
            guided json decoding.
        priority:
          type: integer
          title: Priority
          description: >-
            The priority of the request (lower means earlier handling; default:
            0). Any priority other than 0 will raise an error if the served
            model does not use priority scheduling.
          default: 0
        request_id:
          type: string
          title: Request Id
          description: >-
            The request_id related to this request. If the caller does not set
            it, a random_uuid will be generated. This id is used through out the
            inference process and return in response.
      additionalProperties: true
      type: object
      required:
        - messages
        - model
      title: ChatCompletionRequest
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ChatCompletionDeveloperMessageParam:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                $ref: '#/components/schemas/ChatCompletionContentPartTextParam'
              type: array
          title: Content
        role:
          type: string
          const: developer
          title: Role
        name:
          type: string
          title: Name
      type: object
      required:
        - content
        - role
      title: ChatCompletionDeveloperMessageParam
    ChatCompletionSystemMessageParam:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                $ref: '#/components/schemas/ChatCompletionContentPartTextParam'
              type: array
          title: Content
        role:
          type: string
          const: system
          title: Role
        name:
          type: string
          title: Name
      type: object
      required:
        - content
        - role
      title: ChatCompletionSystemMessageParam
    ChatCompletionUserMessageParam:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - $ref: '#/components/schemas/ChatCompletionContentPartTextParam'
                  - $ref: '#/components/schemas/ChatCompletionContentPartImageParam'
                  - $ref: >-
                      #/components/schemas/ChatCompletionContentPartInputAudioParam
                  - $ref: '#/components/schemas/File'
              type: array
          title: Content
        role:
          type: string
          const: user
          title: Role
        name:
          type: string
          title: Name
      type: object
      required:
        - content
        - role
      title: ChatCompletionUserMessageParam
    ChatCompletionAssistantMessageParam:
      properties:
        role:
          type: string
          const: assistant
          title: Role
        audio:
          anyOf:
            - $ref: '#/components/schemas/Audio'
            - type: 'null'
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - $ref: '#/components/schemas/ChatCompletionContentPartTextParam'
                  - $ref: '#/components/schemas/ChatCompletionContentPartRefusalParam'
              type: array
            - type: 'null'
          title: Content
        function_call:
          anyOf:
            - $ref: '#/components/schemas/FunctionCall'
            - type: 'null'
        name:
          type: string
          title: Name
        refusal:
          anyOf:
            - type: string
            - type: 'null'
          title: Refusal
        tool_calls:
          items:
            anyOf:
              - $ref: >-
                  #/components/schemas/ChatCompletionMessageFunctionToolCallParam
              - $ref: '#/components/schemas/ChatCompletionMessageCustomToolCallParam'
          type: array
          title: Tool Calls
      type: object
      required:
        - role
      title: ChatCompletionAssistantMessageParam
    ChatCompletionToolMessageParam:
      properties:
        content:
          anyOf:
            - type: string
            - items:
                $ref: '#/components/schemas/ChatCompletionContentPartTextParam'
              type: array
          title: Content
        role:
          type: string
          const: tool
          title: Role
        tool_call_id:
          type: string
          title: Tool Call Id
      type: object
      required:
        - content
        - role
        - tool_call_id
      title: ChatCompletionToolMessageParam
    ChatCompletionFunctionMessageParam:
      properties:
        content:
          anyOf:
            - type: string
            - type: 'null'
          title: Content
        name:
          type: string
          title: Name
        role:
          type: string
          const: function
          title: Role
      type: object
      required:
        - content
        - name
        - role
      title: ChatCompletionFunctionMessageParam
    CustomChatCompletionMessageParam:
      properties:
        role:
          type: string
          title: Role
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - $ref: '#/components/schemas/ChatCompletionContentPartTextParam'
                  - $ref: '#/components/schemas/ChatCompletionContentPartImageParam'
                  - $ref: >-
                      #/components/schemas/ChatCompletionContentPartInputAudioParam
                  - $ref: '#/components/schemas/File'
                  - $ref: '#/components/schemas/ChatCompletionContentPartAudioParam'
                  - $ref: '#/components/schemas/ChatCompletionContentPartVideoParam'
                  - $ref: '#/components/schemas/ChatCompletionContentPartRefusalParam'
                  - $ref: >-
                      #/components/schemas/CustomChatCompletionContentSimpleImageParam
                  - $ref: >-
                      #/components/schemas/CustomChatCompletionContentSimpleAudioParam
                  - $ref: >-
                      #/components/schemas/CustomChatCompletionContentSimpleVideoParam
                  - type: string
              type: array
          title: Content
        name:
          type: string
          title: Name
        tool_call_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Tool Call Id
        tool_calls:
          anyOf:
            - items:
                $ref: >-
                  #/components/schemas/ChatCompletionMessageFunctionToolCallParam
              type: array
            - type: 'null'
          title: Tool Calls
      type: object
      required:
        - role
      title: CustomChatCompletionMessageParam
      description: Enables custom roles in the Chat Completion API.
    ResponseFormat:
      properties:
        type:
          type: string
          enum:
            - text
            - json_object
            - json_schema
          title: Type
        json_schema:
          anyOf:
            - $ref: '#/components/schemas/JsonSchemaResponseFormat'
            - type: 'null'
      additionalProperties: true
      type: object
      required:
        - type
      title: ResponseFormat
    StreamOptions:
      properties:
        include_usage:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Include Usage
          default: true
        continuous_usage_stats:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Continuous Usage Stats
          default: false
      additionalProperties: true
      type: object
      title: StreamOptions
    ChatCompletionToolsParam:
      properties:
        type:
          type: string
          const: function
          title: Type
          default: function
        function:
          $ref: '#/components/schemas/FunctionDefinition'
      additionalProperties: true
      type: object
      required:
        - function
      title: ChatCompletionToolsParam
    ChatCompletionNamedToolChoiceParam:
      properties:
        function:
          $ref: '#/components/schemas/ChatCompletionNamedFunction'
        type:
          type: string
          const: function
          title: Type
          default: function
      additionalProperties: true
      type: object
      required:
        - function
      title: ChatCompletionNamedToolChoiceParam
    BaseModel:
      properties: {}
      type: object
      title: BaseModel
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    ChatCompletionContentPartTextParam:
      properties:
        text:
          type: string
          title: Text
        type:
          type: string
          const: text
          title: Type
      type: object
      required:
        - text
        - type
      title: ChatCompletionContentPartTextParam
    ChatCompletionContentPartImageParam:
      properties:
        image_url:
          $ref: '#/components/schemas/ImageURL'
        type:
          type: string
          const: image_url
          title: Type
      type: object
      required:
        - image_url
        - type
      title: ChatCompletionContentPartImageParam
    ChatCompletionContentPartInputAudioParam:
      properties:
        input_audio:
          $ref: '#/components/schemas/InputAudio'
        type:
          type: string
          const: input_audio
          title: Type
      type: object
      required:
        - input_audio
        - type
      title: ChatCompletionContentPartInputAudioParam
    File:
      properties:
        file:
          $ref: '#/components/schemas/FileFile'
        type:
          type: string
          const: file
          title: Type
      type: object
      required:
        - file
        - type
      title: File
    Audio:
      properties:
        id:
          type: string
          title: Id
      type: object
      required:
        - id
      title: Audio
    ChatCompletionContentPartRefusalParam:
      properties:
        refusal:
          type: string
          title: Refusal
        type:
          type: string
          const: refusal
          title: Type
      type: object
      required:
        - refusal
        - type
      title: ChatCompletionContentPartRefusalParam
    FunctionCall:
      properties:
        arguments:
          type: string
          title: Arguments
        name:
          type: string
          title: Name
      type: object
      required:
        - arguments
        - name
      title: FunctionCall
    ChatCompletionMessageFunctionToolCallParam:
      properties:
        id:
          type: string
          title: Id
        function:
          $ref: '#/components/schemas/Function'
        type:
          type: string
          const: function
          title: Type
      type: object
      required:
        - id
        - function
        - type
      title: ChatCompletionMessageFunctionToolCallParam
    ChatCompletionMessageCustomToolCallParam:
      properties:
        id:
          type: string
          title: Id
        custom:
          $ref: '#/components/schemas/Custom'
        type:
          type: string
          const: custom
          title: Type
      type: object
      required:
        - id
        - custom
        - type
      title: ChatCompletionMessageCustomToolCallParam
    ChatCompletionContentPartAudioParam:
      properties:
        audio_url:
          $ref: '#/components/schemas/AudioURL'
        type:
          type: string
          const: audio_url
          title: Type
      type: object
      required:
        - audio_url
        - type
      title: ChatCompletionContentPartAudioParam
    ChatCompletionContentPartVideoParam:
      properties:
        video_url:
          $ref: '#/components/schemas/VideoURL'
        type:
          type: string
          const: video_url
          title: Type
      type: object
      required:
        - video_url
        - type
      title: ChatCompletionContentPartVideoParam
    CustomChatCompletionContentSimpleImageParam:
      properties:
        image_url:
          type: string
          title: Image Url
      type: object
      required:
        - image_url
      title: CustomChatCompletionContentSimpleImageParam
      description: |-
        A simpler version of the param that only accepts a plain image_url.
        This is supported by OpenAI API, although it is not documented.

        Example:
        {
            "image_url": "https://example.com/image.jpg"
        }
    CustomChatCompletionContentSimpleAudioParam:
      properties:
        audio_url:
          type: string
          title: Audio Url
      type: object
      required:
        - audio_url
      title: CustomChatCompletionContentSimpleAudioParam
      description: |-
        A simpler version of the param that only accepts a plain audio_url.

        Example:
        {
            "audio_url": "https://example.com/audio.mp3"
        }
    CustomChatCompletionContentSimpleVideoParam:
      properties:
        video_url:
          type: string
          title: Video Url
      type: object
      required:
        - video_url
      title: CustomChatCompletionContentSimpleVideoParam
      description: |-
        A simpler version of the param that only accepts a plain audio_url.

        Example:
        {
            "video_url": "https://example.com/video.mp4"
        }
    JsonSchemaResponseFormat:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Schema
        strict:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Strict
      additionalProperties: true
      type: object
      required:
        - name
      title: JsonSchemaResponseFormat
    FunctionDefinition:
      properties:
        name:
          type: string
          title: Name
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        parameters:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Parameters
      additionalProperties: true
      type: object
      required:
        - name
      title: FunctionDefinition
    ChatCompletionNamedFunction:
      properties:
        name:
          type: string
          title: Name
      additionalProperties: true
      type: object
      required:
        - name
      title: ChatCompletionNamedFunction
    ImageURL:
      properties:
        url:
          type: string
          title: Url
        detail:
          type: string
          enum:
            - auto
            - low
            - high
          title: Detail
      type: object
      required:
        - url
      title: ImageURL
    InputAudio:
      properties:
        data:
          type: string
          title: Data
        format:
          type: string
          enum:
            - wav
            - mp3
          title: Format
      type: object
      required:
        - data
        - format
      title: InputAudio
    FileFile:
      properties:
        file_data:
          type: string
          title: File Data
        file_id:
          type: string
          title: File Id
        filename:
          type: string
          title: Filename
      type: object
      title: FileFile
    Function:
      properties:
        arguments:
          type: string
          title: Arguments
        name:
          type: string
          title: Name
      type: object
      required:
        - arguments
        - name
      title: Function
    Custom:
      properties:
        input:
          type: string
          title: Input
        name:
          type: string
          title: Name
      type: object
      required:
        - input
        - name
      title: Custom
    AudioURL:
      properties:
        url:
          type: string
          title: Url
      type: object
      required:
        - url
      title: AudioURL
    VideoURL:
      properties:
        url:
          type: string
          title: Url
      type: object
      required:
        - url
      title: VideoURL
  securitySchemes:
    sec0:
      type: oauth2
      flows: {}

````