JFrog ML REST API
API for managing machine learning models, experiments, and deployments including model registry, versioning, and serving capabilities.
API for managing machine learning models, experiments, and deployments including model registry, versioning, and serving capabilities.
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