JFrog ML REST API

API for managing machine learning models, experiments, and deployments including model registry, versioning, and serving capabilities.

OpenAPI Specification

jfrog-ml-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: JFrog ML REST API
  description: >-
    API for managing machine learning models, experiments, and deployments
    including model registry, versioning, and serving capabilities. JFrog ML
    (formerly Qwak) provides end-to-end MLOps features integrated with the
    JFrog Platform.
  version: 1.x
  contact:
    name: JFrog
    url: https://jfrog.com
  license:
    name: Proprietary
    url: https://jfrog.com/terms-of-service/
  termsOfService: https://jfrog.com/terms-of-service/
externalDocs:
  description: JFrog ML REST API Documentation
  url: https://jfrog.com/help/r/jfrog-ml-documentation/jfrog-ml-rest-api
servers:
  - url: https://{server}.jfrog.io/ml/api
    description: JFrog Cloud
    variables:
      server:
        default: myserver
        description: Your JFrog server name
security:
  - bearerAuth: []
  - basicAuth: []
tags:
  - name: Deployments
    description: Model deployment and serving
  - name: Experiments
    description: ML experiment tracking
  - name: Model Versions
    description: Model version management
  - name: Models
    description: ML model registry and management
paths:
  /v1/models:
    get:
      operationId: listModels
      summary: JFrog List Models
      description: Returns a list of all registered ML models.
      tags:
        - Models
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            default: 25
          description: Maximum number of results
        - name: offset
          in: query
          schema:
            type: integer
          description: Offset for pagination
      responses:
        '200':
          description: Models list retrieved
          content:
            application/json:
              schema:
                type: object
                properties:
                  models:
                    type: array
                    items:
                      $ref: '#/components/schemas/Model'
                  total_count:
                    type: integer
    post:
      operationId: createModel
      summary: JFrog Create Model
      description: Registers a new ML model in the model registry.
      tags:
        - Models
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModelRequest'
      responses:
        '201':
          description: Model created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Model'
  /v1/models/{modelId}:
    get:
      operationId: getModel
      summary: JFrog Get Model
      description: Returns details for a specific model.
      tags:
        - Models
      parameters:
        - name: modelId
          in: path
          required: true
          schema:
            type: string
          description: Model ID
      responses:
        '200':
          description: Model details retrieved
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Model'
    put:
      operationId: updateModel
      summary: JFrog Update Model
      description: Updates model metadata.
      tags:
        - Models
      parameters:
        - name: modelId
          in: path
          required: true
          schema:
            type: string
          description: Model ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModelRequest'
      responses:
        '200':
          description: Model updated
    delete:
      operationId: deleteModel
      summary: JFrog Delete Model
      description: Deletes a model and all its versions.
      tags:
        - Models
      parameters:
        - name: modelId
          in: path
          required: true
          schema:
            type: string
          description: Model ID
      responses:
        '204':
          description: Model deleted
  /v1/models/{modelId}/versions:
    get:
      operationId: listModelVersions
      summary: JFrog List Model Versions
      description: Returns all versions for a specific model.
      tags:
        - Model Versions
      parameters:
        - name: modelId
          in: path
          required: true
          schema:
            type: string
          description: Model ID
      responses:
        '200':
          description: Model versions list
          content:
            application/json:
              schema:
                type: object
                properties:
                  versions:
                    type: array
                    items:
                      $ref: '#/components/schemas/ModelVersion'
    post:
      operationId: createModelVersion
      summary: JFrog Create Model Version
      description: Creates a new version for a model.
      tags:
        - Model Versions
      parameters:
        - name: modelId
          in: path
          required: true
          schema:
            type: string
          description: Model ID
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ModelVersionRequest'
      responses:
        '201':
          description: Model version created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelVersion'
  /v1/models/{modelId}/versions/{versionId}:
    get:
      operationId: getModelVersion
      summary: JFrog Get Model Version
      description: Returns details for a specific model version.
      tags:
        - Model Versions
      parameters:
        - name: modelId
          in: path
          required: true
          schema:
            type: string
          description: Model ID
        - name: versionId
          in: path
          required: true
          schema:
            type: string
          description: Version ID
      responses:
        '200':
          description: Model version details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ModelVersion'
    delete:
      operationId: deleteModelVersion
      summary: JFrog Delete Model Version
      description: Deletes a specific model version.
      tags:
        - Model Versions
      parameters:
        - name: modelId
          in: path
          required: true
          schema:
            type: string
          description: Model ID
        - name: versionId
          in: path
          required: true
          schema:
            type: string
          description: Version ID
      responses:
        '204':
          description: Model version deleted
  /v1/experiments:
    get:
      operationId: listExperiments
      summary: JFrog List Experiments
      description: Returns a list of all ML experiments.
      tags:
        - Experiments
      parameters:
        - name: model_id
          in: query
          schema:
            type: string
          description: Filter by model ID
      responses:
        '200':
          description: Experiments list
          content:
            application/json:
              schema:
                type: object
                properties:
                  experiments:
                    type: array
                    items:
                      $ref: '#/components/schemas/Experiment'
    post:
      operationId: createExperiment
      summary: JFrog Create Experiment
      description: Creates a new ML experiment.
      tags:
        - Experiments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExperimentRequest'
      responses:
        '201':
          description: Experiment created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Experiment'
  /v1/experiments/{experimentId}:
    get:
      operationId: getExperiment
      summary: JFrog Get Experiment
      description: Returns details for a specific experiment.
      tags:
        - Experiments
      parameters:
        - name: experimentId
          in: path
          required: true
          schema:
            type: string
          description: Experiment ID
      responses:
        '200':
          description: Experiment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Experiment'
    delete:
      operationId: deleteExperiment
      summary: JFrog Delete Experiment
      description: Deletes an experiment.
      tags:
        - Experiments
      parameters:
        - name: experimentId
          in: path
          required: true
          schema:
            type: string
          description: Experiment ID
      responses:
        '204':
          description: Experiment deleted
  /v1/deployments:
    get:
      operationId: listDeployments
      summary: JFrog List Deployments
      description: Returns a list of all model deployments.
      tags:
        - Deployments
      responses:
        '200':
          description: Deployments list
          content:
            application/json:
              schema:
                type: object
                properties:
                  deployments:
                    type: array
                    items:
                      $ref: '#/components/schemas/Deployment'
    post:
      operationId: createDeployment
      summary: JFrog Create Deployment
      description: Deploys a model version for serving predictions.
      tags:
        - Deployments
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeploymentRequest'
      responses:
        '201':
          description: Deployment created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deployment'
  /v1/deployments/{deploymentId}:
    get:
      operationId: getDeployment
      summary: JFrog Get Deployment
      description: Returns details for a specific deployment.
      tags:
        - Deployments
      parameters:
        - name: deploymentId
          in: path
          required: true
          schema:
            type: string
          description: Deployment ID
      responses:
        '200':
          description: Deployment details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Deployment'
    delete:
      operationId: deleteDeployment
      summary: JFrog Delete Deployment
      description: Removes a model deployment.
      tags:
        - Deployments
      parameters:
        - name: deploymentId
          in: path
          required: true
          schema:
            type: string
          description: Deployment ID
      responses:
        '204':
          description: Deployment deleted
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Access token authentication
    basicAuth:
      type: http
      scheme: basic
      description: Basic username/password authentication
  schemas:
    Model:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        framework:
          type: string
          description: ML framework (e.g., tensorflow, pytorch, sklearn)
        task_type:
          type: string
          description: Type of ML task (e.g., classification, regression, nlp)
        tags:
          type: array
          items:
            type: string
        latest_version:
          type: string
        versions_count:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        created_by:
          type: string
    ModelRequest:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        framework:
          type: string
        task_type:
          type: string
        tags:
          type: array
          items:
            type: string
      required:
        - name
    ModelVersion:
      type: object
      properties:
        id:
          type: string
        model_id:
          type: string
        version:
          type: string
        description:
          type: string
        status:
          type: string
          enum: [draft, staging, production, archived]
        artifact_path:
          type: string
          description: Path to the model artifact in Artifactory
        metrics:
          type: object
          additionalProperties:
            type: number
          description: Key-value pairs of model metrics (accuracy, loss, etc.)
        parameters:
          type: object
          additionalProperties:
            type: string
          description: Hyperparameters used for training
        created_at:
          type: string
          format: date-time
        created_by:
          type: string
    ModelVersionRequest:
      type: object
      properties:
        version:
          type: string
        description:
          type: string
        status:
          type: string
          enum: [draft, staging, production, archived]
        artifact_path:
          type: string
        metrics:
          type: object
          additionalProperties:
            type: number
        parameters:
          type: object
          additionalProperties:
            type: string
      required:
        - version
    Experiment:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        description:
          type: string
        model_id:
          type: string
        status:
          type: string
          enum: [running, completed, failed, cancelled]
        metrics:
          type: object
          additionalProperties:
            type: number
        parameters:
          type: object
          additionalProperties:
            type: string
        created_at:
          type: string
          format: date-time
        completed_at:
          type: string
          format: date-time
        created_by:
          type: string
    ExperimentRequest:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        model_id:
          type: string
        parameters:
          type: object
          additionalProperties:
            type: string
      required:
        - name
    Deployment:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        model_id:
          type: string
        model_version_id:
          type: string
        status:
          type: string
          enum: [deploying, active, stopped, failed]
        endpoint_url:
          type: string
          format: uri
        replicas:
          type: integer
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    DeploymentRequest:
      type: object
      properties:
        name:
          type: string
        model_id:
          type: string
        model_version_id:
          type: string
        replicas:
          type: integer
          default: 1
        resources:
          type: object
          properties:
            cpu:
              type: string
            memory:
              type: string
            gpu:
              type: integer
      required:
        - name
        - model_id
        - model_version_id