Mistral AI Fine-Tuning API

The Mistral AI Fine-Tuning API allows developers to create and manage fine-tuning jobs that customize Mistral models on proprietary datasets. Users can upload training data, configure hyperparameters, and monitor job progress through the API. Fine-tuned models can then be deployed and accessed through the Chat Completions endpoint, enabling domain-specific performance improvements for enterprise applications.

OpenAPI Specification

mistral-ai-fine-tuning-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Mistral AI Fine-Tuning API
  description: >-
    The Mistral AI Fine-Tuning API allows developers to create and manage
    fine-tuning jobs that customize Mistral models on proprietary datasets.
    Users can upload training data, configure hyperparameters, and monitor
    job progress through the API. Fine-tuned models can then be deployed
    and accessed through the Chat Completions endpoint, enabling domain-
    specific performance improvements for enterprise applications.
  version: '1.0.0'
  contact:
    name: Mistral AI Support
    url: https://docs.mistral.ai
  termsOfService: https://mistral.ai/terms
externalDocs:
  description: Mistral AI Fine-Tuning Documentation
  url: https://docs.mistral.ai/api/endpoint/fine-tuning
servers:
  - url: https://api.mistral.ai/v1
    description: Mistral AI Production Server
tags:
  - name: Fine-Tuning Jobs
    description: >-
      Endpoints for creating, managing, and monitoring fine-tuning jobs
      on Mistral AI models.
security:
  - bearerAuth: []
