Skip to content

Chatbot API — HTTP reference

Generated from FastAPI OpenAPI and versioned with the source code. Edit routes, Pydantic schemas and their examples, then run python -m scripts.update_http_reference to update this page.

Paths below include the application mount. Add your deployment prefix when calling them. Live Swagger/ReDoc includes deployment-specific defaults; this static snapshot uses source defaults and never reads tenant databases.

22 HTTP operations. WebSocket and MCP transports are documented separately. Metrics and framework routes excluded from OpenAPI are not HTTP contract entries.

Use the Live OpenAPI JSON link above for the complete schema served by this application.

Operations

Method Mounted path Summary
PUT /chatbot/api/history/conversation/{userConversationId} Update conversation
GET /chatbot/api/history/conversations/search/{userApplicationId}/{searchTerm} Search conversations for a user
GET /chatbot/api/history/conversations/{userApplicationId} List conversations for a user
DELETE /chatbot/api/history/conversations/{userConversationId} Delete a conversation
DELETE /chatbot/api/history/history/clear_all/{user_application_id} Clear user chat history
GET /chatbot/api/history/messages Get paginated chat message history
GET /chatbot/api/v1/configs Get frontend chatbot configuration
PUT /chatbot/api/v1/configs Update frontend chatbot configuration
POST /chatbot/api/v1/event Create a new event entry
PUT /chatbot/api/v1/event/feedback-state Set, switch or clear the current feedback state
PATCH /chatbot/api/v1/event/{event_id} Update structured details on an existing feedback event
DELETE /chatbot/api/v1/long_term_memory/{user_application_id} Delete user preferences through long-term memory
GET /chatbot/api/v1/long_term_memory/{user_application_id} Get user preferences through long-term memory
PUT /chatbot/api/v1/long_term_memory/{user_application_id} Update user preferences through long-term memory
POST /chatbot/api/v1/simulation/analyze Analyze a completed simulation and get feedback
POST /chatbot/api/v1/simulation/chat Send a message in a simulation conversation (Text or Audio)
POST /chatbot/api/v2/chat Chat or resume a grouped clarification
POST /chatbot/api/v2/chat/complementary_topics Generate complementary development topics
POST /chatbot/api/v2/chat/prompts Suggest follow-up prompts
POST /chatbot/api/v2/chat_document Chat endpoint for all discussions with the bot
POST /chatbot/api/v2/chat_streaming Stream chat activities, final-answer text and the structured response (SSE)
POST /chatbot/api/v2/speech_to_text Speech-to-text only endpoint

PUT /chatbot/api/history/conversation/{userConversationId}

Update conversation

Database compatibility: MongoDB + PostgreSQL.

Update conversation metadata.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "in": "path",
    "name": "userConversationId",
    "required": true,
    "schema": {
      "title": "Userconversationid",
      "type": "string"
    }
  },
  {
    "description": "New title for the conversation",
    "in": "query",
    "name": "new_title",
    "required": false,
    "schema": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "New title for the conversation",
      "title": "New Title"
    }
  },
  {
    "description": "Whether the conversation is shared",
    "in": "query",
    "name": "isShared",
    "required": false,
    "schema": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "Whether the conversation is shared",
      "title": "Isshared"
    }
  },
  {
    "description": "Whether the conversation is pinned",
    "in": "query",
    "name": "pinned",
    "required": false,
    "schema": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "Whether the conversation is pinned",
      "title": "Pinned"
    }
  }
]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "update_conversation_api_history_conversation__userConversationId__put",
  "tags": [
    "History"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

GET /chatbot/api/history/conversations/search/{userApplicationId}/{searchTerm}

Search conversations for a user

Database compatibility: MongoDB + PostgreSQL.

Search a user's conversations by title and content.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "in": "path",
    "name": "userApplicationId",
    "required": true,
    "schema": {
      "title": "Userapplicationid",
      "type": "string"
    }
  },
  {
    "description": "Search term for filtering conversations",
    "in": "path",
    "name": "searchTerm",
    "required": true,
    "schema": {
      "description": "Search term for filtering conversations",
      "title": "Searchterm",
      "type": "string"
    }
  }
]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "search_conversations_api_history_conversations_search__userApplicationId___searchTerm__get",
  "tags": [
    "History"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

GET /chatbot/api/history/conversations/{userApplicationId}

List conversations for a user

Database compatibility: MongoDB + PostgreSQL.

List conversations for a user.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "in": "path",
    "name": "userApplicationId",
    "required": true,
    "schema": {
      "title": "Userapplicationid",
      "type": "string"
    }
  }
]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "list_conversations_api_history_conversations__userApplicationId__get",
  "tags": [
    "History"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

DELETE /chatbot/api/history/conversations/{userConversationId}

Delete a conversation

Database compatibility: MongoDB + PostgreSQL.

Delete a conversation and its messages.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "in": "path",
    "name": "userConversationId",
    "required": true,
    "schema": {
      "title": "Userconversationid",
      "type": "string"
    }
  }
]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "delete_conversation_api_history_conversations__userConversationId__delete",
  "tags": [
    "History"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

DELETE /chatbot/api/history/history/clear_all/{user_application_id}

Clear user chat history

Database compatibility: MongoDB + PostgreSQL.

Clear the chat history for a specific user based on their user application ID.

Args: user_application_id (str): The unique identifier for the user's application. history_service: Service used to clear persisted history.

Returns: str: A confirmation message indicating that the user history has been cleared.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "in": "path",
    "name": "user_application_id",
    "required": true,
    "schema": {
      "title": "User Application Id",
      "type": "string"
    }
  }
]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "clear_user_history_api_history_history_clear_all__user_application_id__delete",
  "tags": [
    "History"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

GET /chatbot/api/history/messages

Get paginated chat message history

Database compatibility: MongoDB + PostgreSQL.

Get paginated chat message history for a user and conversation.

This endpoint retrieves chat messages (user + bot pairs) with pagination support. Messages are returned in reverse chronological order (newest first).

Required Parameters: - userApplicationId: The user's application ID - userConversationId: The conversation ID

Optional Parameters: - page: Page number (1-indexed, default: 1) - pageSize: Number of message pairs per page (default: 10)

Response: - messages: List of chat message log entries, each containing: - user: User message with message content and data - bot: Bot response with message content and data - processTime: Processing time in seconds - createdAt: Timestamp of the message - total: Total number of message pairs available - page: Current page number - page_size: Number of items per page - total_pages: Total number of pages available - has_more: Boolean indicating if more messages are available - current_url: URL for the current page - next_url: URL for the next page (null if no more pages) - previous_url: URL for the previous page (null if on first page) - first_url: URL for the first page - last_url: URL for the last page

Example Request:

GET /history/messages?userApplicationId=8f052d5a-08c7-462d-a1b6-cb6dd14e54c2&userConversationId=5e0208f1-8ccd-42b9-addb-afa6d185d0f7&page=1&pageSize=10

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "description": "Internal unique identifier for the user (userApplicationId)",
    "in": "query",
    "name": "userApplicationId",
    "required": true,
    "schema": {
      "description": "Internal unique identifier for the user (userApplicationId)",
      "examples": [
        "8f052d5a-08c7-462d-a1b6-cb6dd14e54c2"
      ],
      "title": "Userapplicationid",
      "type": "string"
    }
  },
  {
    "description": "Unique identifier for the conversation (userConversationId)",
    "in": "query",
    "name": "userConversationId",
    "required": true,
    "schema": {
      "description": "Unique identifier for the conversation (userConversationId)",
      "examples": [
        "5e0208f1-8ccd-42b9-addb-afa6d185d0f7"
      ],
      "title": "Userconversationid",
      "type": "string"
    }
  },
  {
    "description": "Page number for pagination (1-indexed)",
    "in": "query",
    "name": "page",
    "required": false,
    "schema": {
      "default": 1,
      "description": "Page number for pagination (1-indexed)",
      "examples": [
        1
      ],
      "minimum": 1,
      "title": "Page",
      "type": "integer"
    }
  },
  {
    "description": "Number of message pairs per page (default: 10)",
    "in": "query",
    "name": "pageSize",
    "required": false,
    "schema": {
      "default": 10,
      "description": "Number of message pairs per page (default: 10)",
      "examples": [
        10
      ],
      "minimum": 1,
      "title": "Pagesize",
      "type": "integer"
    }
  }
]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HistoryResponse"
        }
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError, components/schemas/HistoryResponse.

Operation metadata

{
  "operationId": "get_chat_messages_api_history_messages_get",
  "tags": [
    "History"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

GET /chatbot/api/v1/configs

Get frontend chatbot configuration

Database compatibility: MongoDB + PostgreSQL.

Retrieve the frontend chatbot configuration.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  }
}

Operation metadata

{
  "operationId": "get_frontend_config_api_v1_configs_get",
  "tags": [
    "Configs"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

PUT /chatbot/api/v1/configs

Update frontend chatbot configuration

Database compatibility: MongoDB + PostgreSQL.

Update the frontend chatbot configuration.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/FrontendConfigUpdate"
      }
    }
  },
  "required": true
}

Referenced definitions: components/schemas/FrontendConfigUpdate.

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "update_frontend_config_api_v1_configs_put",
  "tags": [
    "Configs"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

POST /chatbot/api/v1/event

Create a new event entry

Database compatibility: MongoDB + PostgreSQL.

Persist a chatbot event.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EventBase"
      }
    }
  },
  "required": true
}

Referenced definitions: components/schemas/EventBase.

Responses

{
  "201": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/EventCreated"
        }
      }
    },
    "description": "Successful Response"
  },
  "400": {
    "description": "Bad Request - Invalid data provided"
  },
  "403": {
    "content": {
      "application/json": {
        "example": {
          "detail": "Missing API Key"
        }
      }
    },
    "description": "Forbidden - Authentication error"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  },
  "500": {
    "description": "Internal Server Error - Database operation failed"
  }
}

Referenced definitions: components/schemas/EventCreated, components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "create_event_api_v1_event_post",
  "tags": [
    "Event"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

PUT /chatbot/api/v1/event/feedback-state

Set, switch or clear the current feedback state

Database compatibility: MongoDB + PostgreSQL.

Set the active state of a feedback event.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EventFeedbackStateRequest"
      }
    }
  },
  "required": true
}

Referenced definitions: components/schemas/EventFeedbackStateRequest.

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/EventFeedbackStateResponse"
        }
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/EventFeedbackStateResponse, components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "set_feedback_state_api_v1_event_feedback_state_put",
  "tags": [
    "Event"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

PATCH /chatbot/api/v1/event/{event_id}

Update structured details on an existing feedback event

Database compatibility: MongoDB + PostgreSQL.

Update the payload of a feedback event.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "description": "Existing feedback event identifier",
    "in": "path",
    "name": "event_id",
    "required": true,
    "schema": {
      "description": "Existing feedback event identifier",
      "title": "Event Id",
      "type": "string"
    }
  }
]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/EventFeedbackUpdate"
      }
    }
  },
  "required": true
}

Referenced definitions: components/schemas/EventFeedbackUpdate.

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/EventCreated"
        }
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/EventCreated, components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "update_feedback_event_api_v1_event__event_id__patch",
  "tags": [
    "Event"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

DELETE /chatbot/api/v1/long_term_memory/{user_application_id}

Delete user preferences through long-term memory

Database compatibility: MongoDB + PostgreSQL.

Delete all user preferences for a specific user based on their user application ID.

Args: user_application_id (str): The unique identifier for the user's application. db_conf: Chat service context containing the long-term memory store.

Returns: dict: Confirmation message.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "in": "path",
    "name": "user_application_id",
    "required": true,
    "schema": {
      "title": "User Application Id",
      "type": "string"
    }
  }
]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "delete_user_preferences_api_v1_long_term_memory__user_application_id__delete",
  "tags": [
    "Long-term Memory"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

GET /chatbot/api/v1/long_term_memory/{user_application_id}

Get user preferences through long-term memory

Database compatibility: MongoDB + PostgreSQL.

Get the user preferences for a specific user based on their user application ID.

Args: user_application_id (str): The unique identifier for the user's application. db_conf: Chat service context containing the long-term memory store.

Returns: dict: User preferences.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "in": "path",
    "name": "user_application_id",
    "required": true,
    "schema": {
      "title": "User Application Id",
      "type": "string"
    }
  }
]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "get_user_preferences_process_api_v1_long_term_memory__user_application_id__get",
  "tags": [
    "Long-term Memory"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

PUT /chatbot/api/v1/long_term_memory/{user_application_id}

Update user preferences through long-term memory

Database compatibility: MongoDB + PostgreSQL.

Update user preferences for a specific user.

Args: user_application_id (str): The unique identifier for the user's application. preferences (list[str]): The preferences to update. db_conf: Chat service context containing the long-term memory store.

Returns: dict: Updated user preferences.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[
  {
    "in": "path",
    "name": "user_application_id",
    "required": true,
    "schema": {
      "title": "User Application Id",
      "type": "string"
    }
  }
]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "examples": [
          [
            "Prefer short video courses",
            "Interested in project management"
          ]
        ],
        "items": {
          "type": "string"
        },
        "title": "Preferences",
        "type": "array"
      }
    }
  },
  "required": true
}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {}
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "update_user_preferences_process_api_v1_long_term_memory__user_application_id__put",
  "tags": [
    "Long-term Memory"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

POST /chatbot/api/v1/simulation/analyze

Analyze a completed simulation and get feedback

Database compatibility: MongoDB + PostgreSQL.

Analyze a completed simulation conversation.

Retrieves the full transcript of the simulation and generates structured feedback including: - Summary of performance - Scores on various criteria - Strengths with examples - Areas for improvement with suggestions - Actionable tips - Key moments from the conversation

Only works on conversations marked as simulations.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/SimulationAnalyzeInput"
      }
    }
  },
  "required": true
}

