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
| Parameter | Type | Required | Description |
|---|---|---|---|
search | string | No | Search by model name or description |
framework | string | No | Filter by framework: pytorch, tensorflow, xgboost, sklearn, onnx, custom |
source | string | No | Filter by source: automl, fine-tuning, experiment, manual |
status | string | No | Filter by status: registered, deployed, archived |
tag | string | No | Filter by tag |
workspaceId | string | No | Filter by workspace ID |
limit | integer | No | Number of results to return (default: 20) |
offset | integer | No | Number of results to skip (default: 0) |
sort | string | No | Sort 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"
}
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Human-readable model name |
framework | string | Yes | Model framework: pytorch, tensorflow, xgboost, sklearn, onnx, custom |
description | string | No | Model description |
source | string | No | Where the model originated: automl, fine-tuning, experiment, manual |
tags | string[] | No | Array of tag strings for categorization |
workspaceId | string | No | Workspace 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Model 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Model ID |
Request Body
{
"name": "Churn Prediction XGBoost v2",
"description": "Updated model description with latest findings",
"tags": ["production", "churn", "xgboost", "v2"]
}
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | Model name |
description | string | No | Model description |
tags | string[] | No | Array 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Model 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
| Parameter | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Model ID |
Request Body
{
"version": 3,
"hardware": "gpu-a100-40gb",
"replicas": 2,
"autoscaling": {
"enabled": true,
"minReplicas": 1,
"maxReplicas": 5,
"targetCpuUtilization": 70
}
}
| Field | Type | Required | Description |
|---|---|---|---|
version | integer | No | Model version to deploy (default: latest) |
hardware | string | No | Hardware configuration ID |
replicas | integer | No | Number of replicas (default: 1) |
autoscaling | object | No | Autoscaling 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"
}