paths:
  /fine_tuning/jobs:
    post:
      operationId: createFineTuningJob
      summary: Create fine-tuning job
      description: >-
        Creates a fine-tuning job which begins the process of creating a new
        model from a given dataset. The job runs asynchronously and its
        progress can be monitored via the retrieve endpoint.
      tags:
        - Fine-Tuning Jobs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFineTuningJobRequest'
      responses:
        '200':
          description: Successfully created fine-tuning job
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FineTuningJob'
        '400':
          description: Bad request due to invalid parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized due to missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    get:
      operationId: listFineTuningJobs
      summary: List fine-tuning jobs
      description: >-
        List fine-tuning jobs for your organization. Returns a paginated
        list of jobs with their current status and configuration.
      tags:
        - Fine-Tuning Jobs
      parameters:
        - $ref: '#/components/parameters/PageParam'
        - $ref: '#/components/parameters/PageSizeParam'
      responses:
        '200':
          description: Successfully retrieved list of fine-tuning jobs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FineTuningJobList'
        '401':
          description: Unauthorized due to missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /fine_tuning/jobs/{job_id}:
    get:
      operationId: getFineTuningJob
      summary: Get fine-tuning job
      description: >-
        Get info about a fine-tuning job including its status, configuration,
        training metrics, and resulting model identifier.
      tags:
        - Fine-Tuning Jobs
      parameters:
        - $ref: '#/components/parameters/JobIdParam'
      responses:
        '200':
          description: Successfully retrieved fine-tuning job
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FineTuningJob'
        '401':
          description: Unauthorized due to missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Fine-tuning job not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /fine_tuning/jobs/{job_id}/cancel:
    post:
      operationId: cancelFineTuningJob
      summary: Cancel fine-tuning job
      description: >-
        Request the cancellation of a fine-tuning job. The job will be
        cancelled if it has not already completed or failed.
      tags:
        - Fine-Tuning Jobs
      parameters:
        - $ref: '#/components/parameters/JobIdParam'
      responses:
        '200':
          description: Successfully cancelled fine-tuning job
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FineTuningJob'
        '401':
          description: Unauthorized due to missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Fine-tuning job not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /fine_tuning/jobs/{job_id}/start:
    post:
      operationId: startFineTuningJob
      summary: Start fine-tuning job
      description: >-
        Start a fine-tuning job that was created with auto_start set to false.
        The job must have passed validation before it can be started.
      tags:
        - Fine-Tuning Jobs
      parameters:
        - $ref: '#/components/parameters/JobIdParam'
      responses:
        '200':
          description: Successfully started fine-tuning job
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FineTuningJob'
        '401':
          description: Unauthorized due to missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Fine-tuning job not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key
  parameters:
    JobIdParam:
      name: job_id
      in: path
      required: true
      description: >-
        The ID of the fine-tuning job.
      schema:
        type: string
        format: uuid
    PageParam:
      name: page
      in: query
      required: false
      description: >-
        The page number for pagination.
      schema:
        type: integer
        minimum: 0
        default: 0
    PageSizeParam:
      name: page_size
      in: query
      required: false
      description: >-
        The number of items per page.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 20
  schemas:
    CreateFineTuningJobRequest:
      type: object
      required:
        - model
        - training_files
      properties:
        model:
          type: string
          description: >-
            The name of the model to fine-tune.
          example: open-mistral-7b
        training_files:
          type: array
          description: >-
            A collection of training file IDs with optional weights.
          items:
            $ref: '#/components/schemas/TrainingFile'
        validation_files:
          type: array
          description: >-
            A collection of validation file IDs.
          items:
            type: string
            format: uuid
        hyperparameters:
          $ref: '#/components/schemas/Hyperparameters'
        suffix:
          type: string
          description: >-
            A string that will be added to the fine-tuned model name.
          maxLength: 18
        auto_start:
          type: boolean
          description: >-
            Whether to automatically start the fine-tuning job after
            validation. If false, the job must be started manually.
          default: false
        integrations:
          type: array
          description: >-
            A list of integrations to enable for the fine-tuning job,
            such as Weights and Biases for experiment tracking.
          items:
            $ref: '#/components/schemas/Integration'
    TrainingFile:
      type: object
      required:
        - file_id
      properties:
        file_id:
          type: string
          format: uuid
          description: >-
            The ID of the uploaded training file.
        weight:
          type: number
          description: >-
            The weight of this training file in the training mix.
          default: 1.0
    Hyperparameters:
      type: object
      properties:
        training_steps:
          type: integer
          description: >-
            The number of training steps for the fine-tuning job.
          minimum: 1
        learning_rate:
          type: number
          description: >-
            The learning rate for the fine-tuning job.
          minimum: 0.0
        weight_decay:
          type: number
          description: >-
            Weight decay applied during training.
          minimum: 0.0
        warmup_fraction:
          type: number
          description: >-
            The fraction of training steps to use for warmup.
          minimum: 0.0
          maximum: 1.0
    Integration:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: >-
            The type of integration.
          enum:
            - wandb
        project:
          type: string
          description: >-
            The project name for the integration.
        name:
          type: string
          description: >-
            The run name for the integration.
        api_key:
          type: string
          description: >-
            The API key for the integration service.
    FineTuningJob:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: >-
            The unique identifier for the fine-tuning job.
        auto_start:
          type: boolean
          description: >-
            Whether the job was configured to auto-start.
        hyperparameters:
          $ref: '#/components/schemas/Hyperparameters'
        model:
          type: string
          description: >-
            The base model being fine-tuned.
        status:
          type: string
          description: >-
            The current status of the fine-tuning job.
          enum:
            - QUEUED
            - STARTED
            - VALIDATING
            - VALIDATED
            - RUNNING
            - FAILED_VALIDATION
            - FAILED
            - SUCCESS
            - CANCELLED
            - CANCELLATION_REQUESTED
        job_type:
          type: string
          description: >-
            The type of fine-tuning job.
        created_at:
          type: integer
          description: >-
            Unix timestamp when the job was created.
        modified_at:
          type: integer
          description: >-
            Unix timestamp when the job was last modified.
        training_files:
          type: array
          description: >-
            The training files used for this job.
          items:
            type: string
            format: uuid
        validation_files:
          type: array
          description: >-
            The validation files used for this job.
          items:
            type: string
            format: uuid
        fine_tuned_model:
          type: string
          description: >-
            The ID of the fine-tuned model, available after successful
            completion.
        integrations:
          type: array
          description: >-
            The integrations enabled for this job.
          items:
            $ref: '#/components/schemas/Integration'
    FineTuningJobList:
      type: object
      properties:
        data:
          type: array
          description: >-
            A list of fine-tuning jobs.
          items:
            $ref: '#/components/schemas/FineTuningJob'
        total:
          type: integer
          description: >-
            The total number of fine-tuning jobs.
    Error:
      type: object
      properties:
        message:
          type: string
          description: >-
            A human-readable error message.
        type:
          type: string
          description: >-
            The type of error.
        code:
          type: integer
          description: >-
            The HTTP status code.