Mistral AI Fine-Tuning API

Fine-tuning API for customizing Mistral models on your own datasets, supporting text, vision, and classifier fine-tuning with configurable hyperparameters and integrations.

OpenAPI Specification

mistral-fine-tuning-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Mistral AI Fine-Tuning API
  description: >-
    Fine-tuning API for customizing Mistral models on your own datasets.
    Supports text, vision, and classifier fine-tuning with configurable
    hyperparameters, Weights & Biases integration, and job management.
  version: '1.0'
  contact:
    name: Mistral AI Support
    url: https://docs.mistral.ai/
    email: [email protected]
  termsOfService: https://mistral.ai/terms/
externalDocs:
  description: Mistral AI Fine-Tuning API Documentation
  url: https://docs.mistral.ai/api/endpoint/fine-tuning
servers:
  - url: https://api.mistral.ai/v1
    description: Mistral AI Production
tags:
  - name: Fine-Tuning Jobs
    description: Create and manage fine-tuning jobs
security:
  - bearerAuth: []
paths:
  /fine_tuning/jobs:
    get:
      operationId: listFineTuningJobs
      summary: Mistral AI List fine-tuning jobs
      description: >-
        Retrieve a list of fine-tuning jobs for the authenticated account,
        with optional pagination.
      tags:
        - Fine-Tuning Jobs
      parameters:
        - name: page
          in: query
          schema:
            type: integer
            default: 0
          description: Page number for pagination
        - name: page_size
          in: query
          schema:
            type: integer
            default: 20
          description: Number of items per page
        - name: model
          in: query
          schema:
            type: string
          description: Filter by base model
        - name: status
          in: query
          schema:
            type: string
            enum:
              - QUEUED
              - STARTED
              - VALIDATING
              - VALIDATED
              - RUNNING
              - FAILED_VALIDATION
              - FAILED
              - SUCCESS
              - CANCELLED
              - CANCELLATION_REQUESTED
          description: Filter by job status
      responses:
        '200':
          description: List of fine-tuning jobs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FineTuningJobList'
        '401':
          description: Unauthorized
    post:
      operationId: createFineTuningJob
      summary: Mistral AI Create a fine-tuning job
      description: >-
        Create a new fine-tuning job to customize a Mistral model on your
        dataset. Specify the base model, training file, and hyperparameters.
      tags:
        - Fine-Tuning Jobs
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFineTuningJobRequest'
      responses:
        '200':
          description: Fine-tuning job created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FineTuningJob'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
  /fine_tuning/jobs/{job_id}:
    get:
      operationId: getFineTuningJob
      summary: Mistral AI Get a fine-tuning job
      description: Retrieve details of a specific fine-tuning job by ID.
      tags:
        - Fine-Tuning Jobs
      parameters:
        - $ref: '#/components/parameters/jobId'
      responses:
        '200':
          description: Fine-tuning job details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FineTuningJob'
        '401':
          description: Unauthorized
        '404':
          description: Job not found
  /fine_tuning/jobs/{job_id}/cancel:
    post:
      operationId: cancelFineTuningJob
      summary: Mistral AI Cancel a fine-tuning job
      description: Request cancellation of a running or queued fine-tuning job.
      tags:
        - Fine-Tuning Jobs
      parameters:
        - $ref: '#/components/parameters/jobId'
      responses:
        '200':
          description: Fine-tuning job cancellation requested
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FineTuningJob'
        '401':
          description: Unauthorized
        '404':
          description: Job not found
  /fine_tuning/jobs/{job_id}/start:
    post:
      operationId: startFineTuningJob
      summary: Mistral AI Start a validated fine-tuning job
      description: >-
        Start a fine-tuning job that has been validated. The job must be in
        VALIDATED status to be started.
      tags:
        - Fine-Tuning Jobs
      parameters:
        - $ref: '#/components/parameters/jobId'
      responses:
        '200':
          description: Fine-tuning job started
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FineTuningJob'
        '401':
          description: Unauthorized
        '404':
          description: Job not found
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Mistral AI API key passed as a Bearer token
  parameters:
    jobId:
      name: job_id
      in: path
      required: true
      description: The unique identifier of the fine-tuning job
      schema:
        type: string
        format: uuid
  schemas:
    CreateFineTuningJobRequest:
      type: object
      required:
        - model
        - training_files
      properties:
        model:
          type: string
          description: The base model to fine-tune
          examples:
            - open-mistral-7b
            - mistral-small-latest
        training_files:
          type: array
          items:
            $ref: '#/components/schemas/TrainingFile'
          description: Training data file references
        validation_files:
          type: array
          items:
            $ref: '#/components/schemas/TrainingFile'
          description: Validation data file references
        hyperparameters:
          $ref: '#/components/schemas/Hyperparameters'
        suffix:
          type: string
          maxLength: 18
          description: Suffix appended to the fine-tuned model name
        integrations:
          type: array
          items:
            $ref: '#/components/schemas/Integration'
          description: Third-party integrations for tracking
        auto_start:
          type: boolean
          default: true
          description: Whether to start training after validation
    TrainingFile:
      type: object
      required:
        - file_id
      properties:
        file_id:
          type: string
          format: uuid
          description: ID of the uploaded training file
        weight:
          type: number
          minimum: 0
          description: Relative weight of this training file
    Hyperparameters:
      type: object
      properties:
        training_steps:
          type: integer
          minimum: 1
          description: Number of training steps
        learning_rate:
          type: number
          minimum: 0
          description: Learning rate for training
        weight_decay:
          type: number
          minimum: 0
          description: Weight decay regularization
        warmup_fraction:
          type: number
          minimum: 0
          maximum: 1
          description: Fraction of steps for learning rate warmup
        epochs:
          type: number
          minimum: 0
          description: Number of training epochs
        seq_len:
          type: integer
          description: Maximum sequence length
    Integration:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          enum:
            - wandb
          description: Integration type
        project:
          type: string
          description: Project name for the integration
        name:
          type: string
          description: Run name for the integration
        api_key:
          type: string
          description: API key for the integration service
    FineTuningJob:
      type: object
      properties:
        id:
          type: string
          format: uuid
          description: Unique identifier for the fine-tuning job
        auto_start:
          type: boolean
        hyperparameters:
          $ref: '#/components/schemas/Hyperparameters'
        model:
          type: string
          description: Base model being fine-tuned
        status:
          type: string
          enum:
            - QUEUED
            - STARTED
            - VALIDATING
            - VALIDATED
            - RUNNING
            - FAILED_VALIDATION
            - FAILED
            - SUCCESS
            - CANCELLED
            - CANCELLATION_REQUESTED
          description: Current status of the job
        job_type:
          type: string
          description: 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
          items:
            type: string
            format: uuid
        validation_files:
          type: array
          items:
            type: string
            format: uuid
        fine_tuned_model:
          type:
            - string
            - 'null'
          description: The resulting fine-tuned model ID
        integrations:
          type: array
          items:
            $ref: '#/components/schemas/Integration'
    FineTuningJobList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/FineTuningJob'
        total:
          type: integer
          description: Total number of jobs