Run locally
Install the Python package and run inference on your own machine or server.
Call the API
Send a request to our hosted endpoint. No setup, no GPU required.
Local
Install the open-source package:"nori-30m" (~29.2M) or "nori-6m" (~6M base). Omitting model= loads
the ~6M base without warning, so pass it explicitly (see Models).
Your first prediction
NoriRegressor is a scikit-learn–style estimator: fit stores your labeled
rows as context (there is no training step) and predict returns one value per
query row in a single forward pass.
With a DataFrame
Prediction intervals
Nori returns a full predictive distribution, so you get uncertainty for free. Passoutput_type="quantiles":
Handle missing values
You don’t need to fill in missing values beforehand. The model handles them natively.API
The hosted API runs the same model on our infrastructure, so no installation or GPU is required. Set up your API key in the API key guide. From Python, use thesynthefy client. The same call works
either way: mode="remote" sends your rows to the hosted endpoint,
mode="local" runs the model on your own machine.
Make a request
Send your labeled rows (X_train, y_train) and the rows you want to predict
(X_test) in a single call:
Bearer scheme).
Request body
null/NaN cells are allowed in X_train and X_test and are imputed
server-side.
Request size limit
The limit applies to the whole request, i.e. all ofX_train, y_train, and
X_test together. Since size grows with rows × features, you only approach it
with very large inputs (on the order of millions of values).
If you hit the limit, send fewer example rows, use fewer features, or split
X_test into smaller batches. You can reuse the same X_train/y_train across
those calls.
Response
The client returns one value per row inX_test as a plain list:
200 (values illustrative):
predictions, one value per X_test row, in order. The response also
includes a usage block (token counts) for API compatibility; it isn’t
meaningful for a tabular model, so you can ignore it. (The Python client returns
just the predictions list.)
The first request after a scale-to-zero idle triggers a checkpoint download
and warmup and can take ~60–90 seconds. Warm requests return in ~1–2 seconds.
Models
Select a model with themodel parameter. The friendly names below work in both
the Python client (SynthefyNoriClient) and the synthefy-nori package
(NoriRegressor). Nori and Nori-30M run locally or on the hosted API;
Nori Thinking is hosted-API only.
model=name — what you pass toSynthefyNoriClient(model=…)orNoriRegressor(model=…).- Hosted-API id — the value in the request body’s
modelfield on the raw HTTP endpoint (what the cURL example sends). The client fills it in for you from the friendly name; local inference doesn’t use it. - Availability — Local + API runs on your machine (weights download from Hugging Face on first use) or on the hosted endpoint. API only runs on the hosted endpoint only.
Nori Thinking is hosted-API only. It spends extra test-time compute to lift
accuracy, is slower and premium-priced, and has no downloadable checkpoint. Only
the medium budget is available today; both
"nori-30m-thinking" and
"nori-30m-thinking-medium" route to it. Selecting Thinking for local inference
(SynthefyNoriClient(mode="local"/"auto", …) or
NoriRegressor(model="nori-30m-thinking-medium")) raises an error pointing you
at the hosted API. Use mode="remote".GET /forecasting-api/nori/available-models, and shown per
model in the console.
"nori-30m" (~29.2M) or "nori-6m" (~6M base). The
synthefy client requires it and raises if you omit it; NoriRegressor
falls back to the ~6M base silently, so pass it there too. In local mode the
selector picks the checkpoint (downloaded from Hugging Face on first use). The
raw Hosted-API slug (e.g. synthefy/nori-30m) is also accepted by the client
and is what the cURL endpoint expects in the model field.
Next steps
Python Client
Auth, retries, DataFrames and text columns, handled for you.
Examples
End-to-end worked examples on real datasets.
Missing Values & Imputation
Pass NaNs straight through, with no pre-filling required.
Explainability
SHAP values, feature interactions, and partial dependence.
Run it in your cloud
Deploy on Amazon SageMaker, or call Nori from Snowflake SQL.
Product page
Learn more about Synthefy Nori (Tabular).