Referenced definitions: components/schemas/SimulationAnalyzeInput.

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SimulationAnalysisOutput"
        }
      }
    },
    "description": "Successful Response"
  },
  "400": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SimulationError"
        }
      }
    },
    "description": "Bad Request - Not a simulation"
  },
  "404": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SimulationError"
        }
      }
    },
    "description": "Conversation not found"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  },
  "500": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SimulationError"
        }
      }
    },
    "description": "Internal server error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError, components/schemas/SimulationAnalysisOutput, components/schemas/SimulationError.

Operation metadata

{
  "operationId": "simulation_analyze_api_v1_simulation_analyze_post",
  "tags": [
    "Simulation"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

POST /chatbot/api/v1/simulation/chat

Send a message in a simulation conversation (Text or Audio)

Database compatibility: MongoDB + PostgreSQL.

Run a text or audio simulation conversation.

Supports two modes: 1. Text Mode (JSON): Send a JSON body with SimulationChatInput. Returns JSON. 2. Audio Mode (Multipart): Send a multipart/form-data request with an audio_file. Returns Audio (MPEG).

Multipart Form Fields: - file: (Optional) Audio file. If provided, STT is performed. - message: (Optional) Text message if no audio file is provided. - user_id: (Required) - simulation_type: (Required) - counterpart_user_id: (Required) - conversation_id: (Optional) - parent_conversation_id: (Optional, used when creating a new simulation conversation) - locale: (Optional, fallback response language)

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SimulationChatOutput"
        }
      }
    },
    "description": "Successful response"
  },
  "400": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SimulationError"
        }
      }
    },
    "description": "Bad Request"
  },
  "404": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SimulationError"
        }
      }
    },
    "description": "User or conversation not found"
  },
  "500": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SimulationError"
        }
      }
    },
    "description": "Internal server error"
  }
}

Referenced definitions: components/schemas/SimulationChatOutput, components/schemas/SimulationError.

Operation metadata

{
  "operationId": "simulation_chat_api_v1_simulation_chat_post",
  "tags": [
    "Simulation"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

POST /chatbot/api/v2/chat

Chat or resume a grouped clarification

Database compatibility: MongoDB + PostgreSQL.

Provide a JSON-only chat endpoint for Swagger and tests.

A pending user clarification returns type interaction. Send type interaction with action answer and per-question answers (answer/skip), using message for text or selectedOptionIds for structured choices. Questions declare inputType (text, single_select, multi_select), options and allowFreeText. or action cancel, plus the returned interactionId. Keep top-level message empty. Use /v2/chat_document for uploads.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "discriminator": {
          "mapping": {
            "interaction": "#/components/schemas/InteractionInputMessage",
            "text": "#/components/schemas/TextInputMessage"
          },
          "propertyName": "type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/TextInputMessage"
          },
          {
            "$ref": "#/components/schemas/InteractionInputMessage"
          }
        ],
        "title": "Payload"
      }
    }
  },
  "required": true
}

Referenced definitions: components/schemas/InteractionInputMessage, components/schemas/TextInputMessage.

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "discriminator": {
            "mapping": {
              "create_objective": "#/components/schemas/CreateObjectiveOutputMessage",
              "interaction": "#/components/schemas/InteractionOutputMessage",
              "suggested_objectives": "#/components/schemas/SuggestedObjectivesOutputMessage",
              "suggested_opportunities": "#/components/schemas/SuggestedOpportunitiesOutputMessage",
              "suggested_opportunities_with_debug": "#/components/schemas/SuggestedOpportunitiesWithDebugOutputMessage",
              "suggested_simulation": "#/components/schemas/SuggestedSimulationOutputMessage",
              "suggested_trainings": "#/components/schemas/SuggestedTrainingsOutputMessage",
              "text": "#/components/schemas/TextOutputMessage",
              "text_with_id": "#/components/schemas/TextWithIdOutputMessage",
              "user_profile_analysis": "#/components/schemas/UserProfileAnalysisOutputMessage"
            },
            "propertyName": "type"
          },
          "oneOf": [
            {
              "$ref": "#/components/schemas/TextOutputMessage"
            },
            {
              "$ref": "#/components/schemas/InteractionOutputMessage"
            },
            {
              "$ref": "#/components/schemas/TextWithIdOutputMessage"
            },
            {
              "$ref": "#/components/schemas/SuggestedObjectivesOutputMessage"
            },
            {
              "$ref": "#/components/schemas/CreateObjectiveOutputMessage"
            },
            {
              "$ref": "#/components/schemas/SuggestedOpportunitiesOutputMessage"
            },
            {
              "$ref": "#/components/schemas/SuggestedOpportunitiesWithDebugOutputMessage"
            },
            {
              "$ref": "#/components/schemas/SuggestedTrainingsOutputMessage"
            },
            {
              "$ref": "#/components/schemas/SuggestedSimulationOutputMessage"
            },
            {
              "$ref": "#/components/schemas/UserProfileAnalysisOutputMessage"
            }
          ],
          "title": "Response Chat V2 Api V2 Chat Post"
        }
      }
    },
    "description": "Completed response, or interaction with an opaque interactionId."
  },
  "404": {
    "content": {
      "application/json": {
        "example": {
          "detail": "Conversation not found."
        }
      }
    },
    "description": "Conversation not found or not owned by this user."
  },
  "409": {
    "content": {
      "application/json": {
        "example": {
          "detail": "This interaction is no longer pending."
        }
      }
    },
    "description": "Pending, stale or concurrently processed interaction."
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/CreateObjectiveOutputMessage, components/schemas/HTTPValidationError, components/schemas/InteractionOutputMessage, components/schemas/SuggestedObjectivesOutputMessage, components/schemas/SuggestedOpportunitiesOutputMessage, components/schemas/SuggestedOpportunitiesWithDebugOutputMessage, components/schemas/SuggestedSimulationOutputMessage, components/schemas/SuggestedTrainingsOutputMessage, components/schemas/TextOutputMessage, components/schemas/TextWithIdOutputMessage, components/schemas/UserProfileAnalysisOutputMessage.

Operation metadata

{
  "operationId": "chat_v2_api_v2_chat_post",
  "tags": [
    "Chat"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

POST /chatbot/api/v2/chat/complementary_topics

Generate complementary development topics

Database compatibility: MongoDB + PostgreSQL.

Generate additional development topics for the profile analysis "show more" feature.

Takes the list of already-suggested topic titles and generates new ones, prioritizing skills gap and action plan sources.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/ComplementaryTopicsInput"
      }
    }
  },
  "required": true
}

Referenced definitions: components/schemas/ComplementaryTopicsInput.

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ComplementaryTopicsOutput"
        }
      }
    },
    "description": "Successful Response"
  },
  "404": {
    "content": {
      "application/json": {
        "example": {
          "detail": "User not found or deactivated."
        }
      }
    },
    "description": "User not found"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/ComplementaryTopicsOutput, components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "get_complementary_topics_api_v2_chat_complementary_topics_post",
  "tags": [
    "Chat"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

POST /chatbot/api/v2/chat/prompts

Suggest follow-up prompts

Database compatibility: MongoDB + PostgreSQL.

Suggest short follow-up prompts based on recent chat history and user context.

Notes: - If category is provided, the response omits title to reduce payload size. - History is built from the latest 5 user/bot pairs from the current conversation. - Requires either userApplicationId or userId.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/PromptSuggestionsInput"
      }
    }
  },
  "required": true
}

Referenced definitions: components/schemas/PromptSuggestionsInput.

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/PromptSuggestionsOutput"
        }
      }
    },
    "description": "Successful Response"
  },
  "400": {
    "content": {
      "application/json": {
        "example": {
          "detail": "Either userApplicationId or userId is required."
        }
      }
    },
    "description": "Bad Request - Missing userApplicationId/userId or user deactivated"
  },
  "404": {
    "content": {
      "application/json": {
        "example": {
          "detail": "User not found."
        }
      }
    },
    "description": "User not found"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError, components/schemas/PromptSuggestionsOutput.

Operation metadata

{
  "operationId": "suggest_chat_prompts_api_v2_chat_prompts_post",
  "tags": [
    "Chat"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

POST /chatbot/api/v2/chat_document

Chat endpoint for all discussions with the bot

Database compatibility: MongoDB + PostgreSQL.

Chat endpoint to handle user queries and return or stream the LLM response.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{}

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "discriminator": {
            "mapping": {
              "create_objective": "#/components/schemas/CreateObjectiveOutputMessage",
              "interaction": "#/components/schemas/InteractionOutputMessage",
              "suggested_objectives": "#/components/schemas/SuggestedObjectivesOutputMessage",
              "suggested_opportunities": "#/components/schemas/SuggestedOpportunitiesOutputMessage",
              "suggested_opportunities_with_debug": "#/components/schemas/SuggestedOpportunitiesWithDebugOutputMessage",
              "suggested_simulation": "#/components/schemas/SuggestedSimulationOutputMessage",
              "suggested_trainings": "#/components/schemas/SuggestedTrainingsOutputMessage",
              "text": "#/components/schemas/TextOutputMessage",
              "text_with_id": "#/components/schemas/TextWithIdOutputMessage",
              "user_profile_analysis": "#/components/schemas/UserProfileAnalysisOutputMessage"
            },
            "propertyName": "type"
          },
          "oneOf": [
            {
              "$ref": "#/components/schemas/TextOutputMessage"
            },
            {
              "$ref": "#/components/schemas/InteractionOutputMessage"
            },
            {
              "$ref": "#/components/schemas/TextWithIdOutputMessage"
            },
            {
              "$ref": "#/components/schemas/SuggestedObjectivesOutputMessage"
            },
            {
              "$ref": "#/components/schemas/CreateObjectiveOutputMessage"
            },
            {
              "$ref": "#/components/schemas/SuggestedOpportunitiesOutputMessage"
            },
            {
              "$ref": "#/components/schemas/SuggestedOpportunitiesWithDebugOutputMessage"
            },
            {
              "$ref": "#/components/schemas/SuggestedTrainingsOutputMessage"
            },
            {
              "$ref": "#/components/schemas/SuggestedSimulationOutputMessage"
            },
            {
              "$ref": "#/components/schemas/UserProfileAnalysisOutputMessage"
            }
          ],
          "title": "Response Chat V2 Document Api V2 Chat Document Post"
        }
      }
    },
    "description": "Successful Response"
  }
}

Referenced definitions: components/schemas/CreateObjectiveOutputMessage, components/schemas/InteractionOutputMessage, components/schemas/SuggestedObjectivesOutputMessage, components/schemas/SuggestedOpportunitiesOutputMessage, components/schemas/SuggestedOpportunitiesWithDebugOutputMessage, components/schemas/SuggestedSimulationOutputMessage, components/schemas/SuggestedTrainingsOutputMessage, components/schemas/TextOutputMessage, components/schemas/TextWithIdOutputMessage, components/schemas/UserProfileAnalysisOutputMessage.

Operation metadata

{
  "operationId": "chat_v2_document_api_v2_chat_document_post",
  "tags": [
    "Chat"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

POST /chatbot/api/v2/chat_streaming

Stream chat activities, final-answer text and the structured response (SSE)

Database compatibility: MongoDB + PostgreSQL.

Stream localized activities with stable IDs and one terminal response.

Uses LangGraph V3 internally and public SSE envelope version 1. Internal reasoning and tool payloads are never streamed. Genuine public text deltas are optional; clients must render the authoritative terminal data.response. Temporary public research comments use activity.message and must be cleared at termination. All visible messages use the resolved application locale. A generic clarification terminates with run.interrupted and its structured data.response. Resume explicitly with type interaction and the current interactionId. Render each question according to inputType; return text in message or structured choices in selectedOptionIds. Errors after opening the stream use run.failed; transport replay is not offered.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "application/json": {
      "schema": {
        "discriminator": {
          "mapping": {
            "interaction": "#/components/schemas/InteractionInputMessage",
            "text": "#/components/schemas/TextInputMessage"
          },
          "propertyName": "type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/TextInputMessage"
          },
          {
            "$ref": "#/components/schemas/InteractionInputMessage"
          }
        ],
        "title": "Payload"
      }
    }
  },
  "required": true
}

Referenced definitions: components/schemas/InteractionInputMessage, components/schemas/TextInputMessage.

Responses

