Predict.aiDocs
Models

Foundation models

Pretrained forecasting models — browse what's available, deploy zero-shot, or fine-tune an adapter on your data. One API for every model, predictfm included.

Foundation models are pretrained time-series models hosted by the platform. They've already learned general temporal patterns from large corpora, so you can use them two ways:

  • Zero-shot — deploy a model directly and start inferring. No training run, no credits spent on compute.
  • Fine-tuned — train a small adapter on your segment. The model's weights stay frozen; the adapter captures what's specific about your data.

Every foundation model is identified the same way: a family (which model line it belongs to — predictfm, chronos_bolt, timesfm, moirai, …) and a slug (which size or version within that family — chronos-bolt-base, predictfm-f-v0.1, …). predictfm is the platform's first-party family; it works exactly like the open-source ones.

All routes live under /v1/models/foundation. Foundation models also show up in the public model catalog as kind: "foundation_backbone" rows.

List foundation models

Every model in the list is ready to use — you can deploy it zero-shot or fine-tune it right away:

curl "$API_BASE/v1/models/foundation" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Workspace-Id: $WORKSPACE_ID"
{
  "data": {
    "models": [
      {
        "family": "chronos_bolt",
        "slug": "chronos-bolt-base",
        "vendor": "Amazon",
        "license": "Apache-2.0",
        "params": "205M",
        "recommended": true,
        "deprecated": false,
        "downloads": 342,
        "supports": { "tasks": ["forecast"], "max_context": 2048, "max_horizon": 64 },

      },
      {
        "family": "predictfm",
        "slug": "predictfm-f-v0.1",
        "vendor": "predictAI",
        "license": "proprietary",
        "license_commercial_ok": true,
        "recommended": true,

      }
    ],
    "count": 2
  }
}

Query parameters

ParameterMeaning
family optionalOnly one family: predictfm, chronos_bolt, timesfm, moirai, …
task optionalOnly models supporting a task: forecast, embed, impute, classify, anomaly, multivariate.
include_deprecated optionalInclude retired models. Defaults to false.

Recommended models sort first, then by downloads.

Response fields

FieldMeaning
family / slugThe model's identity — what you reference everywhere else.
vendor / license / license_commercial_okWho built it and what you're allowed to do with it.
paramsModel size.
recommendedThe platform's suggested pick within a family.
deprecatedtrue when retired — keeps serving existing deployments, no new ones.
supportsCapability caps: tasks, max_context (lookback cap), max_horizon.

Fetch one with GET /v1/models/foundation/{family}/{slug}404 with "Foundation model chronos_bolt/chronos-bolt-tiny is not available" if the platform doesn't host it.

Check license_commercial_ok before building on a model — some open-source models are research-only.

Deploy zero-shot

POST /v1/models/deploy-foundation creates a live deployment of a foundation model directly — no model row, no pipeline, no training. Reference the model by family + slug, or by its catalog blueprint_uid:

curl -X POST "$API_BASE/v1/models/deploy-foundation" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Workspace-Id: $WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "family": "chronos_bolt",
    "slug": "chronos-bolt-base",
    "horizon": 64
  }'
{
  "data": {
    "promotion_id": "3f8a1c02-…",
    "deployment_type": "foundation",
    "status": "deployed",
    "ready": true,
    "message": "Model is deployed and ready for inference."
  }
}

Request body

FieldMeaning
family requiredThe model family. Send family + slug — or blueprint_uid instead of both.
slug requiredThe model within the family.
blueprint_uid optionalThe catalog ID (pfm__… / extfm__…) as an alternative to family + slug.
horizon optionalDefault forecast horizon for this deployment. Defaults to 128.
reason optionalFree-text note stored on the deployment.

Zero-shot deployments run on always-on shared serving — a 201 with "status": "deployed" means you can call inference immediately. If the serving pool is still warming, status starts at "deploying" and flips to "deployed" when it's ready; watch it in Deployments.

Errors

StatusWhyExample message
400Neither a catalog blueprint_uid nor family + slug given"Provide either 'blueprint_uid' (foundation prefix) or 'family' + 'slug'"
404The model doesn't exist / isn't available"Foundation model chronos_bolt/chronos-bolt-tiny is not available"
409You already deployed this model in this workspace"This foundation model is already deployed."
503Shared foundation serving isn't provisioned in this regionerror.code SERVING_UNAVAILABLE

The 409 and 503 bodies are returned bare (no data envelope): error.code ALREADY_DEPLOYED (with error.details.promotion_id) — the promotion_id points at your existing deployment.

Fine-tune a foundation model

An adapter is what fine-tuning produces: a compact set of weights trained on your segment, applied on top of the frozen foundation model at inference time. Adapters are cheap to train, cheap to store, and swappable.

To fine-tune, create a model with kind: "foundation" and train it with a pipeline:

curl -X POST "$API_BASE/v1/models" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Workspace-Id: $WORKSPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "foundation",
    "name": "Chronos tuned for daily sales",
    "purpose": "Fine-tune chronos-bolt-base on retail data",
    "description": "Adapter over chronos_bolt/chronos-bolt-base",
    "visibility": "private",
    "categories": ["retail"],
    "tags": ["forecast"],
    "metadata": {},
    "family": "chronos_bolt",
    "slug": "chronos-bolt-base",
    "intensity": "adapt",
    "lookback": 2048,
    "horizon": 64
  }'
{
  "data": {
    "uid": "d3f81c56-…",
    "message": "Model created successfully"
  }
}

The kind-specific fields (on top of the shared catalog fields):

FieldMeaning
family requiredAny available family — predictfm, chronos_bolt, …
slug requiredWhich model of that family. For predictfm, defaults from task.
task optionalforecast (default), embed, impute, classify, anomaly, multivariate.
intensity optionalHow much fine-tuning to do: adapt (default), specialize, or forge. Deeper costs more.
lookback optionalContext window per sample. Defaults to 2048, capped by the family's max_context.
horizon optionalForecast horizon. Defaults to 128, capped by the family's max_horizon.

Exceeding a family cap returns 400, e.g. "foundation 'horizon' for family 'chronos_bolt' is capped at 64; got 128". Only available families are accepted. Fine-tuning charges credits upfront by intensity — see Billing.

You can also skip creating a model document entirely: pass the foundation model straight into a pipeline's models array ({"family": "chronos_bolt", "slug": "chronos-bolt-base"}) — on its own, or in a pool racing your own models — and the platform synthesizes the training recipe for you.

Browse adapters

Adapters produced by fine-tuning — across every family — share one list:

curl "$API_BASE/v1/models/foundation/adapters?family=chronos_bolt&visibility=all" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-Workspace-Id: $WORKSPACE_ID"
{
  "data": {
    "adapters": [
      {
        "adapter_id": "adp_5T1MW8KQ2Z7X4CJ9NB0RHV",
        "family": "chronos_bolt",
        "backbone_slug": "chronos-bolt-base",
        "task": "forecast",
        "visibility": "private",

      }
    ],
    "count": 1
  }
}

Query parameters

ParameterMeaning
family optionalOnly adapters over one family.
slug optionalOnly adapters over one foundation model.
task optionalOnly one task.
owner optionalOnly one owner's adapters.
visibility optionalpublic (default), private (only yours), or all (public plus yours). Other owners' private adapters are never returned.

GET /v1/models/foundation/adapters/{adapter_id} fetches one (404 "Adapter 'adp_…' not found" — also returned for private adapters you don't own).

Which foundation models are available (and when an old one is retired) is managed by the platform — you'll occasionally see a model marked deprecated: true in listings. Deprecated models keep serving existing deployments; they just stop being offered for new ones.

On this page