openapi: 3.0.0 info: title: Mistral AI API description: Chat Completion and Embeddings APIs version: 0.0.1 servers: - url: https://api.mistral.ai/v1 paths: /chat/completions: post: operationId: createChatCompletion summary: Create Chat Completions requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ChatCompletionRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ChatCompletionResponse' /embeddings: post: operationId: createEmbedding summary: Create Embeddings requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EmbeddingRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/EmbeddingResponse' /models: get: operationId: listModels summary: List Available Models responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ModelList' components: schemas: Error: type: object properties: type: type: string nullable: false message: type: string nullable: false param: type: string nullable: true code: type: string nullable: true required: - type - message - param - code ErrorResponse: type: object properties: error: $ref: '#/components/schemas/Error' required: - error ModelList: type: object properties: object: type: string data: type: array items: $ref: '#/components/schemas/Model' required: - object - data ChatCompletionRequest: type: object properties: model: description: > ID of the model to use. You can use the [List Available Models](/api#operation/listModels) API to see all of your available models, or see our [Model overview](/models) for model descriptions. type: string example: mistral-tiny messages: description: > The prompt(s) to generate completions for, encoded as a list of dict with role and content. The first prompt role should be `user` or `system`. type: array items: type: object properties: role: type: string enum: - system - user - assistant content: type: string example: - role: user content: What is the best French cheese? temperature: type: number minimum: 0 maximum: 1 default: 0.7 example: 0.7 nullable: true description: > What sampling temperature to use, between 0.0 and 1.0. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. We generally recommend altering this or `top_p` but not both. top_p: type: number minimum: 0 maximum: 1 default: 1 example: 1 nullable: true description: > Nucleus sampling, where the model considers the results of the tokens with `top_p` probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We generally recommend altering this or `temperature` but not both. max_tokens: type: integer minimum: 0 default: null example: 16 nullable: true description: > The maximum number of tokens to generate in the completion. The token count of your prompt plus `max_tokens` cannot exceed the model's context length. stream: type: boolean default: false nullable: true description: > Whether to stream back partial progress. If set, tokens will be sent as data-only server-sent events as they become available, with the stream terminated by a data: [DONE] message. Otherwise, the server will hold the request open until the timeout or until completion, with the response containing the full result as JSON. safe_mode: type: boolean default: false description: | Whether to inject a safety prompt before all conversations. random_seed: type: integer default: null description: > The seed to use for random sampling. If set, different calls will generate deterministic results. required: - model - messages ChatCompletionResponse: type: object properties: id: type: string example: cmpl-e5cc70bb28c444948073e77776eb30ef object: type: string example: chat.completion created: type: integer example: 1702256327 model: type: string example: mistral-tiny choices: type: array items: type: object required: - index - text - finish_reason properties: index: type: integer example: 0 message: type: object properties: role: type: string enum: - user - assistant example: assistant content: type: string example: >- I don't have a favorite condiment as I don't consume food or condiments. However, I can tell you that many people enjoy using ketchup, mayonnaise, hot sauce, soy sauce, or mustard as condiments to enhance the flavor of their meals. Some people also enjoy using herbs, spices, or vinegars as condiments. Ultimately, the best condiment is a matter of personal preference. finish_reason: type: string enum: - stop - length - model_length usage: type: object properties: prompt_tokens: type: integer example: 14 completion_tokens: type: integer example: 93 total_tokens: type: integer example: 107 required: - prompt_tokens - completion_tokens - total_tokens EmbeddingRequest: type: object properties: model: type: string example: mistral-embed description: | The ID of the model to use for this request. input: type: array items: type: string example: - Hello - world description: | The list of strings to embed. encoding_format: type: string enum: - float example: float description: | The format of the output data. EmbeddingResponse: type: object properties: id: type: string example: embd-aad6fc62b17349b192ef09225058bc45 object: type: string example: list data: type: array items: type: object properties: object: type: string example: embedding embedding: type: array items: type: number example: - 0.1 - 0.2 - 0.3 index: type: int example: 0 example: - object: embedding embedding: - 0.1 - 0.2 - 0.3 index: 0 - object: embedding embedding: - 0.4 - 0.5 - 0.6 index: 1 model: type: string usage: type: object properties: prompt_tokens: type: integer example: 9 total_tokens: type: integer example: 9 required: - prompt_tokens - total_tokens required: - id - object - data - model - usage Model: title: Model properties: id: type: string object: type: string created: type: integer owned_by: type: string required: - id - object - created - owned_by