{
  "200": {
    "content": {
      "text/event-stream": {
        "example": "event: run.started\nid: run-example:1\ndata: {\"version\":1,\"run_id\":\"run-example\",\"seq\":1,\"data\":{\"conversation_id\":\"conversation-123\",\"message_id\":\"message-123\",\"response_id\":\"response-123\",\"locale\":\"en\"}}\n\nevent: activity.started\nid: run-example:2\ndata: {\"version\":1,\"run_id\":\"run-example\",\"seq\":2,\"data\":{\"activity_id\":\"agent-example\",\"parent_activity_id\":null,\"kind\":\"agent\",\"name\":\"task_helper_agent\",\"label\":\"Getting task guidance…\"}}\n\nevent: activity.started\nid: run-example:3\ndata: {\"version\":1,\"run_id\":\"run-example\",\"seq\":3,\"data\":{\"activity_id\":\"tool-example\",\"parent_activity_id\":\"agent-example\",\"kind\":\"tool\",\"name\":\"task_helper_tool\",\"label\":\"Preparing task guidance…\"}}\n\nevent: activity.progress\nid: run-example:4\ndata: {\"version\":1,\"run_id\":\"run-example\",\"seq\":4,\"data\":{\"activity_id\":\"tool-example\",\"parent_activity_id\":\"agent-example\",\"kind\":\"tool\",\"name\":\"task_helper_tool\",\"label\":\"Drafting guidance for your task…\",\"step\":\"task.answer\"}}\n\nevent: activity.completed\nid: run-example:5\ndata: {\"version\":1,\"run_id\":\"run-example\",\"seq\":5,\"data\":{\"activity_id\":\"tool-example\",\"parent_activity_id\":\"agent-example\",\"kind\":\"tool\",\"name\":\"task_helper_tool\",\"label\":\"Preparing task guidance…\",\"elapsed_ms\":1200}}\n\nevent: activity.completed\nid: run-example:6\ndata: {\"version\":1,\"run_id\":\"run-example\",\"seq\":6,\"data\":{\"activity_id\":\"agent-example\",\"parent_activity_id\":null,\"kind\":\"agent\",\"name\":\"task_helper_agent\",\"label\":\"Getting task guidance…\",\"elapsed_ms\":1500}}\n\nevent: run.completed\nid: run-example:7\ndata: {\"version\":1,\"run_id\":\"run-example\",\"seq\":7,\"data\":{\"response\":{\"userApplicationId\":\"user-123\",\"userConversationId\":\"conversation-123\",\"messageApplicationId\":\"response-123\",\"type\":\"text\",\"locale\":\"en\",\"message\":\"Start with a short checklist and prioritize urgent tasks.\",\"data\":{},\"sender\":\"bot-chat\"}}}\n\n",
        "schema": {
          "type": "string"
        }
      }
    },
    "description": "SSE envelope version 1: run.started, activity events, optional text.delta, then run.completed, run.interrupted (waiting for user input), or run.failed. activity.message contains temporary public research comments. The terminal data.response is ChatOutput. For example: event: run.interrupted; data: {\"version\":1,\"run_id\":\"run-example\",\"seq\":2,\"data\":{\"response\":{\"userApplicationId\":\"user-123\",\"userConversationId\":\"conversation-123\",\"messageApplicationId\":\"response-123\",\"sender\":\"bot-chat\",\"type\":\"interaction\",\"message\":\"What is your current SQL level?\",\"locale\":\"en\",\"data\":{\"interactionId\":\"interaction-123\",\"allowedActions\":[\"answer\",\"skip\",\"cancel\"],\"questions\":[{\"id\":\"q1\",\"message\":\"What is your current SQL level?\"}]}}}}."
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError.

Operation metadata

{
  "operationId": "chat_v2_streaming_api_v2_chat_streaming_post",
  "tags": [
    "Chat"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

POST /chatbot/api/v2/speech_to_text

Speech-to-text only endpoint

Database compatibility: MongoDB + PostgreSQL.

Transcribe an uploaded audio file and return the extracted text.

Expects a multipart/form-data request with a single file field.

Path parameters and metadata

{}

Authentication

[
  {
    "APIKeyHeader": []
  },
  {
    "Client-ID": []
  },
  {
    "HTTPBearer": []
  }
]

Parameters

[]

Request body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/Body_speech_to_text_api_v2_speech_to_text_post"
      }
    }
  },
  "required": true
}

Referenced definitions: components/schemas/Body_speech_to_text_api_v2_speech_to_text_post.

Responses

{
  "200": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/SpeechToTextOutput"
        }
      }
    },
    "description": "Successful Response"
  },
  "422": {
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/HTTPValidationError"
        }
      }
    },
    "description": "Validation Error"
  }
}

Referenced definitions: components/schemas/HTTPValidationError, components/schemas/SpeechToTextOutput.

Operation metadata

{
  "operationId": "speech_to_text_api_v2_speech_to_text_post",
  "tags": [
    "Chat"
  ],
  "x-database-compatibility": "MongoDB + PostgreSQL"
}

Shared definitions

ActionPlanItemMessageData (schemas)

{
  "description": "Validate and serialize action plan item message data.",
  "properties": {
    "description": {
      "description": "Description of the action to take",
      "example": "Read the documentation",
      "title": "Description",
      "type": "string"
    },
    "id": {
      "description": "Unique ID for the action item",
      "example": "uuid",
      "title": "Id",
      "type": "string"
    }
  },
  "required": [
    "id",
    "description"
  ],
  "title": "ActionPlanItemMessageData",
  "type": "object"
}

ActionPlanPeriodMessageData (schemas)

{
  "description": "Validate and serialize action plan period message data.",
  "properties": {
    "items": {
      "description": "List of action items for this period",
      "items": {
        "$ref": "#/components/schemas/ActionPlanItemMessageData"
      },
      "title": "Items",
      "type": "array"
    },
    "period": {
      "description": "Time period",
      "example": "This week",
      "title": "Period",
      "type": "string"
    }
  },
  "required": [
    "period"
  ],
  "title": "ActionPlanPeriodMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/ActionPlanItemMessageData.

AnalysisHeaderMessageData (schemas)

{
  "description": "Validate and serialize analysis header message data.",
  "properties": {
    "alignment_score": {
      "description": "Alignment score percentage (0-100)",
      "example": 85,
      "title": "Alignment Score",
      "type": "integer"
    },
    "headline": {
      "description": "One-sentence wrap-up of strengths",
      "example": "Strong foundation in Python and ML with emerging leadership skills",
      "title": "Headline",
      "type": "string"
    },
    "summary_description": {
      "description": "A brief paragraph focusing on strengths and specific development areas",
      "example": "A brief paragraph summarizing the analysis...",
      "title": "Summary Description",
      "type": "string"
    }
  },
  "required": [
    "headline",
    "alignment_score",
    "summary_description"
  ],
  "title": "AnalysisHeaderMessageData",
  "type": "object"
}

Body_speech_to_text_api_v2_speech_to_text_post (schemas)

{
  "properties": {
    "file": {
      "contentMediaType": "application/octet-stream",
      "title": "File",
      "type": "string"
    }
  },
  "required": [
    "file"
  ],
  "title": "Body_speech_to_text_api_v2_speech_to_text_post",
  "type": "object"
}

ChatFileInput (schemas)

{
  "description": "Validate and serialize chat file input data.",
  "properties": {
    "contentBase64": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Base64-encoded file content",
      "title": "Contentbase64"
    },
    "contentType": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "MIME type of the file",
      "example": "application/pdf",
      "title": "Contenttype"
    },
    "fileId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "File identifier",
      "example": "a12f4c2e-7e3a-4f2b-9cf6-4a6a7d3d9b10",
      "title": "Fileid"
    },
    "fileName": {
      "description": "File name including extension",
      "example": "resume.pdf",
      "title": "Filename",
      "type": "string"
    },
    "fileWeight": {
      "anyOf": [
        {
          "minimum": 0.0,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "description": "File size in bytes; must match decoded content when provided",
      "example": 24576,
      "title": "Fileweight"
    }
  },
  "required": [
    "fileName"
  ],
  "title": "ChatFileInput",
  "type": "object"
}

ChatSource (schemas)

{
  "description": "Enum for chat request source.",
  "enum": [
    "Web",
    "Agent",
    "TeamsApp"
  ],
  "title": "ChatSource",
  "type": "string"
}

ChatUserText (schemas)

{
  "$ref": "#/components/schemas/UntrustedText",
  "maxLength": 20000
}

Referenced definitions: components/schemas/UntrustedText.

ComplementaryTopicsInput (schemas)

{
  "description": "Validate and serialize complementary topics input data.",
  "examples": [
    {
      "alreadySuggestedTopics": [
        "Improve stakeholder communication"
      ],
      "locale": "en",
      "numberOfTopics": 5,
      "source": "Web",
      "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994"
    }
  ],
  "properties": {
    "alreadySuggestedTopics": {
      "description": "List of topic titles already suggested to the user, to avoid duplicates",
      "example": [
        "Enhance stakeholder communication",
        "Develop Advanced SQL capabilities"
      ],
      "items": {
        "type": "string"
      },
      "title": "Alreadysuggestedtopics",
      "type": "array"
    },
    "locale": {
      "default": "en",
      "description": "Language locale for the generated topics",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "numberOfTopics": {
      "default": 5,
      "description": "Number of additional topics to generate",
      "example": 5,
      "maximum": 10.0,
      "minimum": 1.0,
      "title": "Numberoftopics",
      "type": "integer"
    },
    "source": {
      "$ref": "#/components/schemas/ChatSource",
      "default": "Web",
      "description": "Application source of the chat request",
      "example": "Web"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "alreadySuggestedTopics"
  ],
  "title": "ComplementaryTopicsInput",
  "type": "object"
}

Referenced definitions: components/schemas/ChatSource.

ComplementaryTopicsOutput (schemas)

{
  "description": "Validate and serialize complementary topics output data.",
  "example": {
    "topics": [
      {
        "action_plan": [
          {
            "items": [
              {
                "description": "Read an article on strategic frameworks",
                "id": "uuid-item-1"
              }
            ],
            "period": "This week"
          }
        ],
        "id": "1a2b3c4d-5e6f-7g8h-9i0j-k1l2m3n4o56p",
        "priority_level": "High",
        "rationale": "Based on identified skill gaps in your profile.",
        "title": "Develop Strategic Thinking",
        "trainings_available_count": 0
      }
    ]
  },
  "properties": {
    "topics": {
      "description": "List of complementary development topics with action plans",
      "items": {
        "$ref": "#/components/schemas/PrioritySkillGapMessageData"
      },
      "title": "Topics",
      "type": "array"
    }
  },
  "required": [
    "topics"
  ],
  "title": "ComplementaryTopicsOutput",
  "type": "object"
}

Referenced definitions: components/schemas/PrioritySkillGapMessageData.

CoreSkillItemMessageData (schemas)

{
  "description": "Validate and serialize core skill item message data.",
  "properties": {
    "description": {
      "default": "",
      "description": "Skill description",
      "example": "Selenium grid is a tool used for distributed testing.",
      "title": "Description",
      "type": "string"
    },
    "skillId": {
      "default": "",
      "description": "Skill ID from the Skills collection",
      "example": "c07020b4-7cec-4e4c-b798-f460e974da3b",
      "title": "Skillid",
      "type": "string"
    },
    "skillTitle": {
      "description": "Skill title",
      "example": "Selenium Grid",
      "title": "Skilltitle",
      "type": "string"
    }
  },
  "required": [
    "skillTitle"
  ],
  "title": "CoreSkillItemMessageData",
  "type": "object"
}

CoreSkillsMessageData (schemas)

{
  "description": "Validate and serialize core skills message data.",
  "properties": {
    "human": {
      "description": "List of soft skills",
      "items": {
        "$ref": "#/components/schemas/CoreSkillItemMessageData"
      },
      "title": "Human",
      "type": "array"
    },
    "technical": {
      "description": "List of technical skills",
      "items": {
        "$ref": "#/components/schemas/CoreSkillItemMessageData"
      },
      "title": "Technical",
      "type": "array"
    }
  },
  "title": "CoreSkillsMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/CoreSkillItemMessageData.

CreateObjectiveMessageData (schemas)

{
  "description": "Validate and serialize create objective message data.",
  "properties": {
    "managerUserId": {
      "default": "",
      "description": "The user ID of the manager",
      "example": "3f84e745-763c-491e-9338-6d97f1358d41",
      "title": "Manageruserid",
      "type": "string"
    },
    "objectiveId": {
      "default": "",
      "description": "The ID of the objective",
      "example": "41d9311f-bdaa-4c5d-90cd-73ddff09ad64",
      "title": "Objectiveid",
      "type": "string"
    },
    "proposedSkills": {
      "description": "List of proposed skills for the objective",
      "example": [
        {
          "skillId": "41d9311f-bdaa-4c5d-90cd-73ddff09ad64",
          "skillTitle": "Data Science"
        }
      ],
      "items": {
        "$ref": "#/components/schemas/SkillMessageData"
      },
      "title": "Proposedskills",
      "type": "array"
    },
    "selectedSkills": {
      "description": "List of selected skills for the objective",
      "example": [
        {
          "skillId": "41d9311f-bdaa-4c5d-90cd-73ddff09ad64",
          "skillTitle": "Data Science"
        }
      ],
      "items": {
        "$ref": "#/components/schemas/SkillMessageData"
      },
      "title": "Selectedskills",
      "type": "array"
    },
    "shareToManager": {
      "default": false,
      "description": "Flag indicating if the objective should be shared with the manager",
      "example": true,
      "title": "Sharetomanager",
      "type": "boolean"
    },
    "targetDate": {
      "default": "",
      "description": "The target date for the objective",
      "example": "2025-04-08T00:00:00Z",
      "title": "Targetdate",
      "type": "string"
    },
    "title": {
      "description": "The title of the objective",
      "example": "Improve Data Science Skills",
      "title": "Title",
      "type": "string"
    }
  },
  "required": [
    "title"
  ],
  "title": "CreateObjectiveMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/SkillMessageData.

CreateObjectiveOutputMessage (schemas)

{
  "description": "Model create objective output message state.",
  "example": {
    "data": {
      "managerUserId": "f31b6da3-2f43-45f3-b8eb-65a5f0ded46f",
      "objectiveId": "e31b6da3-2f43-45f3-b8eb-65a5f0ded46f",
      "proposedSkills": [
        {
          "skillId": "06aee287-a570-438a-8e3f-7f48ce41d05d",
          "skillTitle": "Data Analysis"
        }
      ],
      "selectedSkills": [],
      "shareToManager": false,
      "targetDate": "2025-05-15T16:00:26+02:00",
      "title": "I want to develop my data analysis skills"
    },
    "locale": "en",
    "message": "",
    "messageApplicationId": "",
    "sender": "bot-chat",
    "type": "create_objective",
    "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994",
    "userConversationId": "33056271-19d7-403f-86e2-ee2a97b9f4ce"
  },
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CreateObjectiveMessageData"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?",
      "title": "Message",
      "type": "string"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "type": {
      "const": "create_objective",
      "default": "create_objective",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender",
    "data"
  ],
  "title": "CreateObjectiveOutputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/CreateObjectiveMessageData, components/schemas/SenderType.

EvaluationCriterionData (schemas)

{
  "description": "Validate and serialize evaluation criterion data.",
  "properties": {
    "criterion": {
      "description": "Name of the criterion",
      "title": "Criterion",
      "type": "string"
    },
    "description": {
      "description": "Description of the criterion",
      "title": "Description",
      "type": "string"
    },
    "weight": {
      "default": 0.0,
      "description": "Weight of the criterion",
      "title": "Weight",
      "type": "number"
    }
  },
  "required": [
    "criterion",
    "description"
  ],
  "title": "EvaluationCriterionData",
  "type": "object"
}

EventBase (schemas)

{
  "additionalProperties": false,
  "description": "Canonical persisted feedback event.",
  "examples": [
    {
      "metadata": {
        "answer": "Start with a course on project planning and practice with a small project.",
        "messageId": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
        "query": "How can I improve my project management skills?"
      },
      "source": "Web",
      "type": "thumb_up_message",
      "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "userConversationId": "33056271-19d7-403f-86e2-ee2a97b9f4ce"
    }
  ],
  "properties": {
    "createdAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Createdat"
    },
    "metadata": {
      "additionalProperties": true,
      "title": "Metadata",
      "type": "object"
    },
    "sessionId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sessionid"
    },
    "source": {
      "$ref": "#/components/schemas/EventSource",
      "default": "Web"
    },
    "type": {
      "$ref": "#/components/schemas/EventType",
      "description": "Type of the event",
      "example": "thumb_up_message"
    },
    "updatedAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Updatedat"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid"
    }
  },
  "required": [
    "userApplicationId",
    "type"
  ],
  "title": "EventBase",
  "type": "object"
}

Referenced definitions: components/schemas/EventSource, components/schemas/EventType.

EventCreated (schemas)

{
  "additionalProperties": false,
  "description": "Model event created state.",
  "examples": [
    {
      "id": "507f1f77bcf86cd799439011",
      "metadata": {
        "answer": "Start with a course on project planning and practice with a small project.",
        "messageId": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
        "query": "How can I improve my project management skills?"
      },
      "source": "Web",
      "type": "thumb_up_message",
      "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "userConversationId": "33056271-19d7-403f-86e2-ee2a97b9f4ce"
    }
  ],
  "properties": {
    "createdAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Createdat"
    },
    "id": {
      "description": "MongoDB event identifier",
      "title": "Id",
      "type": "string"
    },
    "metadata": {
      "additionalProperties": true,
      "title": "Metadata",
      "type": "object"
    },
    "sessionId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sessionid"
    },
    "source": {
      "$ref": "#/components/schemas/EventSource",
      "default": "Web"
    },
    "type": {
      "$ref": "#/components/schemas/EventType",
      "description": "Type of the event",
      "example": "thumb_up_message"
    },
    "updatedAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Updatedat"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid"
    }
  },
  "required": [
    "userApplicationId",
    "type",
    "id"
  ],
  "title": "EventCreated",
  "type": "object"
}

