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

# Generate Chat Completions

> Generate conversational responses with streaming support and multimodal capabilities.


This endpoint generates chat completions using language models, supporting both text-only conversations and vision inputs. Includes support for function calling, streaming responses, and automatic conversation tracking.


**Request Body:**

- `model`: Model ID (required) - Base models (e.g., `nugen-flash-instruct`) or your aligned model ID (e.g., `model_customer_support_alignment_01kjy6s8n9r8cnx`)
- `messages`: Array of message objects (required, minimum 1), each containing:
  - `role`: Message role (`system`, `user`, or `assistant`)
  - `content`: Text string OR array of content objects (for multimodal)
    - Text: `{"type": "text", "text": "your message"}`
    - Image URL: `{"type": "image_url", "image_url": {"url": "https://..."}}`
    - Image Base64: `{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}`
  - `name` (optional): Author name (a-z, A-Z, 0-9, underscores, max 64 chars)
- `max_tokens` (optional): Maximum tokens to generate in completion
- `prompt_truncate_len` (optional): Size to truncate chat prompts (default: 1500)
- `temperature` (optional): Sampling temperature between 0 and 2 (default: 1)
- `stream` (optional): Enable streaming responses (default: `false`)
- `tools` (optional): List of tools/functions available to the model
- `tool_choice` (optional): Tool selection mode (`auto`, `none`, or specific tool)
- `top_p` (optional): Nucleus sampling parameter
- `top_k` (optional): Top-k sampling parameter
- `n` (optional): Number of completions to generate (default: 1)
- `reasoning` (optional): Reasoning configuration object with:
  - `effort`: Reasoning effort level (`xhigh`, `high`, `medium`, `low`, `minimal`, `none`)
  - `max_tokens`: Token limit for reasoning
  - `exclude`: Set true to exclude reasoning tokens from response
  - `enabled`: Enable reasoning with default parameters


**Optional Headers:**

- `X-Session-ID`: Session identifier for multi-turn conversation tracking


**Returns:**

**Non-streaming mode** -
- `id`: Unique identifier for the response
- `object`: Object type (always `chat.completion`)
- `created`: Unix timestamp when completion was created
- `model`: Model used for chat completion
- `choices`: List of completion choices, each containing:
  - `index`: Index of the choice
  - `message`: Response message with:
    - `role`: Role of the author (always `assistant`)
    - `content`: Generated response text
    - `tool_calls` (optional): Tool calls made by the model (for function calling)
  - `finish_reason`: Reason model stopped (`stop` for natural stop, `length` if max tokens reached)
- `usage`: Token usage statistics:
  - `prompt_tokens`: Number of tokens in the prompt
  - `completion_tokens`: Number of tokens generated
  - `total_tokens`: Total tokens used (prompt + completion)
- `confidence_score` (optional): Confidence score from Domain-Aligned AI models

**Streaming mode** - `ChatCompletionChunk` stream with:
- `id`: Unique identifier
- `created`: Timestamp
- `model`: Model ID
- `choices`: List of chunk choices with:
  - `index`: Choice index
  - `delta`: Delta content with `role` and `content`
  - `finish_reason`: Reason for stopping (only in final chunk)
- `usage` (optional): Only present in final chunk


**Example Request (Text Chat):**

```json
POST /api/v3/inference/chat/completions
Headers: {"Authorization": "Bearer <api_key>"}

{
  "model": "nugen-flash-instruct",
  "messages": [
    {
      "role": "system",
      "content": "You are a helpful assistant."
    },
    {
      "role": "user",
      "content": "What is the capital of France?"
    }
  ],
  "max_tokens": 500,
  "temperature": 0.7
}
```


**Example Response (Text Chat):**

```json
{
  "id": "nugen-abc123",
  "object": "chat.completion",
  "created": 1704123600.0,
  "model": "nugen-flash-instruct",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "The capital of France is Paris."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 20,
    "completion_tokens": 8,
    "total_tokens": 28
  },
  "confidence_score": 89.5454
}
```


**Example Request (Using Domain-Aligned Model):**

```json
POST /api/v3/inference/chat/completions
Headers: {"Authorization": "Bearer <api_key>"}

{
  "model": "aligned-model-01kmqm4nrn9fw6r",
  "messages": [
    {
      "role": "user",
      "content": "How do I return a product?"
    }
  ],
  "max_tokens": 500,
  "temperature": 0.7
}
```


**Example Response (Domain-Aligned Model):**

