Plans and limits
Read the current plan, model quota and prediction allowance from the API.
Read current plans
The pricing and limits are available without authentication. The SDKs have no
plan-catalogue method, so the Python and JavaScript tabs use their standard
HTTP clients for this public read. They use SPAVIK_BASE_URL when it is set,
and production otherwise.
import json
import os
from urllib.request import urlopen
base_url = os.environ.get("SPAVIK_BASE_URL", "https://api.spavik.co")
with urlopen(base_url + "/v1/plans") as response:
print(json.load(response))The plans are free, build, pro, growth and enterprise. Each one lists
its price, monthly allowance and limits: active models (max_models), rows per
prediction (max_predict_rows) and context rows (max_context_rows). Read
that response for current values instead of hardcoding a pricing table in your
integration. The Free plan uses one-time signup credits, not a monthly
prediction allowance. Check usage for the available balance.
Active-model limits
The limit applies across the account's workspaces. Archiving stops serving a model and frees its slot while keeping its artifacts. Restoring takes a slot again and can fail when the quota is full. Permanent deletion is a separate, irreversible API operation.
model.archive()
spavik.restore(model.id)QUOTA_MODELS_EXCEEDED means the plan has no active-model slot left. Choose a
model to archive or change the plan before trying to create another model.
Consumption
A prediction consumes the engine's credits per scored row. Forecasting costs
horizon × the engine's credits per call, with all series included: one
credit per step on the default engine. Training, evaluation, backtesting and
refreshing are free. Paid-plan allowance and credit balance contribute to the
available predictions according to the plan.
usage = spavik.usage()
print(usage["predictions_remaining"])predictions_remaining reports available credit units. In this usage response,
an explicit null means there is no enforced prediction-credit limit; the
current API applies this to Enterprise. An absent field does not establish
availability, and included_units_per_month: null has a different meaning:
Free has no monthly allowance but still spends its finite credits.
On a plan with a monthly allowance, credit_balance alone is not the full
available amount. See Costs and credits for balance snapshots and SDK values.
Rate limiting and retries
The engine routes apply no per-key request rate today; rate_limit_per_second
in the plan catalogue is indicative. For a 429 TOO_MANY_REQUESTS, honor
Retry-After when provided and retain any
original idempotency key and payload. Consult API conventions
for retries where the outcome is uncertain. Model quota and credit exhaustion
require a change in account state, not a tight retry loop.
How is this guide?
Last updated on