Referenced definitions: components/schemas/EventSource, components/schemas/EventType.

EventFeedbackStateMetadata (schemas)

{
  "additionalProperties": false,
  "description": "Validate and serialize event feedback state metadata data.",
  "properties": {
    "answer": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Answer"
    },
    "contentId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Contentid"
    },
    "feedbackDuration": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Feedbackduration"
    },
    "feedbackFormat": {
      "items": {
        "type": "string"
      },
      "title": "Feedbackformat",
      "type": "array"
    },
    "feedbackLevel": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Feedbacklevel"
    },
    "feedbackText": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Feedbacktext"
    },
    "feedbackTheme": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Feedbacktheme"
    },
    "hint": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Hint"
    },
    "messageId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Messageid"
    },
    "query": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Query"
    },
    "simulationId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Simulationid"
    },
    "tools": {
      "items": {
        "type": "string"
      },
      "title": "Tools",
      "type": "array"
    }
  },
  "title": "EventFeedbackStateMetadata",
  "type": "object"
}

EventFeedbackStateRequest (schemas)

{
  "additionalProperties": false,
  "description": "Set, switch or clear the current feedback for one target.",
  "examples": [
    {
      "feedback": "positive",
      "metadata": {
        "answer": "Start with a course on project planning and practice with a small project.",
        "messageId": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
        "query": "How can I improve my project management skills?"
      },
      "source": "Web",
      "target": "message",
      "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "userConversationId": "33056271-19d7-403f-86e2-ee2a97b9f4ce"
    }
  ],
  "properties": {
    "createdAt": {
      "anyOf": [
        {
          "format": "date-time",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Createdat"
    },
    "feedback": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/FeedbackState"
        },
        {
          "type": "null"
        }
      ],
      "description": "Null clears the current feedback state."
    },
    "metadata": {
      "$ref": "#/components/schemas/EventFeedbackStateMetadata"
    },
    "sessionId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sessionid"
    },
    "source": {
      "$ref": "#/components/schemas/EventSource",
      "default": "Web"
    },
    "target": {
      "$ref": "#/components/schemas/FeedbackTarget"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "target"
  ],
  "title": "EventFeedbackStateRequest",
  "type": "object"
}

Referenced definitions: components/schemas/EventFeedbackStateMetadata, components/schemas/EventSource, components/schemas/FeedbackState, components/schemas/FeedbackTarget.

EventFeedbackStateResponse (schemas)

{
  "description": "Validate and serialize event feedback state response data.",
  "properties": {
    "contentId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Contentid"
    },
    "feedbackState": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/FeedbackState"
        },
        {
          "type": "null"
        }
      ]
    },
    "feedbackType": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/EventType"
        },
        {
          "type": "null"
        }
      ]
    },
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Id"
    },
    "messageId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Messageid"
    }
  },
  "title": "EventFeedbackStateResponse",
  "type": "object"
}

Referenced definitions: components/schemas/EventType, components/schemas/FeedbackState.

EventFeedbackUpdate (schemas)

{
  "additionalProperties": false,
  "description": "Structured details added after the initial thumb click.",
  "examples": [
    {
      "feedbackLevel": "beginner",
      "feedbackText": "The suggested training is too advanced for my current level."
    }
  ],
  "properties": {
    "feedbackDuration": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Feedbackduration"
    },
    "feedbackFormat": {
      "items": {
        "type": "string"
      },
      "title": "Feedbackformat",
      "type": "array"
    },
    "feedbackLevel": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Feedbacklevel"
    },
    "feedbackText": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Feedbacktext"
    },
    "feedbackTheme": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Feedbacktheme"
    }
  },
  "title": "EventFeedbackUpdate",
  "type": "object"
}

EventSource (schemas)

{
  "description": "Enumerate supported event source values.",
  "enum": [
    "Web",
    "Agent",
    "TeamsApp"
  ],
  "title": "EventSource",
  "type": "string"
}

EventType (schemas)

{
  "description": "The only event types persisted by AI Hub.",
  "enum": [
    "thumb_up_message",
    "thumb_down_message",
    "thumb_up_learning_content",
    "thumb_down_learning_content",
    "thumb_up_simulation",
    "thumb_down_simulation",
    "thumb_up_simulation_context",
    "thumb_down_simulation_context"
  ],
  "title": "EventType",
  "type": "string"
}

FeedbackState (schemas)

{
  "description": "Enumerate supported feedback state values.",
  "enum": [
    "positive",
    "negative",
    "none"
  ],
  "title": "FeedbackState",
  "type": "string"
}

FeedbackTarget (schemas)

{
  "description": "Enumerate supported feedback target values.",
  "enum": [
    "message",
    "learning_content",
    "simulation",
    "simulation_context"
  ],
  "title": "FeedbackTarget",
  "type": "string"
}

FrontendConfigUpdate (schemas)

{
  "description": "Validate and serialize frontend config update data.",
  "examples": [
    {
      "agent_name": "Learning assistant",
      "logo_dark_mode": "https://assets.example.com/logo-dark.svg",
      "logo_light_mode": "https://assets.example.com/logo-light.svg",
      "main_color": "#2563EB",
      "show_app_name_on_splash": true,
      "user_id": "101"
    }
  ],
  "properties": {
    "agent_name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Agent Name"
    },
    "apple_icon": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Apple Icon"
    },
    "default_layout": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Default Layout"
    },
    "favicon_icon": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Favicon Icon"
    },
    "logo_dark_mode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Logo Dark Mode"
    },
    "logo_light_mode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Logo Light Mode"
    },
    "main_color": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Main Color"
    },
    "pwa_icon": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Pwa Icon"
    },
    "pwa_icon_512": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Pwa Icon 512"
    },
    "show_app_name_on_splash": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "title": "Show App Name On Splash"
    },
    "user_id": {
      "title": "User Id",
      "type": "string"
    }
  },
  "required": [
    "user_id"
  ],
  "title": "FrontendConfigUpdate",
  "type": "object"
}

HTTPValidationError (schemas)

{
  "properties": {
    "detail": {
      "items": {
        "$ref": "#/components/schemas/ValidationError"
      },
      "title": "Detail",
      "type": "array"
    }
  },
  "title": "HTTPValidationError",
  "type": "object"
}

Referenced definitions: components/schemas/ValidationError.

HistoryEntry (schemas)

{
  "additionalProperties": true,
  "description": "Represent one user-and-bot message pair.",
  "properties": {
    "bot": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/MessageData"
        },
        {
          "type": "null"
        }
      ],
      "description": "Bot response data"
    },
    "createdAt": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Creation timestamp (ISO 8601 format)",
      "example": "2025-08-19T09:48:23.135044",
      "title": "Createdat"
    },
    "isDeleted": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "description": "Indicates if the message has been deleted",
      "example": false,
      "title": "Isdeleted"
    },
    "processTime": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "description": "Processing time in seconds",
      "example": 0.558904,
      "title": "Processtime"
    },
    "user": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/MessageData"
        },
        {
          "type": "null"
        }
      ],
      "description": "User message data"
    },
    "userApplicationId": {
      "description": "Internal unique identifier for the user (userApplicationId)",
      "example": "8f052d5a-08c7-462d-a1b6-cb6dd14e54c2",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the conversation (userConversationId)",
      "example": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId"
  ],
  "title": "HistoryEntry",
  "type": "object"
}

Referenced definitions: components/schemas/MessageData.

HistoryResponse (schemas)

{
  "description": "Represent a paginated chat-message response.",
  "examples": [
    {
      "current_url": "/api/v1/history/messages?userApplicationId=8f052d5a-08c7-462d-a1b6-cb6dd14e54c2&userConversationId=5e0208f1-8ccd-42b9-addb-afa6d185d0f7&page=1&pageSize=10",
      "first_url": "/api/v1/history/messages?userApplicationId=8f052d5a-08c7-462d-a1b6-cb6dd14e54c2&userConversationId=5e0208f1-8ccd-42b9-addb-afa6d185d0f7&page=1&pageSize=10",
      "has_more": true,
      "last_url": "/api/v1/history/messages?userApplicationId=8f052d5a-08c7-462d-a1b6-cb6dd14e54c2&userConversationId=5e0208f1-8ccd-42b9-addb-afa6d185d0f7&page=3&pageSize=10",
      "messages": [
        {
          "bot": {
            "data": {},
            "locale": "en",
            "message": "Hello! How can I help you today?",
            "messageApplicationId": "",
            "sender": "bot-chat",
            "type": "text",
            "userApplicationId": "8f052d5a-08c7-462d-a1b6-cb6dd14e54c2",
            "userConversationId": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7"
          },
          "createdAt": "2025-08-19T09:48:23.135044",
          "isDeleted": false,
          "processTime": 0.558904,
          "user": {
            "data": {},
            "locale": "",
            "message": "Hi",
            "messageApplicationId": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
            "sender": "user",
            "type": "text",
            "userApplicationId": "8f052d5a-08c7-462d-a1b6-cb6dd14e54c2",
            "userConversationId": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7"
          },
          "userApplicationId": "8f052d5a-08c7-462d-a1b6-cb6dd14e54c2",
          "userConversationId": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7"
        }
      ],
      "next_url": "/api/v1/history/messages?userApplicationId=8f052d5a-08c7-462d-a1b6-cb6dd14e54c2&userConversationId=5e0208f1-8ccd-42b9-addb-afa6d185d0f7&page=2&pageSize=10",
      "page": 1,
      "page_size": 10,
      "total": 25,
      "total_pages": 3
    }
  ],
  "properties": {
    "current_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "URL for the current page",
      "example": "/history/messages?userApplicationId=xxx&userConversationId=yyy&page=1&pageSize=10",
      "title": "Current Url"
    },
    "first_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "URL for the first page",
      "example": "/history/messages?userApplicationId=xxx&userConversationId=yyy&page=1&pageSize=10",
      "title": "First Url"
    },
    "has_more": {
      "description": "Whether there are more messages to load",
      "example": true,
      "title": "Has More",
      "type": "boolean"
    },
    "last_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "URL for the last page",
      "example": "/history/messages?userApplicationId=xxx&userConversationId=yyy&page=3&pageSize=10",
      "title": "Last Url"
    },
    "messages": {
      "description": "List of chat message log entries",
      "items": {
        "$ref": "#/components/schemas/HistoryEntry"
      },
      "title": "Messages",
      "type": "array"
    },
    "next_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "URL for the next page (null if no more pages)",
      "example": "/history/messages?userApplicationId=xxx&userConversationId=yyy&page=2&pageSize=10",
      "title": "Next Url"
    },
    "page": {
      "description": "Page number for pagination (1-indexed)",
      "example": 1,
      "title": "Page",
      "type": "integer"
    },
    "page_size": {
      "description": "Number of message pairs per page (default: 10)",
      "example": 10,
      "title": "Page Size",
      "type": "integer"
    },
    "previous_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "URL for the previous page (null if on first page)",
      "title": "Previous Url"
    },
    "title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Title of the conversation",
      "example": "My career discussion",
      "title": "Title"
    },
    "total": {
      "description": "Total number of message pairs available",
      "example": 25,
      "title": "Total",
      "type": "integer"
    },
    "total_pages": {
      "description": "Total number of pages available",
      "example": 3,
      "title": "Total Pages",
      "type": "integer"
    }
  },
  "required": [
    "messages",
    "total",
    "page",
    "page_size",
    "total_pages",
    "has_more"
  ],
  "title": "HistoryResponse",
  "type": "object"
}

