Skip to content

Coûts et crédits

Ce qui se facture

L'apprentissage ne coûte rien. Seules les prédictions produites sont facturées.

OpérationCoût
POST /v1/models, entraînement0 crédit
POST /v1/models/{id}/predictles crédits du moteur par ligne scorée, 1 sur le moteur par défaut
POST /v1/forecastl'horizon multiplié par le nombre de séries
POST /v1/models/{id}/outcomes0 crédit
POST /v1/models/{id}/refresh0 crédit
Toutes les lectures0 crédit

Un exemple pour fixer les idées : une prévision sur 56 points avec un horizon de 7 coûte 7 crédits, et non 56. C'est l'horizon qui compte, pas la longueur de l'historique que vous fournissez. Plusieurs séries en un appel coûtent le même prix que des appels séparés et donnent les mêmes valeurs. Chaque moteur annonce son prix par prédiction dans GET /v1/engines ; le moteur par défaut coûte un crédit.

Savoir avant de dépenser

Les bibliothèques calculent le coût sur votre machine, sans rien demander à l'API.

python
model.estimate_predict(rows)                    # 12 crédits
spavik.estimate_forecast(serie, horizon=7)      # 7 crédits
js
await model.estimatePredict(rows);
await spavik.estimateForecast(serie, { horizon: 7 });

Et chaque réponse facturable indique ce qu'elle a coûté, ainsi que ce qui reste : dans le corps quand la route le rend, et toujours dans l'en-tête X-Spavik-Predictions-Remaining, que les bibliothèques lisent.

python
r = model.predict(rows)
r.cout    # 12
r.solde   # 88

spavik.usage()["predictions_remaining"]   # le même nombre, à tout moment, gratuit

Depuis un agent, predict et forecast acceptent dry_run: true sur le serveur MCP : le même appel n'envoie rien, ne débite rien, et répond avec le coût face à ce qui reste.

Quand le solde est épuisé

L'API répond 402 CREDITS_EXHAUSTED, et l'erreur porte à la fois le solde et le montant qui aurait été nécessaire.

python
from spavik import SpavikCreditsExhausted

try:
    model.predict(rows)
except SpavikCreditsExhausted as exc:
    print(exc.balance, exc.required, exc.request_id)

Le solde de crédits prend le relais lorsque le volume mensuel inclus dans votre plan est consommé : l'API continue de répondre au lieu de s'arrêter au milieu du mois.

Limite du plan gratuit

Le plan gratuit autorise un seul modèle par compte, tous workspaces confondus. Au-delà, l'API répond QUOTA_MODELS_EXCEEDED et vous invite soit à archiver un modèle dont vous ne vous servez plus, soit à changer de plan.

L'idempotence, pour ne jamais payer deux fois

Les cinq opérations qui modifient quelque chose acceptent un en-tête Idempotency-Key. Rejouer le même appel avec la même clé renvoie la réponse déjà calculée, sans nouveau débit.

Les bibliothèques la posent d'elles-mêmes et la rejouent à l'identique lorsqu' elles réessaient. Une coupure réseau ne se paie donc jamais deux fois.

Documentation générée pour partie depuis le contrat OpenAPI.