Tarifs unitaires des opérations
YODI publie le tarif en crédits de chaque opération facturable activée. Le catalogue permet de consulter le prix configuré et son unité avant d'utiliser un service. Il ne constitue pas un devis pour un parcours complet et n'affiche pas le solde de votre compte.
Le tableau ci-dessous lit le catalogue public actif à l'ouverture de la page. Les tarifs et unités sont configurés par les administrateurs autorisés et ne sont pas figés dans cette documentation. Si le catalogue est indisponible ou invalide, aucun tarif d'exemple n'est affiché.
Chargement du catalogue actif…
Endpoint public
GET https://api.yodi.tg/v1/billing/pricing
Cet endpoint en lecture seule est public et ne nécessite ni clé API, ni corps de requête, ni paramètre de requête. Il ne retourne aucune donnée liée à un compte. Le catalogue est limité à 60 requêtes par minute et peut être mis en cache pendant 30 secondes.
curl --fail-with-body "https://api.yodi.tg/v1/billing/pricing"
Réponse
Les réponses réussies utilisent l'enveloppe standard YODI. Le schéma ci-dessous omet volontairement les valeurs commerciales ; récupérez les valeurs actuelles depuis l'endpoint ou le tableau dynamique ci-dessus.
interface PricingCatalog {
version: number;
effectiveAt: string | null;
operations: Array<{
operation: string;
unit: string;
creditsPerUnit: number;
}>;
}
| Champ | Signification |
|---|---|
version | Entier positif identifiant la version tarifaire active. |
effectiveAt | Date d'activation UTC, ou null si la version active n'a pas de date d'activation. |
operations | Jusqu'à 12 tarifs d'opérations activées et uniques. Les opérations désactivées sont omises. |
operation | Identifiant fermé d'une opération YODI facturable. |
unit | Unité du tarif. Lisez-la dans la réponse; ne la déduisez pas du nom de l'opération. |
creditsPerUnit | Entier de 0 à 1 000 000. La valeur 0 signifie explicitement que l'opération est gratuite. |
Le catalogue peut inclure les opérations de traduction, assistant, finance,
rappels, climat, analyse, synthèse vocale, transcription, SMS, WhatsApp texte
ou audio et appel vocal. L'unité dépend de la politique de l'opération : par
exemple completed_request, generated_second, artifact, transcription ou
accepted_recipient. La synthèse vocale peut être tarifée par artefact ou par
seconde générée mesurée, selon la politique active.
Les identifiants d'opération actuels sont module.translate.request,
module.assistant.request, module.financial.request,
module.reminder.request, module.climate.request, analysis.request,
audio.synthesis, audio.transcription, message.sms.recipient,
message.whatsapp.text.recipient, message.whatsapp.audio.recipient et
message.call.recipient. Les champs operation et unit de la réponse font
autorité; ne construisez pas d'identifiants ni d'unités à partir de données
fournies par l'utilisateur.
Une opération absente de operations n'a pas de tarif public actif. Son absence
ne signifie pas qu'elle est gratuite. L'endpoint ne retourne ni brouillon de
politique, ni fournisseur/modèle d'IA sélectionné, ni donnée de compte, ni
solde de portefeuille. Le financement est communiqué séparément par
l'endpoint authentifié; le backend peut retourner le
modèle historique par service ou le portefeuille commun. Ni le catalogue ni un
tarif individuel ne prouvent que le portefeuille commun est activé en
production.
Erreurs et utilisation sûre
503 PRICING_UNAVAILABLE: la politique active est indisponible ou ne passe pas les contrôles d'intégrité. Ne la remplacez pas par un tarif codé en dur.429: la limite de requêtes de l'endpoint est dépassée; réessayez après le délai fourni par le serveur, le cas échéant.- Une réponse mal formée constitue une erreur de contrat. Ne traitez pas une opération ou une unité inconnue comme un tarif valide.
Le prix unitaire retourné n'est pas nécessairement le coût complet d'un parcours. Un parcours peut effectuer plusieurs opérations facturables, et un envoi peut dépendre du nombre de destinataires acceptés. L'audio généré est facturé selon l'unité et la quantité mesurée appliquées par l'API. Consultez le résultat des opérations et l'historique de consommation de votre compte pour comprendre les débits réglés.
Voix de l'agent financier
Lorsque POST /v1/ai/financial/message demande une synthèse vocale
(speak: true), la facturation peut inclure le tarif configuré de
module.financial.request pour l'opération financière réussie et celui de
audio.synthesis pour l'audio généré. Le backend mesure la durée de l'audio
obtenu et arrondit la quantité aux secondes entières supérieures. Le nombre de
champs financiers sélectionnés n'est pas l'unité facturée pour l'audio : un
contenu parlé plus long peut produire un audio plus long et donc un débit audio
mesuré plus élevé. Tout envoi ultérieur par SMS, WhatsApp ou appel vocal est une
opération distincte, facturée selon son canal et le nombre de destinataires
acceptés. Consultez les tarifs actifs dans le catalogue ; la consommation
réglée par le serveur fait autorité.
Les tarifs, soldes de financement, quotas de requêtes et limites de débit sont des contrats distincts. Une réponse de type portefeuille commun rend les fonds dépensables pour plusieurs opérations; le tarif de chaque opération reste indépendant.
Estimation de relance d'un rappel
Demandez une estimation au serveur avant de confirmer la relance ponctuelle d'un rappel existant :
POST https://api.yodi.tg/v1/ai/reminders/{id}/relaunch/estimate
L'endpoint est authentifié et limité au propriétaire du rappel. Son enveloppe
standard contient un estimateToken opaque et de courte durée ainsi qu'un
pricingQuote calculé avec le même tarif actif que celui utilisé pour vérifier
la capacité de paiement :
interface PricingQuote {
operation: string;
unit: string;
quantity: number;
creditsPerUnit: number;
totalCredits: number;
pricingVersion: number;
}
Le serveur fournit l'opération de canal, la quantité de destinataires, le
tarif unitaire, le total et la version tarifaire. Ne calculez pas le total dans
le navigateur à partir du catalogue public. Confirmez en envoyant uniquement
l'estimateToken retourné à POST /v1/ai/reminders/{id}/relaunch; ne le
modifiez, ne le recréez et ne le réutilisez jamais. Un devis absent ou mal
formé est une erreur de contrat, pas une raison de remplacer le prix par une
valeur fixe. Consultez le guide de financement partagé
pour distinguer tarif, solde disponible et fonds réservés.