Predict.aiDocs
Inference

Inference

Run forecasts against deployed models — by deployment, pipeline, or goal — and inspect the history.

The inference API serves forecasts from your deployed models. Everything upstream — pipelines, trainings, promotion — exists so you can call these endpoints.

Which URL should I call?

Three ways to address a model, from most to least stable:

URL styleSurvivesUse when
POST /v1/inference/goals/{goal_id}/inferChampion swaps and promotionsYou track an outcome, not a model
POST /v1/inference/pipelines/{pipeline_id}/inferPromotionsYou own the pipeline and want its current champion
POST /v1/inference/deployments/{deployment_id}/inferNothing (version-pinned)Reproducibility, or A/B testing a specific deployment

Every promotion mints a new deployment ID, and a goal can swap champions entirely. The goal and pipeline aliases resolve to the current deployment on every request, so your integration never breaks when the model behind it improves. The response's deployment_id always tells you which concrete deployment served you.

Each URL style has an /infer-segment sibling where the platform prepares model input from live segment data server-side — usually what you want. Raw /infer takes an input tensor you build yourself.

Thirty seconds of API

curl -X POST "$API_BASE/v1/inference/goals/$GOAL_ID/infer-segment" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Workspace-Id: $WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{}'
{
  "predictions": [
    { "label": "daily_sales", "point": [1250.75, 1274.1, ] }
  ],
  "horizon": 14,
  "labels": ["daily_sales"],
  "deployment_id": "c4a7…",
  "inference_id": "b7e6…",
  "latency_ms": 245.67,
  "timestamp": "2026-07-15T12:04:45.123000+00:00Z",

}

In this section

On this page