From historical data to a prediction
Provide data with known outcomes. Spavik creates a model to predict those outcomes for new data.
Create, use and update a model
- 01
Evaluate
Check whether your history contains enough information to predict the chosen value.
POST /v1/datasets/evaluate - 02
Create a model
Choose the column to predict. Spavik trains a model using your historical data.
POST /v1/models - 03
Predict
Send new rows. The model returns a predicted value for each one.
POST /v1/models/{id}/predict - 04
Send outcomes
Report the values you actually observed.
POST /v1/models/{id}/outcomes - 05
Monitor
Compare predictions with real outcomes.
GET /v1/models/{id}/performance - 06
Refresh
Create a new version that includes the outcomes you reported.
POST /v1/models/{id}/refresh
Forecast the next values in a time series
Measure forecast accuracy on a known period, then request future values. No persistent model is needed.
- Backtest
POST /v1/forecast/backtest - Forecast
POST /v1/forecast
What Spavik handles for you
You choose the column to predict. Spavik does the rest, with no ML knowledge needed. To calculate predictions, it keeps examples from your history as part of the model it hosts.
- Model choice
- Automatic, based on the column you predict
- Settings to tune
- None
- Categories and missing values
- Accepted as they are
- Hosting
- By Spavik, nothing to deploy
- Training
- Free
- Minimum
- 10 rows, with at least 2 different values to predict
- Updates
- A new model version
What data can you use?
- Historical customer, order, transaction or sensor data
- A prediction per row with predict(), time series forecasts with forecast()
- Columns containing numbers, categories or missing values
- At least 10 rows to create a model; this does not guarantee that the data is predictable
- Images, audio and video
- Free text as the main signal
- Data only known after the outcome: it distorts the model evaluation
- A series with fewer observations than the number of periods to forecast
Errors that say what to do next
Every error returns a stable code for your program and a detail that explains what was refused and how to fix it. A developer or an AI agent can act on it without opening the docs.
{
"status": "error",
"message": "QUOTA_MODELS_EXCEEDED",
"messageDetail": "Model limit reached (3/3) on the build plan. Archive a model you no longer serve, or upgrade to the pro plan."
}Start by evaluating your data
Get an API key. Evaluating a table is free.