Deployments
Serving status
Check what's live — per pipeline, per serving mode, or fleet-wide.
Promotion status for a pipeline
The one call that answers "is this pipeline live, and what could I deploy instead?" — current deployment, promotion history, and every completed training in one response:
curl "$API_BASE/v1/deployments/pipelines/$PIPELINE_ID/status" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID"from predictai import PredictAI
client = PredictAI(token="pa_live_…", workspace_id="ws_…")
data = client.deployments.get_deployments_pipelines_by_pipeline_id_status(PIPELINE_ID)
import { PredictAI } from "@predictai/sdk";
const client = new PredictAI({ token: "pa_live_…", workspaceId: "ws_…" });
const data = await client.deployments.getDeploymentsPipelinesByPipelineIdStatus(PIPELINE_ID);
{
"pipeline_id": "9f2c41d8-…",
"is_promoted": true,
"current_deployment": {
"training_id": "b81e57c3-…",
"deployment_type": "shared",
"status": "deployed",
"endpoint": "…/v1/models/model-b81e57c3",
"created_at": "2026-07-15T12:04:31Z",
"last_used": "2026-07-15T14:41:19Z"
},
"promotions": [
{
"promotion_id": "7d3f92a1-…",
"training_id": "b81e57c3-…",
"status": "active",
"promoted_by": "usr_91c2…",
"promoted_at": "2026-07-15T12:04:31Z"
}
],
"available_trainings": [
{
"training_id": "b81e57c3-…",
"accuracy": 0.94,
"created_at": "2026-07-15T09:12:44Z",
"is_deployed": true
},
{
"training_id": "a4c9d0e7-…",
"accuracy": 0.91,
"created_at": "2026-07-08T09:10:02Z",
"is_deployed": false
}
]
}Response fields
| Field | Meaning |
|---|---|
is_promoted | false when nothing is serving — current_deployment is null then. |
current_deployment | The most recent deployment. status here is a simple binary — deployed when ready, deploying otherwise. For the full lifecycle detail, use the deployment detail route. |
promotions | The pipeline's deployment history; each entry shows as active or deploying. |
available_trainings | Every completed training with its accuracy and whether it's currently serving — pick one and deploy it. |
Everything currently serving
A flat list of live deployments, filterable by mode and status:
curl "$API_BASE/v1/deployments/serving?deployment_type=shared&status=deployed" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID"from predictai import PredictAI
client = PredictAI(token="pa_live_…", workspace_id="ws_…")
data = client.deployments.get_deployments_serving(params={"deployment_type": "shared", "status": "deployed"})
import { PredictAI } from "@predictai/sdk";
const client = new PredictAI({ token: "pa_live_…", workspaceId: "ws_…" });
const data = await client.deployments.getDeploymentsServing({
params: { deployment_type: "shared", status: "deployed" },
});
{
"deployments": [
{
"deployment_id": "7d3f92a1-…",
"pipeline_id": "9f2c41d8-…",
"model_name": "Daily sales forecaster",
"workspace_id": "ws_3fa8…",
"training_id": "b81e57c3-…",
"deployment_type": "shared",
"status": "deployed",
"endpoint": "…/v1/models/model-b81e57c3",
"resources": { "cpu": "200m", "memory": "512Mi" },
"metrics": {
"total_predictions": 0,
"avg_latency_ms": 0,
"last_24h_predictions": 0
},
"created_at": "2026-07-15T12:04:31Z",
"last_used": "2026-07-15T14:41:19Z"
}
],
"total": 1,
"page": 1,
"pages": 1
}Query parameters
| Parameter | Meaning |
|---|---|
deployment_type optional | shared or dedicated. |
status optional | deployed or deploying. |
workspace_id optional | Restrict to one workspace. |
page optional | Page number. Defaults to 1. |
limit optional | Items per page. |
Shared serving status
How the Shared pool looks right now — how many models are loaded and which ones:
curl "$API_BASE/v1/deployments/shared/status" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID"from predictai import PredictAI
client = PredictAI(token="pa_live_…", workspace_id="ws_…")
data = client.deployments.get_deployments_shared_status()
import { PredictAI } from "@predictai/sdk";
const client = new PredictAI({ token: "pa_live_…", workspaceId: "ws_…" });
const data = await client.deployments.getDeploymentsSharedStatus();
{
"loaded_models": 12,
"models": ["model-b81e57c3", "model-a4c9d0e7", …],
…
}Dedicated serving status
Every Dedicated deployment and its readiness:
curl "$API_BASE/v1/deployments/dedicated/status" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID"from predictai import PredictAI
client = PredictAI(token="pa_live_…", workspace_id="ws_…")
data = client.deployments.get_deployments_dedicated_status()
import { PredictAI } from "@predictai/sdk";
const client = new PredictAI({ token: "pa_live_…", workspaceId: "ws_…" });
const data = await client.deployments.getDeploymentsDedicatedStatus();
{
"total_deployments": 2,
"ready_deployments": 2,
"deployments": [
{
"deployment_id": "3ac1f0b9-…",
"ready": true,
…
}
]
}If ready_deployments lags total_deployments, a deployment is still
coming up or needs a look — inspect it and consider
scaling or a
retry.
Once a deployment reports ready, run real forecasts through Inference — segment-aware inputs, stable pipeline and goal URLs, and history.

