Skip to main content

Model Registry

Register, manage, version, and deploy machine learning models. The model registry provides a centralized catalog for tracking models across your organization, regardless of their source or framework.

All endpoints require authentication via X-API-Key header and the appropriate scope.


RegisteredModel Object

{
"id": "model_abc123",
"name": "Churn Prediction XGBoost",
"description": "XGBoost model for customer churn prediction trained on Q4 2024 data",
"owner": "user_456",
"organizationId": "org_xyz",
"workspaceId": "ws_001",
"framework": "xgboost",
"source": "automl",
"latestVersion": 3,
"versions": [
{
"version": 1,
"description": "Initial training",
"metrics": { "accuracy": 0.89, "f1Score": 0.87 },
"artifactUri": "s3://models/churn-xgb/v1",
"createdAt": "2025-01-15T10:30:00Z"
},
{
"version": 2,
"description": "Retrained with feature engineering",
"metrics": { "accuracy": 0.92, "f1Score": 0.91 },
"artifactUri": "s3://models/churn-xgb/v2",
"createdAt": "2025-01-22T14:00:00Z"
},
{
"version": 3,
"description": "Hyperparameter tuning",
"metrics": { "accuracy": 0.94, "f1Score": 0.93 },
"artifactUri": "s3://models/churn-xgb/v3",
"createdAt": "2025-02-01T09:00:00Z"
}
],
"tags": ["production", "churn", "xgboost"],
"status": "deployed",
"deployment": {
"endpointUrl": "https://models.strongly.ai/v1/predict/model_abc123",
"replicas": 2,
"hardware": "gpu-a100-40gb",
"deployedAt": "2025-02-01T10:00:00Z"
},
"deleted": false,
"createdAt": "2025-01-15T10:30:00Z",
"updatedAt": "2025-02-01T10:00:00Z"
}

GET /api/v1/model-registry/models

List all registered models accessible to the authenticated user.

Scope: model-registry:read

Query Parameters

ParameterTypeRequiredDescription
searchstringNoSearch by model name or description
frameworkstringNoFilter by framework: pytorch, tensorflow, xgboost, sklearn, onnx, custom
sourcestringNoFilter by source: automl, fine-tuning, experiment, manual
statusstringNoFilter by status: registered, deployed, archived
tagstringNoFilter by tag
workspaceIdstringNoFilter by workspace ID
limitintegerNoNumber of results to return (default: 20)
offsetintegerNoNumber of results to skip (default: 0)
sortstringNoSort field and direction, e.g. createdAt:desc

Response 200 OK

{
"count": 34,
"limit": 20,
"offset": 0,
"models": [
{
"id": "model_abc123",
"name": "Churn Prediction XGBoost",
"description": "XGBoost model for customer churn prediction trained on Q4 2024 data",
"owner": "user_456",
"organizationId": "org_xyz",
"workspaceId": "ws_001",
"framework": "xgboost",
"source": "automl",
"latestVersion": 3,
"tags": ["production", "churn", "xgboost"],
"status": "deployed",
"deleted": false,
"createdAt": "2025-01-15T10:30:00Z",
"updatedAt": "2025-02-01T10:00:00Z"
}
]
}

POST /api/v1/model-registry/models

Register a new model in the registry.

Scope: model-registry:write

Request Body

{
"name": "Churn Prediction XGBoost",
"framework": "xgboost",
"description": "XGBoost model for customer churn prediction trained on Q4 2024 data",
"source": "automl",
"tags": ["churn", "xgboost"],
"workspaceId": "ws_001"
}
FieldTypeRequiredDescription
namestringYesHuman-readable model name
frameworkstringYesModel framework: pytorch, tensorflow, xgboost, sklearn, onnx, custom
descriptionstringNoModel description
sourcestringNoWhere the model originated: automl, fine-tuning, experiment, manual
tagsstring[]NoArray of tag strings for categorization
workspaceIdstringNoWorkspace to register the model in

Response 201 Created

{
"id": "model_abc123",
"name": "Churn Prediction XGBoost",
"framework": "xgboost",
"status": "registered",
"latestVersion": 0,
"createdAt": "2025-01-15T10:30:00Z"
}

GET /api/v1/model-registry/models/:id

Get a single registered model by ID, including all versions.

Scope: model-registry:read

Path Parameters

ParameterTypeRequiredDescription
idstringYesModel ID

Response 200 OK

Returns the full RegisteredModel object.


PUT /api/v1/model-registry/models/:id

Update a registered model's metadata.

Scope: model-registry:write

Path Parameters

ParameterTypeRequiredDescription
idstringYesModel ID

Request Body

{
"name": "Churn Prediction XGBoost v2",
"description": "Updated model description with latest findings",
"tags": ["production", "churn", "xgboost", "v2"]
}
FieldTypeRequiredDescription
namestringNoModel name
descriptionstringNoModel description
tagsstring[]NoArray of tag strings

Response 200 OK

Returns the updated RegisteredModel object.


DELETE /api/v1/model-registry/models/:id

Delete a registered model. Deployed models must be undeployed before deletion. This action is irreversible.

Scope: model-registry:write

Path Parameters

ParameterTypeRequiredDescription
idstringYesModel ID

Response 204 No Content


POST /api/v1/model-registry/models/:id/deploy

Deploy a registered model for inference. Provisions the required infrastructure and creates a prediction endpoint.

Scope: model-registry:write

Path Parameters

ParameterTypeRequiredDescription
idstringYesModel ID

Request Body

{
"version": 3,
"hardware": "gpu-a100-40gb",
"replicas": 2,
"autoscaling": {
"enabled": true,
"minReplicas": 1,
"maxReplicas": 5,
"targetCpuUtilization": 70
}
}
FieldTypeRequiredDescription
versionintegerNoModel version to deploy (default: latest)
hardwarestringNoHardware configuration ID
replicasintegerNoNumber of replicas (default: 1)
autoscalingobjectNoAutoscaling configuration

Response 200 OK

{
"id": "model_abc123",
"status": "deployed",
"deployment": {
"endpointUrl": "https://models.strongly.ai/v1/predict/model_abc123",
"replicas": 2,
"hardware": "gpu-a100-40gb",
"deployedAt": "2025-02-01T10:00:00Z"
},
"message": "Model deployed successfully"
}