Referenced definitions: components/schemas/HistoryEntry.

InteractionAnswer (schemas)

{
  "additionalProperties": false,
  "description": "Answer or skip one question without supplying its text or business target.",
  "properties": {
    "action": {
      "enum": [
        "answer",
        "skip"
      ],
      "title": "Action",
      "type": "string"
    },
    "message": {
      "$ref": "#/components/schemas/ChatUserText",
      "default": ""
    },
    "questionId": {
      "maxLength": 128,
      "minLength": 1,
      "title": "Questionid",
      "type": "string"
    },
    "selectedOptionIds": {
      "items": {
        "maxLength": 128,
        "minLength": 1,
        "type": "string"
      },
      "maxItems": 100,
      "title": "Selectedoptionids",
      "type": "array"
    }
  },
  "required": [
    "questionId",
    "action"
  ],
  "title": "InteractionAnswer",
  "type": "object"
}

Referenced definitions: components/schemas/ChatUserText.

InteractionData (schemas)

{
  "additionalProperties": false,
  "description": "Identify one pending chatbot interaction and the user's decision.",
  "properties": {
    "action": {
      "enum": [
        "answer",
        "cancel"
      ],
      "title": "Action",
      "type": "string"
    },
    "answers": {
      "items": {
        "$ref": "#/components/schemas/InteractionAnswer"
      },
      "maxItems": 10,
      "title": "Answers",
      "type": "array"
    },
    "interactionId": {
      "maxLength": 128,
      "minLength": 1,
      "title": "Interactionid",
      "type": "string"
    }
  },
  "required": [
    "action",
    "interactionId"
  ],
  "title": "InteractionData",
  "type": "object"
}

Referenced definitions: components/schemas/InteractionAnswer.

InteractionInputMessage (schemas)

{
  "additionalProperties": false,
  "description": "Resume or cancel a persisted chatbot interaction.",
  "example": {
    "data": {
      "action": "answer",
      "answers": [
        {
          "action": "answer",
          "message": "I am a beginner.",
          "questionId": "q1"
        },
        {
          "action": "answer",
          "questionId": "q2",
          "selectedOptionIds": [
            "o1",
            "o2"
          ]
        }
      ],
      "interactionId": "interaction-123"
    },
    "locale": "en",
    "message": "",
    "messageApplicationId": "message-456",
    "sender": "user",
    "source": "Web",
    "type": "interaction",
    "userApplicationId": "user-123",
    "userConversationId": "conversation-123"
  },
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InteractionData"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "$ref": "#/components/schemas/ChatUserText",
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "source": {
      "$ref": "#/components/schemas/ChatSource",
      "default": "Web",
      "description": "Application source of the chat request",
      "example": "Web"
    },
    "type": {
      "const": "interaction",
      "default": "interaction",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender",
    "data"
  ],
  "title": "InteractionInputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/ChatSource, components/schemas/ChatUserText, components/schemas/InteractionData, components/schemas/SenderType.

InteractionInputType (schemas)

{
  "enum": [
    "text",
    "single_select",
    "multi_select"
  ],
  "type": "string"
}

InteractionOption (schemas)

{
  "additionalProperties": false,
  "description": "Expose a question-local identifier without a business object's identity.",
  "properties": {
    "id": {
      "maxLength": 128,
      "minLength": 1,
      "title": "Id",
      "type": "string"
    },
    "label": {
      "minLength": 1,
      "title": "Label",
      "type": "string"
    }
  },
  "required": [
    "id",
    "label"
  ],
  "title": "InteractionOption",
  "type": "object"
}

InteractionOutputData (schemas)

{
  "description": "Expose an opaque resume identifier without checkpoint internals.",
  "properties": {
    "allowedActions": {
      "description": "Actions available at every question. Skip advances one question; cancel ends the request.",
      "items": {
        "enum": [
          "answer",
          "skip",
          "cancel"
        ],
        "type": "string"
      },
      "maxItems": 3,
      "minItems": 3,
      "title": "Allowedactions",
      "type": "array"
    },
    "interactionId": {
      "description": "Identifier required to answer, skip or cancel.",
      "title": "Interactionid",
      "type": "string"
    },
    "questions": {
      "description": "Ordered text, single-select or multi-select questions displayed one at a time; each permits answer, skip, or whole-request cancellation.",
      "items": {
        "$ref": "#/components/schemas/InteractionQuestion"
      },
      "maxItems": 10,
      "minItems": 1,
      "title": "Questions",
      "type": "array"
    }
  },
  "required": [
    "interactionId",
    "questions",
    "allowedActions"
  ],
  "title": "InteractionOutputData",
  "type": "object"
}

Referenced definitions: components/schemas/InteractionQuestion.

InteractionOutputMessage (schemas)

{
  "description": "Request user input while a chatbot workflow is checkpointed.",
  "example": {
    "data": {
      "allowedActions": [
        "answer",
        "skip",
        "cancel"
      ],
      "interactionId": "interaction-123",
      "questions": [
        {
          "id": "q1",
          "message": "What is your current SQL level?"
        },
        {
          "allowFreeText": true,
          "id": "q2",
          "inputType": "multi_select",
          "message": "Which topics would you like to study?",
          "options": [
            {
              "id": "o1",
              "label": "SQL queries"
            },
            {
              "id": "o2",
              "label": "Python APIs"
            }
          ]
        }
      ]
    },
    "locale": "en",
    "message": "Please clarify your request.",
    "messageApplicationId": "response-123",
    "sender": "bot-chat",
    "type": "interaction",
    "userApplicationId": "user-123",
    "userConversationId": "conversation-123"
  },
  "properties": {
    "data": {
      "$ref": "#/components/schemas/InteractionOutputData"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?",
      "title": "Message",
      "type": "string"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "type": {
      "const": "interaction",
      "default": "interaction",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender",
    "data"
  ],
  "title": "InteractionOutputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/InteractionOutputData, components/schemas/SenderType.

InteractionQuestion (schemas)

{
  "additionalProperties": false,
  "description": "Identify one server-owned question in its displayed order.",
  "properties": {
    "allowFreeText": {
      "default": false,
      "title": "Allowfreetext",
      "type": "boolean"
    },
    "id": {
      "maxLength": 128,
      "minLength": 1,
      "title": "Id",
      "type": "string"
    },
    "inputType": {
      "$ref": "#/components/schemas/InteractionInputType",
      "default": "text"
    },
    "message": {
      "minLength": 1,
      "title": "Message",
      "type": "string"
    },
    "options": {
      "items": {
        "$ref": "#/components/schemas/InteractionOption"
      },
      "maxItems": 100,
      "title": "Options",
      "type": "array"
    }
  },
  "required": [
    "id",
    "message"
  ],
  "title": "InteractionQuestion",
  "type": "object"
}

Referenced definitions: components/schemas/InteractionInputType, components/schemas/InteractionOption.

KeyMoment (schemas)

{
  "description": "A key moment from the simulation with feedback.",
  "properties": {
    "feedback": {
      "description": "Feedback on what was good or could be improved",
      "title": "Feedback",
      "type": "string"
    },
    "moment": {
      "description": "Quote or description of the key moment",
      "title": "Moment",
      "type": "string"
    }
  },
  "required": [
    "moment",
    "feedback"
  ],
  "title": "KeyMoment",
  "type": "object"
}

MessageData (schemas)

{
  "additionalProperties": true,
  "description": "Represent a user or bot message.",
  "properties": {
    "data": {
      "additionalProperties": true,
      "description": "Additional data associated with the message",
      "example": {},
      "title": "Data",
      "type": "object"
    },
    "locale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Locale of the message",
      "example": "en",
      "title": "Locale"
    },
    "message": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "The message content",
      "example": "Hi",
      "title": "Message"
    },
    "messageApplicationId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Message application ID",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid"
    },
    "sender": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Sender type (user or bot-chat)",
      "example": "user",
      "title": "Sender"
    },
    "source": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Application source of the chat request",
      "example": "Web",
      "title": "Source"
    },
    "type": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Type of message",
      "example": "text",
      "title": "Type"
    },
    "userApplicationId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "User application ID",
      "example": "8f052d5a-08c7-462d-a1b6-cb6dd14e54c2",
      "title": "Userapplicationid"
    },
    "userConversationId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "User conversation ID",
      "example": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7",
      "title": "Userconversationid"
    }
  },
  "title": "MessageData",
  "type": "object"
}

OpportunityMessageData (schemas)

{
  "description": "Validate and serialize opportunity message data.",
  "properties": {
    "expressedInterest": {
      "description": "Flag indicating if the user has expressed interest in the opportunity",
      "example": false,
      "title": "Expressedinterest",
      "type": "boolean"
    },
    "isBookmarked": {
      "description": "Flag indicating if the opportunity is bookmarked",
      "example": true,
      "title": "Isbookmarked",
      "type": "boolean"
    },
    "isEngagementConfidential": {
      "default": false,
      "description": "Is engagement confidential",
      "example": false,
      "title": "Isengagementconfidential",
      "type": "boolean"
    },
    "opportunityId": {
      "description": "The ID of the opportunity",
      "example": "e31b6da3-2f43-45f3-b8eb-65a5f0ded46f",
      "title": "Opportunityid",
      "type": "string"
    },
    "opportunityKey": {
      "description": "The ID of the opportunity",
      "example": "e31b6da3-2f43-45f3-b8eb-65a5f0ded46f",
      "title": "Opportunitykey",
      "type": "string"
    },
    "opportunityLocation": {
      "description": "Location of the opportunity",
      "example": "New York, NY",
      "title": "Opportunitylocation",
      "type": "string"
    },
    "opportunityStaffLevel": {
      "description": "Staff level required for the opportunity",
      "example": "Intermediate",
      "title": "Opportunitystafflevel",
      "type": "string"
    },
    "opportunityStartDate": {
      "description": "Start date of the opportunity",
      "example": "2025-01-01T00:00:00Z",
      "title": "Opportunitystartdate",
      "type": "string"
    },
    "opportunityTitle": {
      "description": "Title of the opportunity",
      "example": "Data Science Project",
      "title": "Opportunitytitle",
      "type": "string"
    },
    "opportunityTotalHours": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "description": "Total hours required for the opportunity",
      "example": 40,
      "title": "Opportunitytotalhours"
    },
    "opportunityType": {
      "description": "Type of the opportunity",
      "example": "Project",
      "title": "Opportunitytype",
      "type": "string"
    },
    "opportunityWaysOfWorking": {
      "description": "Ways of working for the opportunity",
      "example": "Hybrid",
      "title": "Opportunitywaysofworking",
      "type": "string"
    }
  },
  "required": [
    "opportunityKey",
    "opportunityId",
    "opportunityTitle",
    "opportunityType",
    "opportunityLocation",
    "opportunityWaysOfWorking",
    "opportunityStaffLevel",
    "opportunityStartDate",
    "isBookmarked",
    "expressedInterest"
  ],
  "title": "OpportunityMessageData",
  "type": "object"
}

OpportunityWithDebugMessageData (schemas)

