Votre facture Claude est principalement constituée de jetons d'entrée, pas de sortie. L'API est sans état, donc à chaque tour, vous renvoyez l'historique complet de la conversation : l'invite système, les définitions d'outils, les documents que vous avez collés et chaque message précédent. Lors d'une longue boucle d'agent ou d'une session Claude Code, ce contexte renvoyé s'accumule rapidement, et vous le payez à chaque requête. La sortie représente la petite partie de la facture.
Ainsi, les leviers qui réduisent réellement votre facture sont ceux qui diminuent ce que vous envoyez, réduisent le coût par jeton, ou vous empêchent de renvoyer du contexte inutile. Ce guide présente les leviers concrets, en commençant par les solutions natives, puis un proxy tiers (pxpipe) qui adopte un angle différent, et enfin où une API simulée s'inscrit pendant que vous êtes encore en phase de construction.
Si vous voulez d'abord les bases de la tarification (comment le compteur fonctionne, ce qu'est un jeton, comment la mise en cache et le traitement par lots sont facturés), notre explication des coûts de l'API Claude couvre ce sujet. Cet article reste axé sur la réduction de la facture, nous ne répéterons donc pas en détail la théorie de la tarification.
Levier 1 : Mise en cache de l'invite
La mise en cache de l'invite est le changement le plus rentable pour la plupart des charges de travail d'agents. Vous marquez un préfixe stable (invite système, définitions d'outils, longs documents de référence) comme pouvant être mis en cache, et Claude le stocke. Lors de la prochaine requête qui commence avec les mêmes octets, vous lisez à partir du cache au lieu de payer le prix d'entrée complet pour le retraiter.
L'économie est solide. Les lectures de cache coûtent environ 0,1 fois le taux d'entrée de base, vous économisez donc jusqu'à ~90% sur la portion mise en cache. Les écritures de cache coûtent plus cher qu'un jeton d'entrée normal : 1,25x pour le TTL de 5 minutes, ou 2x pour le TTL d'une heure. Cette prime d'écriture explique pourquoi la mise en cache n'est rentable que si vous réutilisez le préfixe. Le seuil de rentabilité est d'environ 2 requêtes pour le cache de 5 minutes et d'environ 3 pour le cache d'une heure. Si un préfixe n'est utilisé qu'une seule fois et jeté, la mise en cache vous coûte de l'argent ; s'il est utilisé des dizaines de fois, c'est presque gratuit après la première écriture.
Le hic est que la mise en cache correspond à un préfixe au niveau de l'octet. Tout changement à l'intérieur de la région mise en cache l'invalide et force une nouvelle écriture au prix fort. Le coupable habituel est une variable qui se glisse dans la partie « stable » : un horodatage dans l'invite système, un ID de session, un compteur de requêtes, une liste d'outils réordonnée. Cela vous semble stable et est lu comme de nouveaux octets pour le cache.
Vérifiez que la mise en cache fonctionne réellement. Lisez usage.cache_read_input_tokens sur vos réponses. Pour des requêtes répétées qui partagent un préfixe, ce nombre devrait être élevé et non nul. S'il reste à zéro, quelque chose dans votre préfixe change à chaque appel, et vous payez le prix fort tout en croyant que vous êtes mis en cache. Pour les mécanismes de la mise en cache et de son fonctionnement, consultez ce qu'est la mise en cache d'invite et comment elle fonctionne.
Levier 2 : Choisir le bon modèle
La surconsommation la plus courante est d'exécuter un modèle plus grand que ce que la tâche exige. Claude vous offre une échelle de prix claire, et le routage par tâche au lieu de l'utilisation par défaut d'un seul modèle est souvent la plus grande réduction de poste de dépense que vous obtiendrez.
Voici la tarification actuelle par million de jetons :
| Modèle | ID du modèle | Entrée | Sortie | Fenêtre de contexte |
|---|---|---|---|---|
| Fable 5 | claude-fable-5 |
$10 | $50 | 1M |
| Opus 4.8 | claude-opus-4-8 |
$5 | $25 | 1M |
| Sonnet 5 | claude-sonnet-5 |
$3 ($2 intro) | $15 ($10 intro) | 1M |
| Haiku 4.5 | claude-haiku-4-5 |
$1 | $5 | 200K |
Quelques observations à tirer de ce tableau. Fable 5 coûte 2 fois plus cher qu'Opus 4.8, tant en entrée qu'en sortie, ce qui en fait le modèle le plus cher largement diffusé. Opus 4.8 offre une fenêtre de contexte complète de 1 million de jetons sans surcoût pour le long contexte, vous ne payez donc pas de supplément pour lui fournir une grande base de code. Sonnet 5 est proposé à un prix de lancement de 2$/10$ jusqu'au 31/08/2026, puis passe à 3$/15$. Haiku 4.5 est le modèle d'entrée de gamme à 1$/5$, avec une fenêtre plus petite de 200K.
Associez le modèle à la tâche :
- Fable 5 pour le raisonnement le plus difficile à long terme, où la capacité supplémentaire change réellement le résultat. Utiliser Fable par défaut alors qu'Opus aurait fait le travail est le moyen le plus courant pour les équipes de doubler leur facture sans raison.
- Opus 4.8 pour la plupart des travaux d'agent et de codage. C'est le choix par défaut judicieux pour Claude Code et les boucles intensives en outils.
- Sonnet 5 pour le trafic de production à volume élevé où vous avez besoin d'une bonne qualité à un taux inférieur.
- Haiku 4.5 pour les tâches simples ou critiques en termes de vitesse : classification, extraction, routage, réponses courtes.
Un détail de facturation sur Fable 5 : si un classificateur de sécurité refuse une requête, le paramètre bêta fallbacks peut rediriger ce tour vers Opus 4.8, et le tour redirigé est facturé aux tarifs d'Opus. C'est généralement une réduction, et non un coût surprise, mais il est bon de savoir que votre trafic Fable peut afficher des lignes tarifées comme Opus.
Pour des analyses de coûts plus approfondies sur les deux niveaux les plus chers, consultez la tarification d'Opus 4.8, la tarification de Fable 5, et la comparaison directe entre Fable 5 et Opus 4.8 pour savoir quand le facteur 2x en vaut la peine. Si vous souhaitez essayer les niveaux supérieurs à faible ou sans coût pendant votre évaluation, nous couvrons l'utilisation gratuite d'Opus 4.8 et l'appel direct à l'API Fable 5.
Levier 3 : API de traitement par lots (50 % de réduction)
Si votre travail n'exige pas de réponse en temps réel, l'API de traitement par lots réduit de moitié chaque jeton. Vous envoyez des tâches à /v1/messages/batches, elles s'exécutent de manière asynchrone, et vous récupérez les résultats. La plupart des lots se terminent en moins d'une heure ; la limite stricte est de 24 heures. La réduction de 50 % s'applique à toute l'utilisation des jetons pour le lot, en entrée et en sortie.
L'adéquation est étroite mais précieuse. Le traitement par lots est pour le travail qui peut attendre :
- Exécuter des évaluations sur un ensemble de tests.
- Classification ou extraction en masse sur un arriéré.
- Remplir des résumés, des balises ou des métadonnées adjacentes aux embeddings pour les enregistrements existants.
- Tout grand travail hors ligne où quelques minutes de latence ne vous coûtent rien.
Si la moitié de vos dépenses Claude est un traitement nocturne que vous exécutez actuellement via le point de terminaison synchrone, le déplacer vers le traitement par lots représente une réduction directe de 50 % sur cette moitié sans perte de qualité. C'est le gain le moins cher de cette liste à évaluer, car le seul compromis est la latence que vous n'utilisiez de toute façon pas.
Levier 4 : Ajuster l'effort, max_tokens et count_tokens
Trois paramètres contrôlent le coût maximal d'une seule requête, et les définir délibérément évite que les coûts n'augmentent.
Effort. Le paramètre output_config.effort accepte low, medium, high, xhigh ou max. Il régit la quantité de réflexion du modèle avant de répondre, et les jetons de réflexion sont facturés. Un effort moindre signifie moins de jetons de réflexion et de sortie. De nombreuses tâches exécutées par habitude à high produisent la même réponse à medium ou low pour moins d'argent. Testez une ou deux étapes inférieures et vérifiez si la qualité est maintenue.
max_tokens. C'est une limite stricte sur la sortie. Cela ne réduira pas le coût d'une réponse qui aurait été courte, mais cela limite le cas de dérive : un modèle qui décide d'émettre un essai de 4 000 jetons alors que vous vouliez un objet JSON. Définissez-le à une limite raisonnable pour la tâche afin qu'une seule réponse verbeuse ne puisse pas faire exploser un poste de dépense.
count_tokens. Estimez le coût avant d'envoyer. Le point de terminaison count_tokens vous indique exactement combien de jetons d'entrée une requête facturera, en utilisant le propre tokenizer de Claude. N'utilisez pas tiktoken pour cela. Tiktoken est le tokenizer d'OpenAI et sous-estime Claude d'environ 15 à 20 %, donc budgétiser avec cela signifie que votre facture réelle sera significativement plus élevée que votre estimation. Si vous êtes proche d'un budget par requête, count_tokens est le moyen de détecter une invite surdimensionnée avant qu'elle ne vous coûte cher.
Levier 5 : Élaguer le contexte que vous renvoyez
Parce que l'API est sans état, une longue boucle d'agent renvoie son historique complet à chaque tour, et la majeure partie de cet historique est un poids mort au 30ème tour : sorties d'outils sur lesquelles vous avez déjà agi, exploration que vous avez dépassée, fichiers que vous avez lus une seule fois. Vous continuez à payer le prix d'entrée complet pour tout renvoyer.
Deux fonctionnalités côté serveur l'élaguent pour vous :
- Édition de contexte (
clear_tool_uses_20250919) supprime les résultats d'outils obsolètes du contexte renvoyé, de sorte que les anciens appels d'outils cessent d'être facturés à chaque tour suivant. - Compaction (
compact_20260112) résume l'historique plus ancien sous une forme plus courte, de sorte qu'une longue conversation cesse de transporter sa transcription brute complète.
Les deux s'exécutent côté serveur, ce qui signifie que vous n'avez pas besoin de créer manuellement un résumeur ou de découper des tableaux de messages. Pour les sessions Claude Code de longue durée en particulier, c'est la même pression qui conduit à atteindre les limites de contexte en milieu de tâche ; notre guide sur la fenêtre de jetons Claude Code et les réinitialisations explique comment cela se manifeste dans l'éditeur. La conclusion en matière de facturation est simple : arrêtez de payer pour renvoyer un contexte dont le modèle n'a plus besoin.
Aller plus loin : rendre le contexte en images avec pxpipe
Les leviers natifs réduisent ou re-tarifent tous les jetons que vous envoyez. pxpipe s'attaque au même coût de jetons d'entrée sous un angle différent : il rend le contexte volumineux et stable sous forme d'images afin qu'il soit tokenisé à moindre coût.
Ce que c'est. pxpipe est un proxy local (sous licence MIT, écrit en TypeScript) qui se situe entre votre client et l'API Anthropic. Vous pointez ANTHROPIC_BASE_URL vers lui, et il inspecte chaque requête à sa sortie.
Comment il réduit les coûts. Le texte dense est cher par jeton. pxpipe réécrit les parties volumineuses et stables d'une requête (invite système, documents d'outils, historique plus ancien) en images PNG compactes avant que la requête ne quitte votre machine. Le contenu dense représente environ 3,1 caractères par jeton-image contre environ 1 caractère par jeton-texte, donc la conversion en image de ce contenu peut réduire ses jetons d'entrée d'une grande marge. Le projet rapporte un exemple d'invite système plus documents d'outils d'environ 48k caractères aboutissant à environ 2,7k jetons-image contre environ 25k en texte. De manière critique, il utilise des seuils de rentabilité : il ne convertit en image que le contenu où le calcul des jetons est réellement avantageux, et la prose éparse passe en tant que texte inchangé.
Installer et exécuter. Deux commandes :
npx pxpipe-proxy
Cela démarre le proxy sur 127.0.0.1:47821. Puis pointez Claude Code vers lui :
ANTHROPIC_BASE_URL=http://127.0.0.1:47821 claude
Prise en charge des modèles. Par défaut, pxpipe convertit en images les requêtes pour claude-fable-5 et GPT 5.6. Opus 4.7/4.8 et GPT 5.5 sont optionnels, car le projet rapporte qu'ils lisent le contexte imagé de manière sensiblement moins bonne. Vous les activez avec la variable d'environnement PXPIPE_MODELS (ou le tableau de bord à l'URL du proxy). Tout le reste passe sans modification.
Économies rapportées. Ce sont les chiffres rapportés et benchmarkés par le projet lui-même, et non des chiffres que nous avons vérifiés de manière indépendante. pxpipe rapporte un aperçu de production de 59 % d'économies, une facture de 100 $ tombant à environ 41 $ sur 13 709 requêtes, et un pilote SWE-bench Lite avec une taille de requête réduite de 65 %. Traitez-les comme des benchmarks de fournisseur et vérifiez sur votre propre trafic.
Les compromis honnêtes. La conversion en image n'est pas de l'argent gratuit.
- Cela interagit avec la mise en cache de l'invite. La conversion en image modifie les octets de la requête, et votre préfixe mis en cache est une correspondance d'octets. La mise en cache et la conversion en image ciblent toutes deux le même coût de jetons d'entrée, elles peuvent donc s'opposer l'une à l'autre : le changement qui fait gagner la conversion en image peut être le changement qui modifie votre région mise en cache. L'approche qui économise le plus dépend de votre préfixe spécifique et de votre modèle de réutilisation. Mesurez les deux sur votre propre charge de travail plutôt que de supposer qu'elles s'additionnent.
- Le modèle lit le contexte imagé via la vision. Le projet lui-même signale que des chaînes denses (longs ID hexadécimaux, jetons exacts) peuvent être mal lues, et les erreurs sont silencieuses, non signalées. Vérifiez la qualité de la sortie sur vos propres tâches avant de faire confiance aux économies.
- Il s'agit d'un proxy tiers gérant votre trafic. Il s'exécute localement, ce qui est bien, mais il reste dans le chemin de votre requête. Évaluez-le en fonction de votre propre politique de sécurité avant d'y faire transiter du trafic de production.
pxpipe vaut la peine d'être testé si votre contexte est dominé par des blocs larges, stables et denses et que vous pouvez valider la qualité. Pour les charges de travail éparses ou très favorables à la mise en cache, les leviers natifs peuvent déjà capter la majeure partie des gains.
Réduisez les jetons de développement et de test que vous gaspillez pendant la construction
Rien de ce qui précède ne change le fait que vous brûlez de vrais jetons payants pendant que vous construisez encore l'intégration. Apidog ne réduira pas votre facture Claude de production, et ne prétend pas le faire. Là où il vous fait économiser de l'argent, c'est dans la boucle de développement et de test.
Chaque fois que vous exécutez votre intégration contre l'API Anthropic en direct pendant le développement, chaque itération coûte de vrais jetons : l'exécution échouée, la nouvelle tentative, la tâche CI qui se déclenche à chaque poussée. Ces dépenses s'accumulent pendant que vous itérez sur la forme de l'invite, la logique d'analyse et la gestion des erreurs, dont aucune n'a besoin d'un vrai modèle pour être validée.
Simulez plutôt la réponse d'Anthropic dans Apidog. Définissez le contrat de requête et de réponse pour le point de terminaison Claude que vous appelez, puis pointez vos tests et votre CI vers la simulation. Votre boucle s'exécute contre un faux déterministe qui renvoie la forme que vous attendez, et vous dépensez zéro jeton pour valider la plomberie. Vous pouvez également concevoir et documenter ce contrat de requête/réponse au même endroit, afin que votre équipe s'accorde sur l'interface avant que quiconque ne dépense un jeton dessus. Cela réduit les jetons de développement et de test que vous gaspillez pendant la construction, et non votre facture de production. C'est la portée honnête.
Empilez les leviers
Ce n'est pas l'un ou l'autre. Les plus grandes réductions proviennent de l'empilement :
- Mettez en cache le préfixe stable. Invite système, outils, documents. Vérifiez que
cache_read_input_tokensest non nul. - Routez par tâche. Opus 4.8 par défaut, Fable 5 seulement là où cela change le résultat, Sonnet 5 pour le volume, Haiku 4.5 pour les travaux simples.
- Traitez le travail hors ligne par lots. Tout ce qui n'est pas sensible à la latence va à
/v1/messages/batchespour 50 % de réduction. - Limitez chaque requête. Ajustez
effort, plafonnezmax_tokens, estimez aveccount_tokens. - Élaguez le renvoi. Édition de contexte et compaction pour que les boucles longues cessent de payer pour un historique mort.
- Testez si l'imagerie aide. Si votre contexte est grand et dense, comparez pxpipe à la mise en cache sur votre propre préfixe.
- Simulez pendant la construction. Gardez la boucle de développement et de test hors du compteur payant.
Commencez par la mise en cache et le routage des modèles, car ces deux éléments représentent généralement la majeure partie de la réduction. Mesurez après chaque changement, car le seul chiffre qui compte est votre facture réelle.
FAQ
Les jetons d'entrée ou de sortie coûtent-ils plus cher sur ma facture Claude ? Par jeton, la sortie coûte plus cher que l'entrée pour chaque modèle. Mais pour les charges de travail d'agent et de codage, le côté entrée représente généralement la facture la plus élevée, car l'API sans état vous oblige à renvoyer l'historique complet de la conversation à chaque tour. C'est pourquoi les leviers les plus importants ciblent les jetons d'entrée.
La mise en cache de l'invite ou l'API de traitement par lots permet-elle de réaliser de plus grandes économies ? Cela dépend de votre charge de travail. La mise en cache permet d'économiser jusqu'à ~90 % sur le préfixe répété du trafic interactif, elle est donc avantageuse pour les boucles de chat et d'agent qui réutilisent une invite système. Le traitement par lots réduit de 50 % tous les coûts, mais uniquement pour les tâches que vous pouvez exécuter de manière asynchrone. De nombreuses équipes utilisent les deux : mise en cache du chemin interactif, traitement par lots des tâches hors ligne.
Devrais-je tout régler par défaut sur Fable 5 ? Non. Fable 5 coûte 2 fois plus cher qu'Opus 4.8 et est destiné aux raisonnements les plus difficiles à long terme. Pour la plupart des travaux d'agent et de codage, Opus 4.8 vous donne le même résultat à la moitié du taux d'entrée et de sortie. Utiliser Fable par défaut alors qu'Opus ferait l'affaire est la surconsommation la plus courante.
pxpipe s'empile-t-il avec la mise en cache de l'invite ? Pas proprement. L'imagerie modifie les octets de la requête, et la mise en cache est une correspondance de préfixe au niveau de l'octet, de sorte que les deux ciblent le même coût de jeton d'entrée et peuvent s'opposer l'un à l'autre. Testez les deux sur votre préfixe réel et mesurez lequel économise le plus ; ne supposez pas qu'ils s'additionnent.
Apidog réduit-il mes coûts de production Claude ? Non. Apidog simule l'API Anthropic afin que vos tests et votre CI ciblent une fausse API au lieu de brûler des jetons payants pendant que vous construisez. Cela réduit vos dépenses de développement et de test, pas votre facture de production.