```json
{
  "id": "nugen-abc456",
  "object": "chat.completion",
  "created": 1704123700.0,
  "model": "model_customer_support_alignment_01kjy6s8n9r8cnx",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "To return a product, please visit our returns portal within 30 days of purchase with your order number and receipt."
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 15,
    "completion_tokens": 25,
    "total_tokens": 40
  },
  "confidence_score": 95.8
}
```

**How to get your aligned model ID:**
1. Create an alignment project using `POST /api/v3/alignment-project/create`
2. Poll `GET /api/v3/alignment-project/status/{id}` until status is `COMPLETED`
3. Use the `model_id` field from the response (e.g., `"model_customer_support_alignment_01kjy6s8n9r8cnx"`)
4. Deploy the model using `POST /api/v3/models/deploy-model/{model_id}` (optional - for evaluation/production use)
5. Use the `model_id` in the `model` parameter for inference requests


**Example Request (Vision - Image URL):**

```json
POST /api/v3/inference/chat/completions
Headers: {"Authorization": "Bearer <api_key>"}

{
  "model": "aligned-model-01kmqm4nrn9fw6r",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "Describe what you see in this image."
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "https://example.com/image.jpg"
          }
        }
      ]
    }
  ],
  "max_tokens": 1000
}
```


**Example Request (Vision - Base64 Image):**

```json
POST /api/v3/inference/chat/completions
Headers: {"Authorization": "Bearer <api_key>"}

{
  "model": "aligned-model-01kmqm4nrn9fw6r",
  "messages": [
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "What's in this image?"
        },
        {
          "type": "image_url",
          "image_url": {
            "url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD..."
          }
        }
      ]
    }
  ]
}
```


**Example Request (Function Calling):**

```json
POST /api/v3/inference/chat/completions
Headers: {"Authorization": "Bearer <api_key>"}

{
  "model": "aligned-model-01kmqm4nrn9fw6r",
  "messages": [
    {"role": "user", "content": "What's the weather in Boston?"}
  ],
  "tools": [
    {
      "type": "function",
      "function": {
        "name": "get_weather",
        "description": "Get current weather",
        "parameters": {
          "type": "object",
          "properties": {
            "location": {"type": "string"}
          }
        }
      }
    }
  ],
  "tool_choice": "auto"
}
```


**Example Request (Streaming):**

```json
POST /api/v3/inference/chat/completions
Headers: {"Authorization": "Bearer <api_key>"}

{
  "model": "aligned-model-01kmqm4nrn9fw6r",
  "messages": [{"role": "user", "content": "Tell me a story"}],
  "stream": true
}
```


**Example Response (Streaming):**

```
data: {"id":"nugen-abc123","created":1704123600.0,"model":"nugen-flash-instruct","choices":[{"index":0,"delta":{"role":"assistant","content":"Once"},"finish_reason":null}]}

data: {"id":"nugen-abc123","created":1704123600.0,"model":"nugen-flash-instruct","choices":[{"index":0,"delta":{"content":" upon"},"finish_reason":null}]}

data: {"id":"nugen-abc123","created":1704123600.0,"model":"nugen-flash-instruct","choices":[{"index":0,"delta":{"content":" a time"},"finish_reason":"stop"}],"usage":{"prompt_tokens":10,"completion_tokens":5,"total_tokens":15}}

data: [DONE]
```


**Notes:**

- Supports both text-only and vision/multimodal inputs depending on the model
- **Using Domain-Aligned Models**: Pass the `model_id` from your completed alignment project as the `model` parameter. Get your aligned model IDs from `GET /api/v3/alignment-project/status/{id}` or `GET /api/v3/models/aligned`
- Function calling enables models to invoke external tools via `tools` and `tool_choice` parameters
- `confidence_score` is only available for Domain-Aligned AI models and indicates model certainty (0-100)
- For streaming, usage statistics are included only in the final chunk
- Conversations are automatically saved to S3 if enabled in user settings
- Include `X-Session-ID` header for multi-turn conversation tracking
- Use `prompt_truncate_len` to control context window usage for long conversations
- The `reasoning` parameter enables advanced reasoning capabilities for supported models



## OpenAPI

````yaml https://api.nugen.in/openapi-public.json post /api/v3/inference/chat/completions
openapi: 3.1.0
info:
  title: Nugen Intelligence API
  description: 'Nugen Intelligence : Powering Specialized Intelligence At Scale'
  version: 25.4.20