{
  "description": "Model opportunity with debug message data state.",
  "properties": {
    "expressedInterest": {
      "description": "Flag indicating if the user has expressed interest in the opportunity",
      "example": false,
      "title": "Expressedinterest",
      "type": "boolean"
    },
    "found_in_inferred": {
      "default": false,
      "description": "Whether opportunity was found in InferredTitle vector search",
      "example": false,
      "title": "Found In Inferred",
      "type": "boolean"
    },
    "found_in_main": {
      "default": false,
      "description": "Whether opportunity was found in standard vector search",
      "example": true,
      "title": "Found In Main",
      "type": "boolean"
    },
    "isBookmarked": {
      "description": "Flag indicating if the opportunity is bookmarked",
      "example": true,
      "title": "Isbookmarked",
      "type": "boolean"
    },
    "isEngagementConfidential": {
      "default": false,
      "description": "Is engagement confidential",
      "example": false,
      "title": "Isengagementconfidential",
      "type": "boolean"
    },
    "opportunityId": {
      "description": "The ID of the opportunity",
      "example": "e31b6da3-2f43-45f3-b8eb-65a5f0ded46f",
      "title": "Opportunityid",
      "type": "string"
    },
    "opportunityKey": {
      "description": "The ID of the opportunity",
      "example": "e31b6da3-2f43-45f3-b8eb-65a5f0ded46f",
      "title": "Opportunitykey",
      "type": "string"
    },
    "opportunityLocation": {
      "description": "Location of the opportunity",
      "example": "New York, NY",
      "title": "Opportunitylocation",
      "type": "string"
    },
    "opportunityStaffLevel": {
      "description": "Staff level required for the opportunity",
      "example": "Intermediate",
      "title": "Opportunitystafflevel",
      "type": "string"
    },
    "opportunityStartDate": {
      "description": "Start date of the opportunity",
      "example": "2025-01-01T00:00:00Z",
      "title": "Opportunitystartdate",
      "type": "string"
    },
    "opportunityTitle": {
      "description": "Title of the opportunity",
      "example": "Data Science Project",
      "title": "Opportunitytitle",
      "type": "string"
    },
    "opportunityTotalHours": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "description": "Total hours required for the opportunity",
      "example": 40,
      "title": "Opportunitytotalhours"
    },
    "opportunityType": {
      "description": "Type of the opportunity",
      "example": "Project",
      "title": "Opportunitytype",
      "type": "string"
    },
    "opportunityWaysOfWorking": {
      "description": "Ways of working for the opportunity",
      "example": "Hybrid",
      "title": "Opportunitywaysofworking",
      "type": "string"
    },
    "score_v_search_inferred": {
      "default": 0.0,
      "description": "Vector search score from InferredTitle embeddings search",
      "example": 0.9567,
      "title": "Score V Search Inferred",
      "type": "number"
    },
    "score_v_search_main": {
      "default": 0.0,
      "description": "Vector search score from standard search (title + description embeddings)",
      "example": 0.9456,
      "title": "Score V Search Main",
      "type": "number"
    },
    "userProfileMatchingScore": {
      "default": 0.0,
      "description": "Score representing how well the opportunity matches the user's profile",
      "example": 0.8765,
      "title": "Userprofilematchingscore",
      "type": "number"
    },
    "userProfileMatchingSkillsScore": {
      "default": 0,
      "description": "Number of matching skills between user profile and opportunity",
      "example": 3,
      "title": "Userprofilematchingskillsscore",
      "type": "integer"
    },
    "userProfileMotivationScore": {
      "default": 0.0,
      "description": "Score representing how well the opportunity aligns with user's motivations",
      "example": 0.789,
      "title": "Userprofilemotivationscore",
      "type": "number"
    }
  },
  "required": [
    "opportunityKey",
    "opportunityId",
    "opportunityTitle",
    "opportunityType",
    "opportunityLocation",
    "opportunityWaysOfWorking",
    "opportunityStaffLevel",
    "opportunityStartDate",
    "isBookmarked",
    "expressedInterest"
  ],
  "title": "OpportunityWithDebugMessageData",
  "type": "object"
}

PrioritySkillGapMessageData (schemas)

{
  "description": "Validate and serialize priority skill gap message data.",
  "properties": {
    "action_plan": {
      "description": "Action plan split by periods",
      "items": {
        "$ref": "#/components/schemas/ActionPlanPeriodMessageData"
      },
      "title": "Action Plan",
      "type": "array"
    },
    "id": {
      "description": "Unique ID for the skill gap",
      "example": "uuid",
      "title": "Id",
      "type": "string"
    },
    "priority_level": {
      "description": "Priority level (High, Medium, Low)",
      "example": "High",
      "title": "Priority Level",
      "type": "string"
    },
    "rationale": {
      "description": "Rationale for the skill gap",
      "example": "Critical for leadership roles...",
      "title": "Rationale",
      "type": "string"
    },
    "title": {
      "description": "Title of the skill gap",
      "example": "Strategic Thinking",
      "title": "Title",
      "type": "string"
    },
    "trainings_available_count": {
      "default": 0,
      "description": "Number of available trainings",
      "example": 3,
      "title": "Trainings Available Count",
      "type": "integer"
    }
  },
  "required": [
    "id",
    "title",
    "rationale",
    "priority_level"
  ],
  "title": "PrioritySkillGapMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/ActionPlanPeriodMessageData.

PromptSuggestion (schemas)

{
  "description": "Validate and serialize prompt suggestion data.",
  "properties": {
    "sentence": {
      "description": "Short prompt written as a user question or request",
      "example": "What should I do next?",
      "title": "Sentence",
      "type": "string"
    },
    "title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Short tag title for the suggestion",
      "example": "Next step",
      "title": "Title"
    }
  },
  "required": [
    "sentence"
  ],
  "title": "PromptSuggestion",
  "type": "object"
}

PromptSuggestionsInput (schemas)

{
  "description": "Validate and serialize prompt suggestions input data.",
  "examples": [
    {
      "category": "Find a training",
      "locale": "en",
      "source": "Web",
      "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "userConversationId": "33056271-19d7-403f-86e2-ee2a97b9f4ce"
    }
  ],
  "properties": {
    "category": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Optional category selected in the UI",
      "example": "Find a training",
      "title": "Category"
    },
    "locale": {
      "default": "en",
      "description": "Language locale for the generated suggestions",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "source": {
      "$ref": "#/components/schemas/ChatSource",
      "default": "Web",
      "description": "Application source of the chat request",
      "example": "Web"
    },
    "userApplicationId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid"
    },
    "userConversationId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Optional conversation identifier to scope suggestions to one conversation.",
      "example": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7",
      "title": "Userconversationid"
    },
    "userId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Unique identifier for the user",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userid"
    }
  },
  "title": "PromptSuggestionsInput",
  "type": "object"
}

Referenced definitions: components/schemas/ChatSource.

PromptSuggestionsOutput (schemas)

{
  "description": "Validate and serialize prompt suggestions output data.",
  "properties": {
    "prompts": {
      "description": "List of suggested prompts",
      "items": {
        "$ref": "#/components/schemas/PromptSuggestion"
      },
      "title": "Prompts",
      "type": "array"
    }
  },
  "required": [
    "prompts"
  ],
  "title": "PromptSuggestionsOutput",
  "type": "object"
}

Referenced definitions: components/schemas/PromptSuggestion.

SenderType (schemas)

{
  "description": "Enumerate supported sender types.",
  "enum": [
    "user",
    "app",
    "bot-chat"
  ],
  "title": "SenderType",
  "type": "string"
}

SimulationAnalysisOutput (schemas)

{
  "description": "Output schema for the simulation analysis endpoint.",
  "example": {
    "actionable_tips": [
      "Before your next 1:1, prepare 2-3 specific questions about your development",
      "Practice the 'repeat back' technique to show active listening",
      "Keep a list of concrete achievements to reference in discussions"
    ],
    "areas_for_improvement": [
      "Could ask more clarifying questions when receiving feedback",
      "Consider providing specific examples when discussing achievements"
    ],
    "conversationId": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7",
    "key_moments": [
      {
        "feedback": "You showed good self-awareness and could add what you learned from it",
        "moment": "When asked about challenges, provided a thoughtful response"
      }
    ],
    "overall_score": 2,
    "scores": {
      "active_listening": 2,
      "communication_clarity": 2,
      "emotional_intelligence": 2,
      "growth_mindset": 2,
      "professionalism": 3,
      "receptiveness_to_feedback": 3
    },
    "sessionId": "simulation-session-123",
    "simulation_type": "manager_feedback",
    "strengths": [
      "Excellent receptiveness to feedback - acknowledged areas for improvement",
      "Maintained professional tone throughout"
    ],
    "summary": "You demonstrated good active listening and could improve by asking clarifying questions."
  },
  "properties": {
    "actionable_tips": {
      "description": "Concrete actionable tips",
      "items": {
        "type": "string"
      },
      "title": "Actionable Tips",
      "type": "array"
    },
    "areas_for_improvement": {
      "description": "List of areas for improvement with suggestions",
      "items": {
        "type": "string"
      },
      "title": "Areas For Improvement",
      "type": "array"
    },
    "conversationId": {
      "description": "ID of the analyzed conversation",
      "title": "Conversationid",
      "type": "string"
    },
    "key_moments": {
      "description": "Key moments from the conversation with feedback",
      "items": {
        "$ref": "#/components/schemas/KeyMoment"
      },
      "title": "Key Moments",
      "type": "array"
    },
    "overall_score": {
      "description": "Overall score (1-3), or 0 if the simulation is incomplete",
      "maximum": 3.0,
      "minimum": 0.0,
      "title": "Overall Score",
      "type": "integer"
    },
    "scores": {
      "additionalProperties": {
        "anyOf": [
          {
            "type": "integer"
          },
          {
            "type": "string"
          }
        ]
      },
      "description": "Breakdown of scores by criterion (integer 1-3, or 'N/A' if not assessable)",
      "title": "Scores",
      "type": "object"
    },
    "sessionId": {
      "description": "Session identifier associated with the analyzed simulation",
      "title": "Sessionid",
      "type": "string"
    },
    "simulation_incomplete": {
      "default": false,
      "description": "True if the simulation was too short to analyze (e.g. the learner did not participate enough)",
      "title": "Simulation Incomplete",
      "type": "boolean"
    },
    "simulation_type": {
      "$ref": "#/components/schemas/SimulationType",
      "description": "Type of simulation that was analyzed"
    },
    "strengths": {
      "description": "List of strengths with examples",
      "items": {
        "type": "string"
      },
      "title": "Strengths",
      "type": "array"
    },
    "summary": {
      "description": "Brief summary of the simulation performance",
      "title": "Summary",
      "type": "string"
    }
  },
  "required": [
    "conversationId",
    "sessionId",
    "simulation_type",
    "summary",
    "overall_score",
    "scores",
    "strengths",
    "areas_for_improvement",
    "actionable_tips",
    "key_moments"
  ],
  "title": "SimulationAnalysisOutput",
  "type": "object"
}

Referenced definitions: components/schemas/KeyMoment, components/schemas/SimulationType.

SimulationAnalyzeInput (schemas)

{
  "description": "Input schema for the simulation analysis endpoint.",
  "example": {
    "conversationId": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7",
    "sessionId": "simulation-session-123"
  },
  "properties": {
    "context": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "description": "Optional context for the analysis (e.g. from suggest_simulation tool)",
      "title": "Context"
    },
    "conversation_id": {
      "description": "ID of the simulation conversation to analyze",
      "title": "Conversation Id",
      "type": "string"
    },
    "locale": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Fallback locale/language when the conversation language is uncertain",
      "example": "fr",
      "title": "Locale"
    },
    "session_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Optional session identifier override. When omitted, the stored simulation session is reused.",
      "title": "Session Id"
    },
    "source": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ChatSource"
        },
        {
          "type": "null"
        }
      ],
      "description": "Optional origin override for the analysis request. If omitted, the source stored in the conversation is reused.",
      "example": "TeamsApp"
    }
  },
  "required": [
    "conversation_id"
  ],
  "title": "SimulationAnalyzeInput",
  "type": "object"
}

Referenced definitions: components/schemas/ChatSource.

SimulationChatOutput (schemas)

{
  "description": "Output schema for the simulation chat endpoint.",
  "example": {
    "conversationId": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7",
    "is_simulation": true,
    "message": "Hello! Thanks for taking the time to meet with me. I'd like to discuss your recent performance on the client project...",
    "sessionId": "simulation-session-123",
    "simulation_type": "manager_feedback",
    "title": "Manager feedback practice-2",
    "title_simulation": "Manager feedback practice-2"
  },
  "properties": {
    "conversationId": {
      "description": "ID of the simulation conversation",
      "title": "Conversationid",
      "type": "string"
    },
    "is_simulation": {
      "default": true,
      "description": "Flag indicating this is a simulation conversation",
      "title": "Is Simulation",
      "type": "boolean"
    },
    "message": {
      "description": "Response from the simulation agent",
      "title": "Message",
      "type": "string"
    },
    "sessionId": {
      "description": "Session identifier associated with the simulation conversation",
      "title": "Sessionid",
      "type": "string"
    },
    "simulation_type": {
      "$ref": "#/components/schemas/SimulationType",
      "description": "Type of simulation"
    },
    "title": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Conversation title, including any version suffix for restarted simulations",
      "title": "Title"
    },
    "title_simulation": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Simulation title displayed in the sidebar, including any version suffix for restarted simulations",
      "title": "Title Simulation"
    }
  },
  "required": [
    "conversationId",
    "sessionId",
    "message",
    "simulation_type"
  ],
  "title": "SimulationChatOutput",
  "type": "object"
}

Referenced definitions: components/schemas/SimulationType.

SimulationContactData (schemas)

{
  "description": "Validate and serialize simulation contact data.",
  "properties": {
    "contact_id": {
      "default": "",
      "description": "Optional contact ID from disambiguation",
      "title": "Contact Id",
      "type": "string"
    },
    "description": {
      "default": "",
      "description": "Brief description of personality",
      "title": "Description",
      "type": "string"
    },
    "gender": {
      "description": "Gender of the persona (male | female)",
      "title": "Gender",
      "type": "string"
    },
    "name": {
      "description": "Name of the persona",
      "title": "Name",
      "type": "string"
    }
  },
  "required": [
    "name",
    "gender"
  ],
  "title": "SimulationContactData",
  "type": "object"
}

SimulationError (schemas)

{
  "description": "Error response for simulation endpoints.",
  "example": {
    "detail": "No simulation conversation found with ID: abc123",
    "error": "Conversation not found"
  },
  "properties": {
    "detail": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Additional error details",
      "title": "Detail"
    },
    "error": {
      "description": "Error message",
      "title": "Error",
      "type": "string"
    }
  },
  "required": [
    "error"
  ],
  "title": "SimulationError",
  "type": "object"
}

SimulationType (schemas)

{
  "description": "Types of simulation available.",
  "enum": [
    "manager_feedback",
    "peer_feedback",
    "sales_simulation",
    "interview_simulation",
    "neutral_simulation"
  ],
  "title": "SimulationType",
  "type": "string"
}

SkillMessageData (schemas)

