Facturation
Prix en dollars, réserves, règlement, plafonds et grand livre.
Les prix et soldes sont en dollars américains. estimatedCost, cost, available, held et total sont des chaînes décimales sans symbole monétaire. Utilisez un type décimal, pas un flottant, pour la comptabilité.
{
"available": "128.42",
"held": "0.36",
"total": "128.78"
}Fonds promotionnels et crédit accordé
GET /api/v1/chat/credit peut inclure funding, qui distingue les fonds prépayés, les dotations promotionnelles et le crédit approuvé. Son absence dans une ancienne réponse ne signifie pas un solde nul. Utilisez client.getBalance() ou spicyapi balance --json. Les montants restent des chaînes décimales exactes en USD et les dates sont au format RFC3339.
prepaidAvailableUsd indique les fonds prépayés disponibles et grantAvailableUsd le total des dotations actuellement valides. Chaque entrée de grants expose availableUsd, heldUsd, spentUsd, status, startsAt, expiresAt et modelSlugs. Une liste de modèles vide signifie tous les modèles. La période de validité et les modèles autorisés sont vérifiés à la prise en charge. Ces fonds ne sont pas retirables. La liste contient au maximum 100 dotations, en priorité celles avec un solde restant ou réservé, puis par date décroissante dans chaque groupe ; grantsHasMore signale d’autres enregistrements. Ne confondez pas son sous-total avec le total du compte.
credit.limitUsd est un plafond approuvé, pas un solde en espèces. credit.availableUsd est le crédit encore utilisable, usedUsd la dette liquidée restant due et heldUsd la part réservée. Expiration, désactivation ou dépassement limitent les nouveaux appels sans effacer la dette. available peut être négatif après utilisation du crédit : son signe ne suffit pas à décider si une requête est recevable. Un cashShortfallUsd positif indique un manque lié à une reprise de paiement externe, que ni les dotations ni le crédit ne peuvent couvrir. Le serveur vérifie les conditions lors de la prise en charge.
Les remises fixent le prix ; les dotations et le crédit déterminent son financement. Les réservations libérées retournent à leur source initiale sans réactiver une dotation expirée ou révoquée. Les changements nécessitent une approbation manuelle. Contactez le support : aucune API publique ne permet de se créditer soi-même. Dans le registre, grant_expire indique une expiration et grant_revoke une révocation.
Utilisation de la clé API courante
GET /api/v1/usage agrège uniquement les tâches de la clé API utilisée pour l’authentification. from et to sont des dates UTC au format YYYY-MM-DD. L’intervalle [from,to) inclut le début et exclut la fin, sur 92 jours au maximum. Par défaut, to est la date de demain en UTC et from se situe sept jours avant to. totalSpend et chaque valeur spend sont des chaînes décimales en USD : elles additionnent uniquement les montants réellement facturés et déjà réglés, sans les réservations en cours. Les tâches sont rattachées à leur date de création ; un règlement tardif peut donc modifier les montants d’un jour précédent. Cette réponse ne représente ni le solde du compte ni le budget restant de la clé.
Remises client et promotions
Une offre peut concerner tous les utilisateurs ou un compte précis, sur tous les modèles ou une sélection. Une remise permanente reste valable jusqu’à sa désactivation ; une promotion limitée s’applique entre son début et sa fin réels. Les tarifs propres à un compte nécessitent une connexion à ce compte ou un devis avec sa clé API.
Les remises ne se cumulent pas : le meilleur tarif applicable est choisi automatiquement. Pour un prix de $10, une promotion de 10% et une remise de compte de 20% donnent $8. Après expiration, les nouveaux devis utilisent la meilleure offre restante, ou le tarif normal.
Un compte à rebours ne réserve pas le prix. Demandez un devis jobs/quote avec votre identité et les paramètres complets, puis renouvelez-le si l’offre, le prix ou les paramètres changent. Une tâche acceptée conserve son prix figé même si la promotion se termine pendant son exécution ; le montant facturé ne dépasse pas le montant réservé.
Les remises s’appliquent automatiquement à la consommation API, pas au montant rechargé, et ne constituent pas un remboursement sur recharge. Les budgets journaliers ou mensuels extrapolent le tarif actuel. Une promotion peut expirer avant la fin de cette période : vérifiez sa date de fin.
Unités de facturation
pricing[].unit vaut per_image, per_second, per_request ou per_1k_tokens. Lisez quantityField et pricing[].variant dans le catalogue au lieu de deviner les champs d’entrée.
Réservation, facturation et libération des fonds
createTask réserve estimatedCost. succeeded est réglé selon l’usage réel ; failed, expired et les anciens enregistrements canceled libèrent tout. Une nouvelle tâche acceptée ne peut pas être annulée. Tâche et réserve sont créées dans une seule transaction, et chaque tâche termine son règlement exactement une fois.
Solde et plafonds
GET /api/v1/chat/credit renvoie available, held et total. Un solde insuffisant produit 40201 ; un plafond quotidien, mensuel ou cumulé de la clé, comme le plafond quotidien de la plateforme, produit 40202. Les plafonds quotidiens repartent à minuit UTC et les plafonds mensuels le 1er du mois à minuit UTC ; un plafond cumulé ne se réinitialise jamais. Une valeur explicite de 0 signifie illimité.
Grand livre
Le ledger est append-only et enregistre séparément topup, bonus, hold, settle, refund, adjust et chargeback. Ces mouvements de solde ne sont pas effacés avec le contenu des tâches et restent consultables dans l’historique de facturation.
Consultez le contrat OpenAPI 3.1 pour la définition complète des champs.