servers: []
security: []
paths:
  /api/v3/inference/chat/completions:
    post:
      tags:
        - Inference
      summary: Generate Chat Completions
      description: >-
        Generate conversational responses with streaming support and multimodal
        capabilities.



        This endpoint generates chat completions using language models,
        supporting both text-only conversations and vision inputs. Includes
        support for function calling, streaming responses, and automatic
        conversation tracking.



        **Request Body:**


        - `model`: Model ID (required) - Base models (e.g.,
        `nugen-flash-instruct`) or your aligned model ID (e.g.,
        `model_customer_support_alignment_01kjy6s8n9r8cnx`)

        - `messages`: Array of message objects (required, minimum 1), each
        containing:
          - `role`: Message role (`system`, `user`, or `assistant`)
          - `content`: Text string OR array of content objects (for multimodal)
            - Text: `{"type": "text", "text": "your message"}`
            - Image URL: `{"type": "image_url", "image_url": {"url": "https://..."}}`
            - Image Base64: `{"type": "image_url", "image_url": {"url": "data:image/jpeg;base64,..."}}`
          - `name` (optional): Author name (a-z, A-Z, 0-9, underscores, max 64 chars)
        - `max_tokens` (optional): Maximum tokens to generate in completion

        - `prompt_truncate_len` (optional): Size to truncate chat prompts
        (default: 1500)

        - `temperature` (optional): Sampling temperature between 0 and 2
        (default: 1)

        - `stream` (optional): Enable streaming responses (default: `false`)

        - `tools` (optional): List of tools/functions available to the model

        - `tool_choice` (optional): Tool selection mode (`auto`, `none`, or
        specific tool)

        - `top_p` (optional): Nucleus sampling parameter

        - `top_k` (optional): Top-k sampling parameter

        - `n` (optional): Number of completions to generate (default: 1)

        - `reasoning` (optional): Reasoning configuration object with:
          - `effort`: Reasoning effort level (`xhigh`, `high`, `medium`, `low`, `minimal`, `none`)
          - `max_tokens`: Token limit for reasoning
          - `exclude`: Set true to exclude reasoning tokens from response
          - `enabled`: Enable reasoning with default parameters


        **Optional Headers:**


        - `X-Session-ID`: Session identifier for multi-turn conversation
        tracking



        **Returns:**


        **Non-streaming mode** -

        - `id`: Unique identifier for the response

        - `object`: Object type (always `chat.completion`)

        - `created`: Unix timestamp when completion was created

        - `model`: Model used for chat completion

        - `choices`: List of completion choices, each containing:
          - `index`: Index of the choice
          - `message`: Response message with:
            - `role`: Role of the author (always `assistant`)
            - `content`: Generated response text
            - `tool_calls` (optional): Tool calls made by the model (for function calling)
          - `finish_reason`: Reason model stopped (`stop` for natural stop, `length` if max tokens reached)
        - `usage`: Token usage statistics:
          - `prompt_tokens`: Number of tokens in the prompt
          - `completion_tokens`: Number of tokens generated
          - `total_tokens`: Total tokens used (prompt + completion)
        - `confidence_score` (optional): Confidence score from Domain-Aligned AI
        models


        **Streaming mode** - `ChatCompletionChunk` stream with:

        - `id`: Unique identifier

        - `created`: Timestamp

        - `model`: Model ID

        - `choices`: List of chunk choices with:
          - `index`: Choice index
          - `delta`: Delta content with `role` and `content`
          - `finish_reason`: Reason for stopping (only in final chunk)
        - `usage` (optional): Only present in final chunk



        **Example Request (Text Chat):**


        ```json

        POST /api/v3/inference/chat/completions

        Headers: {"Authorization": "Bearer <api_key>"}


        {
          "model": "nugen-flash-instruct",
          "messages": [
            {
              "role": "system",
              "content": "You are a helpful assistant."
            },
            {
              "role": "user",
              "content": "What is the capital of France?"
            }
          ],
          "max_tokens": 500,
          "temperature": 0.7
        }

        ```



        **Example Response (Text Chat):**


        ```json

        {
          "id": "nugen-abc123",
          "object": "chat.completion",
          "created": 1704123600.0,
          "model": "nugen-flash-instruct",
          "choices": [
            {
              "index": 0,
              "message": {
                "role": "assistant",
                "content": "The capital of France is Paris."
              },
              "finish_reason": "stop"
            }
          ],
          "usage": {
            "prompt_tokens": 20,
            "completion_tokens": 8,
            "total_tokens": 28
          },
          "confidence_score": 89.5454
        }

        ```



        **Example Request (Using Domain-Aligned Model):**


        ```json

        POST /api/v3/inference/chat/completions

        Headers: {"Authorization": "Bearer <api_key>"}


        {
          "model": "aligned-model-01kmqm4nrn9fw6r",
          "messages": [
            {
              "role": "user",
              "content": "How do I return a product?"
            }
          ],
          "max_tokens": 500,
          "temperature": 0.7
        }

        ```



        **Example Response (Domain-Aligned Model):**


        ```json

        {
          "id": "nugen-abc456",
          "object": "chat.completion",
          "created": 1704123700.0,
          "model": "model_customer_support_alignment_01kjy6s8n9r8cnx",
          "choices": [
            {
              "index": 0,
              "message": {
                "role": "assistant",
                "content": "To return a product, please visit our returns portal within 30 days of purchase with your order number and receipt."
              },
              "finish_reason": "stop"
            }
          ],
          "usage": {
            "prompt_tokens": 15,
            "completion_tokens": 25,
            "total_tokens": 40
          },
          "confidence_score": 95.8
        }

        ```


        **How to get your aligned model ID:**

        1. Create an alignment project using `POST
        /api/v3/alignment-project/create`

        2. Poll `GET /api/v3/alignment-project/status/{id}` until status is
        `COMPLETED`

        3. Use the `model_id` field from the response (e.g.,
        `"model_customer_support_alignment_01kjy6s8n9r8cnx"`)

        4. Deploy the model using `POST /api/v3/models/deploy-model/{model_id}`
        (optional - for evaluation/production use)

        5. Use the `model_id` in the `model` parameter for inference requests



        **Example Request (Vision - Image URL):**


        ```json

        POST /api/v3/inference/chat/completions

        Headers: {"Authorization": "Bearer <api_key>"}


        {
          "model": "aligned-model-01kmqm4nrn9fw6r",
          "messages": [
            {
              "role": "user",
              "content": [
                {
                  "type": "text",
                  "text": "Describe what you see in this image."
                },
                {
                  "type": "image_url",
                  "image_url": {
                    "url": "https://example.com/image.jpg"
                  }
                }
              ]
            }
          ],
          "max_tokens": 1000
        }

        ```



        **Example Request (Vision - Base64 Image):**


        ```json

        POST /api/v3/inference/chat/completions

        Headers: {"Authorization": "Bearer <api_key>"}


        {
          "model": "aligned-model-01kmqm4nrn9fw6r",
          "messages": [
            {
              "role": "user",
              "content": [
                {
                  "type": "text",
                  "text": "What's in this image?"
                },
                {
                  "type": "image_url",
                  "image_url": {
                    "url": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD..."
                  }
                }
              ]
            }
          ]
        }

        ```



        **Example Request (Function Calling):**


        ```json

        POST /api/v3/inference/chat/completions

        Headers: {"Authorization": "Bearer <api_key>"}


        {
          "model": "aligned-model-01kmqm4nrn9fw6r",
          "messages": [
            {"role": "user", "content": "What's the weather in Boston?"}
          ],
          "tools": [
            {
              "type": "function",
              "function": {
                "name": "get_weather",
                "description": "Get current weather",
                "parameters": {
                  "type": "object",
                  "properties": {
                    "location": {"type": "string"}
                  }
                }
              }
            }
          ],
          "tool_choice": "auto"
        }

        ```



        **Example Request (Streaming):**


        ```json

        POST /api/v3/inference/chat/completions

        Headers: {"Authorization": "Bearer <api_key>"}


        {
          "model": "aligned-model-01kmqm4nrn9fw6r",
          "messages": [{"role": "user", "content": "Tell me a story"}],
          "stream": true
        }

        ```



        **Example Response (Streaming):**


        ```

        data:
        {"id":"nugen-abc123","created":1704123600.0,"model":"nugen-flash-instruct","choices":[{"index":0,"delta":{"role":"assistant","content":"Once"},"finish_reason":null}]}


        data:
        {"id":"nugen-abc123","created":1704123600.0,"model":"nugen-flash-instruct","choices":[{"index":0,"delta":{"content":"
        upon"},"finish_reason":null}]}


        data:
        {"id":"nugen-abc123","created":1704123600.0,"model":"nugen-flash-instruct","choices":[{"index":0,"delta":{"content":"
        a
        time"},"finish_reason":"stop"}],"usage":{"prompt_tokens":10,"completion_tokens":5,"total_tokens":15}}


        data: [DONE]

        ```



        **Notes:**


        - Supports both text-only and vision/multimodal inputs depending on the
        model

        - **Using Domain-Aligned Models**: Pass the `model_id` from your
        completed alignment project as the `model` parameter. Get your aligned
        model IDs from `GET /api/v3/alignment-project/status/{id}` or `GET
        /api/v3/models/aligned`

        - Function calling enables models to invoke external tools via `tools`
        and `tool_choice` parameters

        - `confidence_score` is only available for Domain-Aligned AI models and
        indicates model certainty (0-100)

        - For streaming, usage statistics are included only in the final chunk

        - Conversations are automatically saved to S3 if enabled in user
        settings

        - Include `X-Session-ID` header for multi-turn conversation tracking

        - Use `prompt_truncate_len` to control context window usage for long
        conversations

        - The `reasoning` parameter enables advanced reasoning capabilities for
        supported models
      operationId: generate_chat_completions
      parameters:
        - name: X-Session-ID
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Session-Id
        - name: X-Request-Time
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: X-Request-Time
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCompletionRequest_chat_textv2'
      responses:
        '200':
          description: >-
            Streaming chat completion responses or complete response depending
            on stream parameter
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - HTTPBearer: []
components:
  schemas:
    CreateCompletionRequest_chat_textv2:
      properties:
        model:
          type: string
          title: Model
          description: The name of the model to use.
          example: nugen-flash-instruct
        messages:
          items:
            $ref: >-
              #/components/schemas/inference_sub__main_chat_text__ChatCompletionRequestMessage
          type: array
          minItems: 1
          title: Messages
          description: A list of messages comprising the conversation so far.
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: The maximum number of tokens to generate in the completion.
          default: '2000'
        prompt_truncate_len:
          anyOf:
            - type: integer
            - type: 'null'
          title: Prompt Truncate Len
          description: The size to which to truncate chat prompts.
          default: 1500
        temperature:
          anyOf:
            - type: number
              maximum: 2
              minimum: 0
            - type: 'null'
          title: Temperature
          description: What sampling temperature to use, between 0 and 2.
          default: 1
        stream:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Stream
          description: Whether to stream back partial progress as server-sent events.
          default: false
        tools:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Tools
          description: List of tools/functions
        tool_choice:
          anyOf:
            - type: string
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Tool Choice
          description: '''auto'', ''none'', or specific tool'
        top_p:
          anyOf:
            - type: number
            - type: 'null'
          title: Top P
          description: Nucleus sampling
        top_k:
          anyOf:
            - type: integer
            - type: 'null'
          title: Top K
          description: Top-k sampling
        'n':
          anyOf:
            - type: integer
            - type: 'null'
          title: 'N'
          description: Number of completions
          default: 1
        reasoning:
          anyOf:
            - $ref: '#/components/schemas/ReasoningFields'
            - type: 'null'
          description: Reasoning configuration for the model
        stream_options:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Stream Options
          description: 'Options for streaming responses, e.g., {''include_usage'': true}'
      type: object
      required:
        - model
        - messages
      title: CreateCompletionRequest_chat_textv2
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    inference_sub__main_chat_text__ChatCompletionRequestMessage:
      properties:
        role:
          type: string
          enum:
            - system
            - user
            - assistant
          title: Role
          description: >-
            The role of the messages author. One of `system`, `user`, or
            `assistant`.
        content:
          anyOf:
            - type: string
            - items:
                anyOf:
                  - $ref: '#/components/schemas/TextMessageContent'
                  - $ref: '#/components/schemas/ImageMessageContent'
              type: array
          title: Content
          description: The contents of the message. `content` is required for all messages
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: >-
            The name of the author of this message. May contain a-z, A-Z, 0-9,
            and underscores, with a maximum length of 64 characters.
      type: object
      required:
        - role
        - content
      title: ChatTextRequestMessage
    ReasoningFields:
      properties:
        effort:
          anyOf:
            - type: string
              enum:
                - xhigh
                - high
                - medium
                - low
                - minimal
                - none
            - type: 'null'
          title: Effort
          description: Reasoning effort level (OpenAI-style)
        max_tokens:
          anyOf:
            - type: integer
            - type: 'null'
          title: Max Tokens
          description: Specific token limit for reasoning (Anthropic-style)
        exclude:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Exclude
          description: Set to true to exclude reasoning tokens from response
          default: false
        enabled:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Enabled
          description: Enable reasoning with default parameters
      type: object
      title: ReasoningFields
    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
    TextMessageContent:
      properties:
        type:
          type: string
          enum:
            - text
          title: Type
          description: The type of the message.
        text:
          type: string
          title: Text
          description: The content of the message.
      type: object
      required:
        - type
        - text
      title: TextMessageContent
    ImageMessageContent:
      properties:
        type:
          type: string
          enum:
            - image_url
          title: Type
          description: The type of the message.
        image_url:
          $ref: '#/components/schemas/ImageUrlContent'
          description: The image URL object
      type: object
      required:
        - type
        - image_url
      title: ImageMessageContent
    ImageUrlContent:
      properties:
        url:
          type: string
          title: Url
          description: The URL of the image or Base64 encoded string of the image
      type: object
      required:
        - url
      title: ImageUrlContent
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````