{
  "description": "Validate and serialize skill message data.",
  "properties": {
    "skillId": {
      "description": "The ID of the skill",
      "example": "41d9311f-bdaa-4c5d-90cd-73ddff09ad64",
      "title": "Skillid",
      "type": "string"
    },
    "skillTitle": {
      "description": "The title of the skill",
      "example": "Data Science",
      "title": "Skilltitle",
      "type": "string"
    }
  },
  "required": [
    "skillId",
    "skillTitle"
  ],
  "title": "SkillMessageData",
  "type": "object"
}

SpeechToTextOutput (schemas)

{
  "description": "Validate and serialize speech to text output data.",
  "properties": {
    "transcription": {
      "description": "Transcribed text extracted from the uploaded audio file",
      "example": "Hello, I would like help preparing for my interview.",
      "title": "Transcription",
      "type": "string"
    }
  },
  "required": [
    "transcription"
  ],
  "title": "SpeechToTextOutput",
  "type": "object"
}

SuggestedObjectiveMessageData (schemas)

{
  "description": "Validate and serialize suggested objective message data.",
  "properties": {
    "description": {
      "description": "The description of the prompt",
      "example": "This is designed to help you improve your python skills by providing resources and guidance.",
      "title": "Description",
      "type": "string"
    },
    "proposedSkills": {
      "description": "List of proposed skills for the objective",
      "example": [
        {
          "skillId": "41d9311f-bdaa-4c5d-90cd-73ddff09ad64",
          "skillTitle": "Data Science"
        }
      ],
      "items": {
        "$ref": "#/components/schemas/SkillMessageData"
      },
      "title": "Proposedskills",
      "type": "array"
    },
    "targetDate": {
      "default": "",
      "description": "The target date for the objective",
      "example": "2025-04-08T00:00:00Z",
      "title": "Targetdate",
      "type": "string"
    },
    "title": {
      "description": "The title of the prompt",
      "example": "Improve Python Skills",
      "title": "Title",
      "type": "string"
    }
  },
  "required": [
    "title",
    "description"
  ],
  "title": "SuggestedObjectiveMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/SkillMessageData.

SuggestedObjectivesMessageData (schemas)

{
  "description": "Validate and serialize suggested objectives message data.",
  "properties": {
    "suggestedObjectives": {
      "description": "List of suggested objectives descriptions based on the user's data",
      "example": [
        {
          "description": "This objective is suggested based on your current skills and interests.",
          "title": "Improve Python Skills"
        }
      ],
      "items": {
        "$ref": "#/components/schemas/SuggestedObjectiveMessageData"
      },
      "title": "Suggestedobjectives",
      "type": "array"
    }
  },
  "title": "SuggestedObjectivesMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/SuggestedObjectiveMessageData.

SuggestedObjectivesOutputMessage (schemas)

{
  "description": "Model suggested objectives output message state.",
  "example": {
    "data": {
      "suggestedObjectives": [
        {
          "description": "Suggested based on your skill development goals",
          "proposedSkills": [
            {
              "skillId": "06aee287-a570-438a-8e3f-7f48ce41d05d",
              "skillTitle": "Data Analysis"
            }
          ],
          "targetDate": "2025-05-15T16:00:26+02:00",
          "title": "I want to improve my data analysis skills"
        }
      ]
    },
    "locale": "en",
    "message": "",
    "messageApplicationId": "",
    "sender": "bot-chat",
    "type": "suggested_objectives",
    "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994",
    "userConversationId": "33056271-19d7-403f-86e2-ee2a97b9f4ce"
  },
  "properties": {
    "data": {
      "$ref": "#/components/schemas/SuggestedObjectivesMessageData"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?",
      "title": "Message",
      "type": "string"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "type": {
      "const": "suggested_objectives",
      "default": "suggested_objectives",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender",
    "data"
  ],
  "title": "SuggestedObjectivesOutputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/SenderType, components/schemas/SuggestedObjectivesMessageData.

SuggestedOpportunitiesMessageData (schemas)

{
  "description": "Validate and serialize suggested opportunities message data.",
  "properties": {
    "opportunitySuggestionList": {
      "description": "List of opportunities related to the objective",
      "example": [
        {
          "opportunityId": "e31b6da3-2f43-45f3-b8eb-65a5f0ded46f",
          "opportunityKey": "e31b6da3-2f43-45f3-b8eb-65a5f0ded46f"
        }
      ],
      "items": {
        "$ref": "#/components/schemas/OpportunityMessageData"
      },
      "title": "Opportunitysuggestionlist",
      "type": "array"
    },
    "opportunitySuggestionSubtitle": {
      "description": "Subtitle of the opportunity suggestion",
      "example": "This list is focused on improving your data science skills.",
      "title": "Opportunitysuggestionsubtitle",
      "type": "string"
    },
    "opportunitySuggestionTitle": {
      "description": "Title of the opportunity suggestion",
      "example": "Opportunities to develop skills related to your objective",
      "title": "Opportunitysuggestiontitle",
      "type": "string"
    }
  },
  "required": [
    "opportunitySuggestionTitle",
    "opportunitySuggestionSubtitle"
  ],
  "title": "SuggestedOpportunitiesMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/OpportunityMessageData.

SuggestedOpportunitiesOutputMessage (schemas)

{
  "description": "Model suggested opportunities output message state.",
  "example": {
    "data": {
      "opportunitySuggestionList": [
        {
          "expressedInterest": false,
          "isBookmarked": false,
          "isEngagementConfidential": false,
          "opportunityId": "584210WDWorkday|US",
          "opportunityKey": "584210WDWorkday|US",
          "opportunityLocation": "London",
          "opportunityStaffLevel": "Intermediate",
          "opportunityStartDate": "2025-06-01T00:00:00Z",
          "opportunityTitle": "Data Science Bootcamp",
          "opportunityTotalHours": 40,
          "opportunityType": "Training",
          "opportunityWaysOfWorking": "Remote"
        }
      ],
      "opportunitySuggestionSubtitle": "This list is focused on improving your data science skills.",
      "opportunitySuggestionTitle": "Opportunities to develop skills related to your objective"
    },
    "locale": "en",
    "message": "",
    "messageApplicationId": "",
    "sender": "bot-chat",
    "type": "suggested_opportunities",
    "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994",
    "userConversationId": "33056271-19d7-403f-86e2-ee2a97b9f4ce"
  },
  "properties": {
    "data": {
      "$ref": "#/components/schemas/SuggestedOpportunitiesMessageData"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?",
      "title": "Message",
      "type": "string"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "type": {
      "const": "suggested_opportunities",
      "default": "suggested_opportunities",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender",
    "data"
  ],
  "title": "SuggestedOpportunitiesOutputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/SenderType, components/schemas/SuggestedOpportunitiesMessageData.

SuggestedOpportunitiesWithDebugMessageData (schemas)

{
  "description": "Validate and serialize suggested opportunities with debug message data.",
  "properties": {
    "opportunitySuggestionList": {
      "description": "List of opportunities related to the objective",
      "example": [
        {
          "opportunityId": "e31b6da3-2f43-45f3-b8eb-65a5f0ded46f",
          "opportunityKey": "e31b6da3-2f43-45f3-b8eb-65a5f0ded46f"
        }
      ],
      "items": {
        "$ref": "#/components/schemas/OpportunityWithDebugMessageData"
      },
      "title": "Opportunitysuggestionlist",
      "type": "array"
    },
    "opportunitySuggestionSubtitle": {
      "description": "Subtitle of the opportunity suggestion",
      "example": "This list is focused on improving your data science skills.",
      "title": "Opportunitysuggestionsubtitle",
      "type": "string"
    },
    "opportunitySuggestionTitle": {
      "description": "Title of the opportunity suggestion",
      "example": "Opportunities to develop skills related to your objective",
      "title": "Opportunitysuggestiontitle",
      "type": "string"
    }
  },
  "required": [
    "opportunitySuggestionTitle",
    "opportunitySuggestionSubtitle"
  ],
  "title": "SuggestedOpportunitiesWithDebugMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/OpportunityWithDebugMessageData.

SuggestedOpportunitiesWithDebugOutputMessage (schemas)

{
  "description": "Model suggested opportunities with debug output message state.",
  "example": {
    "data": {
      "opportunitySuggestionList": [
        {
          "expressedInterest": false,
          "isBookmarked": false,
          "isEngagementConfidential": false,
          "opportunityId": "584210WDWorkday|US",
          "opportunityKey": "584210WDWorkday|US",
          "opportunityLocation": "London",
          "opportunityStaffLevel": "Intermediate",
          "opportunityStartDate": "2025-06-01T00:00:00Z",
          "opportunityTitle": "Data Science Bootcamp",
          "opportunityTotalHours": 40,
          "opportunityType": "Training",
          "opportunityWaysOfWorking": "Remote"
        }
      ],
      "opportunitySuggestionSubtitle": "This list is focused on improving your data science skills.",
      "opportunitySuggestionTitle": "Opportunities to develop skills related to your objective"
    },
    "locale": "en",
    "message": "",
    "messageApplicationId": "",
    "sender": "bot-chat",
    "type": "suggested_opportunities_with_debug",
    "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994",
    "userConversationId": "33056271-19d7-403f-86e2-ee2a97b9f4ce"
  },
  "properties": {
    "data": {
      "$ref": "#/components/schemas/SuggestedOpportunitiesWithDebugMessageData"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?",
      "title": "Message",
      "type": "string"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "type": {
      "const": "suggested_opportunities_with_debug",
      "default": "suggested_opportunities_with_debug",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender",
    "data"
  ],
  "title": "SuggestedOpportunitiesWithDebugOutputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/SenderType, components/schemas/SuggestedOpportunitiesWithDebugMessageData.

SuggestedSimulationMessageData (schemas)

{
  "description": "Validate and serialize suggested simulation message data.",
  "properties": {
    "contact": {
      "$ref": "#/components/schemas/SimulationContactData",
      "description": "Contact/Persona details"
    },
    "context": {
      "description": "Detailed context description",
      "title": "Context",
      "type": "string"
    },
    "difficulty": {
      "description": "Difficulty level (Beginner | Intermediate | Advanced)",
      "title": "Difficulty",
      "type": "string"
    },
    "estimated_duration": {
      "description": "Estimated duration in minutes",
      "title": "Estimated Duration",
      "type": "integer"
    },
    "evaluation_criteria": {
      "description": "List of evaluation criteria",
      "items": {
        "$ref": "#/components/schemas/EvaluationCriterionData"
      },
      "title": "Evaluation Criteria",
      "type": "array"
    },
    "objectives": {
      "description": "List of numbered objectives",
      "items": {
        "type": "string"
      },
      "title": "Objectives",
      "type": "array"
    },
    "simulation_id": {
      "description": "UUID of the simulation",
      "title": "Simulation Id",
      "type": "string"
    },
    "simulation_type": {
      "default": "neutral_simulation",
      "description": "Type of simulation: manager_feedback, peer_feedback, sales_simulation, interview_simulation, neutral_simulation",
      "title": "Simulation Type",
      "type": "string"
    },
    "skills_developed": {
      "description": "List of skills developed",
      "items": {
        "$ref": "#/components/schemas/CoreSkillItemMessageData"
      },
      "title": "Skills Developed",
      "type": "array"
    },
    "title_simulation": {
      "description": "Short and explicit title",
      "title": "Title Simulation",
      "type": "string"
    },
    "voice": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Voice for the counterpart persona (e.g. ash, alloy)",
      "title": "Voice"
    }
  },
  "required": [
    "simulation_id",
    "title_simulation",
    "contact",
    "context",
    "difficulty",
    "estimated_duration"
  ],
  "title": "SuggestedSimulationMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/CoreSkillItemMessageData, components/schemas/EvaluationCriterionData, components/schemas/SimulationContactData.

SuggestedSimulationOutputMessage (schemas)

{
  "description": "Model suggested simulation output message state.",
  "example": {
    "data": {
      "contact": {
        "gender": "Male",
        "name": "John Doe"
      },
      "context": "Simulate a data science project involving Python and machine learning.",
      "difficulty": "Intermediate",
      "estimated_duration": 120,
      "evaluation_criteria": [
        {
          "criterion": "Data preprocessing techniques",
          "description": "Demonstrate understanding of data preprocessing techniques"
        },
        {
          "criterion": "Machine learning algorithms",
          "description": "Apply machine learning algorithms effectively"
        }
      ],
      "objectives": [
        "Understand data preprocessing techniques",
        "Apply machine learning algorithms"
      ],
      "simulation_id": "sim-123",
      "skills_developed": [
        {
          "skillId": "skill-123",
          "skillTitle": "Python Programming"
        },
        {
          "skillId": "skill-456",
          "skillTitle": "Machine Learning"
        }
      ],
      "title_simulation": "Data Science Simulation"
    },
    "locale": "en",
    "message": "",
    "messageApplicationId": "",
    "sender": "bot-chat",
    "type": "suggested_simulation",
    "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994",
    "userConversationId": "33056271-19d7-403f-86e2-ee2a97b9f4ce"
  },
  "properties": {
    "data": {
      "$ref": "#/components/schemas/SuggestedSimulationMessageData"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?",
      "title": "Message",
      "type": "string"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "type": {
      "const": "suggested_simulation",
      "default": "suggested_simulation",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender",
    "data"
  ],
  "title": "SuggestedSimulationOutputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/SenderType, components/schemas/SuggestedSimulationMessageData.

SuggestedTrainingsMessageData (schemas)

{
  "description": "Schema for suggested trainings response.",
  "properties": {
    "planFooterNote": {
      "default": "",
      "description": "Optional learning-plan limitation note and continuation tip",
      "title": "Planfooternote",
      "type": "string"
    },
    "rationaleContext": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/TrainingRationaleContextData"
        },
        {
          "type": "null"
        }
      ],
      "description": "Search context available for on-demand rationale requests"
    },
    "trainingSuggestionList": {
      "description": "List of suggested trainings",
      "items": {
        "$ref": "#/components/schemas/TrainingMessageData"
      },
      "title": "Trainingsuggestionlist",
      "type": "array"
    },
    "trainingSuggestionPhases": {
      "description": "Phased plan, populated for structured learning-plan requests",
      "items": {
        "$ref": "#/components/schemas/TrainingPlanPhaseMessageData"
      },
      "title": "Trainingsuggestionphases",
      "type": "array"
    },
    "trainingSuggestionSubtitle": {
      "default": "",
      "description": "Subtitle explaining the training suggestions",
      "example": "Based on your search criteria",
      "title": "Trainingsuggestionsubtitle",
      "type": "string"
    },
    "trainingSuggestionTitle": {
      "default": "",
      "description": "Title for the training suggestions section",
      "example": "Recommended Trainings",
      "title": "Trainingsuggestiontitle",
      "type": "string"
    }
  },
  "title": "SuggestedTrainingsMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/TrainingMessageData, components/schemas/TrainingPlanPhaseMessageData, components/schemas/TrainingRationaleContextData.

SuggestedTrainingsOutputMessage (schemas)

{
  "description": "Model suggested trainings output message state.",
  "example": {
    "data": {
      "trainingSuggestionList": [
        {
          "description": "Learn Python basics",
          "duration": "3600",
          "id": "training-123",
          "level": "Foundational",
          "provider": "Cornerstone",
          "skillsInformationTitle": [
            "Python",
            "Programming"
          ],
          "title": "Data Science Bootcamp"
        }
      ],
      "trainingSuggestionSubtitle": "Based on your learning preferences and objectives.",
      "trainingSuggestionTitle": "Recommended Trainings"
    },
    "locale": "en",
    "message": "",
    "messageApplicationId": "",
    "sender": "bot-chat",
    "type": "suggested_trainings",
    "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994",
    "userConversationId": "33056271-19d7-403f-86e2-ee2a97b9f4ce"
  },
  "properties": {
    "data": {
      "$ref": "#/components/schemas/SuggestedTrainingsMessageData"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?",
      "title": "Message",
      "type": "string"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "type": {
      "const": "suggested_trainings",
      "default": "suggested_trainings",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender",
    "data"
  ],
  "title": "SuggestedTrainingsOutputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/SenderType, components/schemas/SuggestedTrainingsMessageData.

TextInputMessage (schemas)

{
  "description": "Model text input message state.",
  "example": {
    "data": {},
    "locale": "",
    "message": "Hi",
    "messageApplicationId": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
    "sender": "user",
    "source": "Web",
    "type": "text",
    "userApplicationId": "8f052d5a-08c7-462d-a1b6-cb6dd14e54c2",
    "userConversationId": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7"
  },
  "properties": {
    "data": {
      "additionalProperties": {
        "type": "string"
      },
      "title": "Data",
      "type": "object"
    },
    "file": {
      "anyOf": [
        {
          "$ref": "#/components/schemas/ChatFileInput"
        },
        {
          "type": "null"
        }
      ],
      "description": "Optional file attached to the message"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "$ref": "#/components/schemas/ChatUserText",
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "source": {
      "$ref": "#/components/schemas/ChatSource",
      "default": "Web",
      "description": "Application source of the chat request",
      "example": "Web"
    },
    "type": {
      "const": "text",
      "default": "text",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender"
  ],
  "title": "TextInputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/ChatFileInput, components/schemas/ChatSource, components/schemas/ChatUserText, components/schemas/SenderType.

TextOutputMessage (schemas)

{
  "description": "Model text output message state.",
  "example": {
    "data": {},
    "locale": "en",
    "message": "Hello, how can I help you?",
    "messageApplicationId": "",
    "sender": "bot-chat",
    "type": "text",
    "userApplicationId": "8f052d5a-08c7-462d-a1b6-cb6dd14e54c2",
    "userConversationId": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7"
  },
  "properties": {
    "data": {
      "additionalProperties": {
        "type": "string"
      },
      "default": {},
      "title": "Data",
      "type": "object"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?",
      "title": "Message",
      "type": "string"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "type": {
      "const": "text",
      "default": "text",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender"
  ],
  "title": "TextOutputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/SenderType.

TextWithIdOutputMessage (schemas)

{
  "description": "Model text with ID output message state.",
  "example": {
    "data": {},
    "locale": "en",
    "message": "Hello, how can I help you?",
    "messageApplicationId": "",
    "sender": "bot-chat",
    "type": "text_with_id",
    "userApplicationId": "8f052d5a-08c7-462d-a1b6-cb6dd14e54c2",
    "userConversationId": "5e0208f1-8ccd-42b9-addb-afa6d185d0f7"
  },
  "properties": {
    "data": {
      "additionalProperties": {
        "type": "string"
      },
      "default": {},
      "title": "Data",
      "type": "object"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?",
      "title": "Message",
      "type": "string"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "type": {
      "const": "text_with_id",
      "default": "text_with_id",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender"
  ],
  "title": "TextWithIdOutputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/SenderType.

TrainingMessageData (schemas)

{
  "description": "Schema for a single training suggestion.",
  "properties": {
    "description": {
      "default": "",
      "description": "Training description",
      "example": "Learn Python basics",
      "title": "Description",
      "type": "string"
    },
    "duration": {
      "default": "",
      "description": "Training duration",
      "example": "3600",
      "title": "Duration",
      "type": "string"
    },
    "id": {
      "description": "Training ID",
      "example": "training-123",
      "title": "Id",
      "type": "string"
    },
    "level": {
      "default": "",
      "description": "Training level",
      "example": "Foundational",
      "title": "Level",
      "type": "string"
    },
    "provider": {
      "default": "",
      "description": "Training provider",
      "example": "Cornerstone",
      "title": "Provider",
      "type": "string"
    },
    "skillsInformationTitle": {
      "description": "List of skill titles covered by the training",
      "example": [
        "Python",
        "Programming"
      ],
      "items": {
        "type": "string"
      },
      "title": "Skillsinformationtitle",
      "type": "array"
    },
    "title": {
      "description": "Training title",
      "example": "Python Programming",
      "title": "Title",
      "type": "string"
    },
    "url": {
      "default": "",
      "description": "URL used to access the training",
      "example": "https://example.com/python-training",
      "title": "Url",
      "type": "string"
    }
  },
  "required": [
    "id",
    "title"
  ],
  "title": "TrainingMessageData",
  "type": "object"
}

TrainingPlanPhaseMessageData (schemas)

{
  "description": "Schema for one phase of a structured learning plan.",
  "properties": {
    "phase_description": {
      "default": "",
      "description": "Milestone, rationale, and suggested practice for the phase",
      "title": "Phase Description",
      "type": "string"
    },
    "phase_title": {
      "description": "Title of the phase, including its time range when provided",
      "example": "Month 1: Foundations",
      "title": "Phase Title",
      "type": "string"
    },
    "trainingIds": {
      "description": "Identifiers of trainings assigned to this phase",
      "items": {
        "type": "string"
      },
      "title": "Trainingids",
      "type": "array"
    }
  },
  "required": [
    "phase_title"
  ],
  "title": "TrainingPlanPhaseMessageData",
  "type": "object"
}

TrainingRationaleContextData (schemas)

{
  "description": "Search context available for on-demand learning explanations.",
  "properties": {
    "rawQuery": {
      "default": "",
      "description": "Original user request",
      "title": "Rawquery",
      "type": "string"
    },
    "resolvedQuery": {
      "default": "",
      "description": "Resolved query used for search",
      "title": "Resolvedquery",
      "type": "string"
    }
  },
  "title": "TrainingRationaleContextData",
  "type": "object"
}

UntrustedText (schemas)

{
  "type": "string"
}

UserProfileAnalysisMessageData (schemas)

{
  "description": "Validate and serialize user profile analysis message data.",
  "properties": {
    "analysis_header": {
      "$ref": "#/components/schemas/AnalysisHeaderMessageData"
    },
    "core_skills": {
      "$ref": "#/components/schemas/CoreSkillsMessageData"
    },
    "priority_skill_gaps": {
      "items": {
        "$ref": "#/components/schemas/UserProfilePrioritySkillGapMessageData"
      },
      "title": "Priority Skill Gaps",
      "type": "array"
    }
  },
  "required": [
    "analysis_header",
    "core_skills",
    "priority_skill_gaps"
  ],
  "title": "UserProfileAnalysisMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/AnalysisHeaderMessageData, components/schemas/CoreSkillsMessageData, components/schemas/UserProfilePrioritySkillGapMessageData.

UserProfileAnalysisOutputMessage (schemas)

{
  "description": "Model user profile analysis output message state.",
  "example": {
    "data": {
      "analysis_header": {
        "alignment_score": 85,
        "headline": "Professional Profile Analysis",
        "summary_description": "Your profile shows strong skills in data analysis and leadership, with opportunities for growth in communication and project management."
      },
      "core_skills": {
        "human": [],
        "technical": [
          {
            "skillId": "06aee287-a570-438a-8e3f-7f48ce41d05d",
            "skillTitle": "Data Analysis"
          }
        ]
      },
      "priority_skill_gaps": [
        {
          "action_plan": [
            {
              "items": [
                {
                  "description": "Read the documentation",
                  "id": "1a2b3c4d-5e6f-7g8h-9i0j-k1l2m3n4o56i"
                }
              ],
              "period": "This week"
            }
          ],
          "id": "1a2b3c4d-5e6f-7g8h-9i0j-k1l2m3n4o56p",
          "rationale": "Limited experience in public speaking",
          "title": "Communication",
          "trainings_available_count": 5
        }
      ]
    },
    "locale": "en",
    "message": "Here is your user profile analysis.",
    "messageApplicationId": "",
    "sender": "bot-chat",
    "type": "user_profile_analysis",
    "userApplicationId": "9b632ebe-dc4d-44dc-9e81-af2896254994",
    "userConversationId": "33056271-19d7-403f-86e2-ee2a97b9f4ce"
  },
  "properties": {
    "data": {
      "$ref": "#/components/schemas/UserProfileAnalysisMessageData"
    },
    "locale": {
      "default": "en",
      "description": "Locale for the message",
      "example": "en",
      "title": "Locale",
      "type": "string"
    },
    "message": {
      "default": "",
      "description": "Message content",
      "example": "Hello, how can I help you?",
      "title": "Message",
      "type": "string"
    },
    "messageApplicationId": {
      "default": "",
      "description": "Unique identifier for the message in the application",
      "example": "28412fbe-bc9f-4c27-9140-3c2fb0e1cac9",
      "title": "Messageapplicationid",
      "type": "string"
    },
    "sender": {
      "$ref": "#/components/schemas/SenderType",
      "description": "Sender of the message",
      "example": "bot-chat"
    },
    "type": {
      "const": "user_profile_analysis",
      "default": "user_profile_analysis",
      "title": "Type",
      "type": "string"
    },
    "userApplicationId": {
      "description": "Unique identifier for the user application",
      "example": "9b632ebe-dc4d-44dc-9e81-af2896254994",
      "title": "Userapplicationid",
      "type": "string"
    },
    "userConversationId": {
      "description": "Unique identifier for the user conversation",
      "example": "33056271-19d7-403f-86e2-ee2a97b9f4ce",
      "title": "Userconversationid",
      "type": "string"
    }
  },
  "required": [
    "userApplicationId",
    "userConversationId",
    "sender",
    "data"
  ],
  "title": "UserProfileAnalysisOutputMessage",
  "type": "object"
}

Referenced definitions: components/schemas/SenderType, components/schemas/UserProfileAnalysisMessageData.

UserProfilePrioritySkillGapMessageData (schemas)

{
  "description": "Validate and serialize user profile priority skill gap message data.",
  "properties": {
    "action_plan": {
      "description": "Action plan split by periods",
      "items": {
        "$ref": "#/components/schemas/ActionPlanPeriodMessageData"
      },
      "title": "Action Plan",
      "type": "array"
    },
    "id": {
      "description": "Unique ID for the skill gap",
      "example": "uuid",
      "title": "Id",
      "type": "string"
    },
    "rationale": {
      "description": "Rationale for the skill gap",
      "example": "Critical for leadership roles...",
      "title": "Rationale",
      "type": "string"
    },
    "title": {
      "description": "Title of the skill gap",
      "example": "Strategic Thinking",
      "title": "Title",
      "type": "string"
    },
    "trainings_available_count": {
      "default": 0,
      "description": "Number of available trainings",
      "example": 3,
      "title": "Trainings Available Count",
      "type": "integer"
    }
  },
  "required": [
    "id",
    "title",
    "rationale"
  ],
  "title": "UserProfilePrioritySkillGapMessageData",
  "type": "object"
}

Referenced definitions: components/schemas/ActionPlanPeriodMessageData.

ValidationError (schemas)

{
  "properties": {
    "ctx": {
      "title": "Context",
      "type": "object"
    },
    "input": {
      "title": "Input"
    },
    "loc": {
      "items": {
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "integer"
          }
        ]
      },
      "title": "Location",
      "type": "array"
    },
    "msg": {
      "title": "Message",
      "type": "string"
    },
    "type": {
      "title": "Error Type",
      "type": "string"
    }
  },
  "required": [
    "loc",
    "msg",
    "type"
  ],
  "title": "ValidationError",
  "type": "object"
}

APIKeyHeader (securitySchemes)

{
  "in": "header",
  "name": "X-API-Key",
  "type": "apiKey"
}

Client-ID (securitySchemes)

{
  "description": "Optional client identifier.",
  "in": "header",
  "name": "Client-ID",
  "type": "apiKey"
}

HTTPBearer (securitySchemes)

{
  "scheme": "bearer",
  "type": "http"
}

Functional guide.