Spavik
GuidesIntegrate

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

On this page