<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Antoine Laurent</title>
    <description>The latest articles on DEV Community by Antoine Laurent (@antoine_laurentt).</description>
    <link>https://dev.to/antoine_laurentt</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3820003%2Fa715e92b-d41a-4a32-8b32-8cf0b0c9b5c8.png</url>
      <title>DEV Community: Antoine Laurent</title>
      <link>https://dev.to/antoine_laurentt</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/antoine_laurentt"/>
    <language>en</language>
    <item>
      <title>Facturation GitHub Copilot : Ce que les équipes API doivent savoir</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Wed, 29 Apr 2026 07:13:10 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/facturation-github-copilot-ce-que-les-equipes-api-doivent-savoir-3ec3</link>
      <guid>https://dev.to/antoine_laurentt/facturation-github-copilot-ce-que-les-equipes-api-doivent-savoir-3ec3</guid>
      <description>&lt;p&gt;Le modèle de facturation de GitHub Copilot a changé plusieurs fois récemment. Depuis ce mois-ci, la révision de code Copilot sur les pull requests consomme des minutes GitHub Actions du compte de facturation propriétaire du dépôt. Avec le quota de requêtes premium introduit le trimestre dernier, les équipes API doivent suivre trois métriques en parallèle : licences Copilot, requêtes premium et minutes Actions. Voici comment les mesurer, estimer leur impact et ajuster vos workflows CI avant de découvrir la facture.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog aujourd’hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Nous terminerons par un workflow avec Apidog pour regrouper spécification API, tests de contrat et révision IA dans un flux cohérent, au lieu de les disperser entre plusieurs tableaux de bord de facturation.&lt;/p&gt;

&lt;p&gt;Si vous estimez aussi le coût des API de modèles utilisées directement par votre équipe, consultez les guides sur la &lt;a href="http://apidog.com/blog/gpt-5-5-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;tarification de GPT-5.5&lt;/a&gt; et la &lt;a href="http://apidog.com/blog/deepseek-v4-api-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;tarification de DeepSeek V4&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  En bref
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Copilot repose désormais sur trois indicateurs : licence par siège, requêtes premium et minutes GitHub Actions pour la révision de code.&lt;/li&gt;
&lt;li&gt;La révision de code Copilot sur les PR s’exécute comme une action GitHub en arrière-plan.&lt;/li&gt;
&lt;li&gt;Les dépôts API consomment souvent plus que la moyenne : spécification, clients générés, handlers et tests augmentent la taille des diffs.&lt;/li&gt;
&lt;li&gt;Les requêtes premium concernent surtout les usages agentiques : Workspace, mode agent, Espaces Copilot et certains choix de modèles.&lt;/li&gt;
&lt;li&gt;Avant le prochain cycle de facturation, définissez des limites de dépenses et suivez les minutes Actions par dépôt API actif.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Les trois indicateurs à suivre
&lt;/h2&gt;

&lt;p&gt;Copilot n’est plus une seule ligne de coût. Pour prévoir la facture, séparez les trois métriques suivantes.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Licence par siège
&lt;/h3&gt;

&lt;p&gt;C’est le coût fixe.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copilot Business : 10 $ par utilisateur et par mois&lt;/li&gt;
&lt;li&gt;Copilot Enterprise : 19 $ par utilisateur et par mois&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce forfait couvre notamment :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;le chat ;&lt;/li&gt;
&lt;li&gt;les complétions en ligne ;&lt;/li&gt;
&lt;li&gt;les suggestions multi-lignes ;&lt;/li&gt;
&lt;li&gt;les intégrations IDE ;&lt;/li&gt;
&lt;li&gt;l’accès au pool de modèles standard.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Action recommandée : auditez les sièges une fois par trimestre et retirez ceux des utilisateurs inactifs.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;coût_sièges_business = utilisateurs_actifs × 10
coût_sièges_enterprise = utilisateurs_actifs × 19
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Requêtes premium
&lt;/h3&gt;

&lt;p&gt;Les requêtes premium s’appliquent aux fonctionnalités plus coûteuses : mode agent, Workspace, Espaces Copilot ou sélection de modèles au-delà du modèle par défaut.&lt;/p&gt;

&lt;p&gt;Tarifs indicatifs actuels :&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Fonctionnalité&lt;/th&gt;
&lt;th&gt;Coût en requêtes premium&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Chat avec modèle par défaut&lt;/td&gt;
&lt;td&gt;Gratuit pour les niveaux payants&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Complétions en ligne&lt;/td&gt;
&lt;td&gt;Gratuit pour les niveaux payants&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Mode agent, modèle par défaut&lt;/td&gt;
&lt;td&gt;1 par requête&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Workspace, modèle par défaut&lt;/td&gt;
&lt;td&gt;1 par requête&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sélection de Claude Sonnet 4.5&lt;/td&gt;
&lt;td&gt;Multiplicateur 1,5x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sélection de GPT-5.5&lt;/td&gt;
&lt;td&gt;Multiplicateur 2x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Sélection de GPT-5.5 Pro&lt;/td&gt;
&lt;td&gt;Multiplicateur 6x&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Requête Espaces Copilot&lt;/td&gt;
&lt;td&gt;1 par requête&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Chaque siège inclut un quota mensuel :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Business : 300 requêtes premium par siège&lt;/li&gt;
&lt;li&gt;Enterprise : 1 000 requêtes premium par siège&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Les dépassements sont facturés 0,04 $ par requête, jusqu’à la limite de dépenses définie pour l’organisation.&lt;/p&gt;

&lt;p&gt;Pour une équipe API, les requêtes qui montent vite sont les tâches comme :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Régénère le client OpenAPI.
Écris un test de contrat pour ce nouvel endpoint.
Refactorise ce handler et adapte les tests.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Une seule instruction peut entraîner plusieurs étapes internes et donc plusieurs requêtes premium.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Minutes GitHub Actions pour la révision de code
&lt;/h3&gt;

&lt;p&gt;La nouveauté importante : lorsqu’une pull request déclenche une révision Copilot, celle-ci s’exécute comme une action GitHub. Les minutes consommées sont déduites du quota GitHub Actions habituel de l’organisation.&lt;/p&gt;

&lt;p&gt;À retenir :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ces minutes utilisent le même quota que votre CI.&lt;/li&gt;
&lt;li&gt;Ce n’est pas un quota séparé.&lt;/li&gt;
&lt;li&gt;Les dépôts privés consomment des minutes Actions.&lt;/li&gt;
&lt;li&gt;Les dépôts publics bénéficient d’un traitement différent, car les Actions y sont gratuites.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Une révision Copilot typique sur une PR API consomme environ 2 à 6 minutes Actions. Une grosse PR avec beaucoup de fichiers et de contexte peut atteindre environ 15 minutes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minutes_révision = nombre_pr_mensuelles × minutes_moyennes_par_révision
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Pourquoi les dépôts API coûtent souvent plus cher
&lt;/h2&gt;

&lt;p&gt;Les dépôts API ont plusieurs caractéristiques qui augmentent le coût des révisions IA.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Les pull requests touchent plus de fichiers
&lt;/h3&gt;

&lt;p&gt;Une modification API typique peut inclure :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;openapi.yaml&lt;/code&gt; ou une autre spécification ;&lt;/li&gt;
&lt;li&gt;des clients générés ;&lt;/li&gt;
&lt;li&gt;un handler serveur ;&lt;/li&gt;
&lt;li&gt;des tests unitaires ;&lt;/li&gt;
&lt;li&gt;des tests de contrat ;&lt;/li&gt;
&lt;li&gt;de la documentation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plus la diff est large, plus la révision prend du temps.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Le code généré augmente le volume à analyser
&lt;/h3&gt;

&lt;p&gt;Même si les clients générés ne changent pas la logique métier, Copilot peut les lire si vous les incluez dans la PR.&lt;/p&gt;

&lt;p&gt;Exemples de dossiers à filtrer si possible :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;generated/
sdk/
clients/
dist/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Plusieurs outils se déclenchent sur la même PR
&lt;/h3&gt;

&lt;p&gt;Une PR API peut déclencher :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Copilot Review ;&lt;/li&gt;
&lt;li&gt;CodeQL ;&lt;/li&gt;
&lt;li&gt;Snyk ;&lt;/li&gt;
&lt;li&gt;un scanner interne ;&lt;/li&gt;
&lt;li&gt;une suite de tests de contrat ;&lt;/li&gt;
&lt;li&gt;une génération de documentation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Chaque outil a son propre coût ou sa propre consommation de minutes.&lt;/p&gt;

&lt;p&gt;Exemple d’impact :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;50 PR/mois × 4 minutes de révision = 200 minutes Actions/mois
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sur un plan GitHub Team avec 3 000 minutes Linux incluses, un seul dépôt API peut consommer environ 7 % du quota mensuel uniquement pour la révision Copilot.&lt;/p&gt;

&lt;h2&gt;
  
  
  Estimer votre facture mensuelle
&lt;/h2&gt;

&lt;p&gt;Construisez l’estimation en trois blocs : sièges, requêtes premium, minutes Actions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Étape 1 : calculer les sièges
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sièges = utilisateurs_actifs × prix_du_siège
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exemple :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;10 développeurs × 19 $ = 190 $/mois
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Étape 2 : calculer les requêtes premium
&lt;/h3&gt;

&lt;p&gt;Estimez l’usage par développeur :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;utilisateur léger, chat principalement : environ 150 requêtes/mois ;&lt;/li&gt;
&lt;li&gt;utilisateur intensif de Workspace ou mode agent : environ 600 à 800 requêtes/mois.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour Copilot Business :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dépassement_premium = max(0, requêtes_utilisées - 300_par_siège) × 0,04 $
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pour Copilot Enterprise :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dépassement_premium = max(0, requêtes_utilisées - 1000_par_siège) × 0,04 $
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Action recommandée : définissez une limite de dépenses au niveau de l’organisation. Ne laissez pas le dépassement illimité si vous n’avez pas encore de métriques de référence.&lt;/p&gt;

&lt;h3&gt;
  
  
  Étape 3 : calculer les minutes Actions de révision
&lt;/h3&gt;

&lt;p&gt;Utilisez votre volume mensuel de PR et une moyenne prudente de 4 minutes par révision API.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;minutes_révision = prs_par_mois × 4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Puis estimez le dépassement si le quota Actions restant est insuffisant :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dépassement_révision = max(0, minutes_révision - quota_actions_restant) × coût_par_minute
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pour les dépôts privés Linux, le coût dépend du barème GitHub Actions applicable à votre organisation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Exemple
&lt;/h3&gt;

&lt;p&gt;Équipe de 10 développeurs Copilot Enterprise, 200 PR/mois :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Sièges : 10 × 19 $ = 190 $
Révisions : 200 × 4 min = 800 minutes Actions
Dépassement premium estimé : 40 $
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Si les 800 minutes restent dans le quota Actions Enterprise, le surcoût Actions est nul. Le coût principal reste donc les sièges et les éventuels dépassements premium.&lt;/p&gt;

&lt;h2&gt;
  
  
  Adapter votre pipeline CI
&lt;/h2&gt;

&lt;p&gt;Voici trois changements concrets pour réduire la consommation sans désactiver totalement la révision IA.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Ignorer les PR de bots
&lt;/h3&gt;

&lt;p&gt;Les mises à jour Dependabot ou Renovate n’ont pas toujours besoin d’une révision IA.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;types&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;opened&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;synchronize&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;copilot-review&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github.actor != 'dependabot[bot]' &amp;amp;&amp;amp; github.actor != 'renovate[bot]'&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github/copilot-review@v1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  2. Restreindre la révision aux chemins utiles
&lt;/h3&gt;

&lt;p&gt;Pour un dépôt API, ciblez les fichiers à forte valeur :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;paths&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;apis/**/*.yaml'&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;cmd/**'&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;internal/**'&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;tests/**'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Évitez d’inclure les clients générés si la révision n’y apporte pas de valeur.&lt;/p&gt;

&lt;p&gt;Exemples de chemins à exclure ou à ne pas déclencher :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;clients/**
generated/**
sdk/**
dist/**
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Échouer rapidement avant la révision Copilot
&lt;/h3&gt;

&lt;p&gt;Placez les validations rapides avant la révision IA :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;lint de la spécification ;&lt;/li&gt;
&lt;li&gt;validation OpenAPI ;&lt;/li&gt;
&lt;li&gt;tests de contrat ;&lt;/li&gt;
&lt;li&gt;révision Copilot uniquement si les étapes précédentes passent.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Exemple de structure :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;contract-tests&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Run contract tests&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;apidog-cli test&lt;/span&gt;

  &lt;span class="na"&gt;copilot-review&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;needs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;contract-tests&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github/copilot-review@v1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;L’objectif : éviter de consommer des minutes de révision sur une PR qui échoue déjà sur un contrat API.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gouvernance : quatre contrôles à mettre en place
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Définir une limite de dépenses
&lt;/h3&gt;

&lt;p&gt;Configurez-la au niveau de l’organisation. Choisissez un plafond acceptable et réduisez-le légèrement pour garder une marge de sécurité.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Activer les alertes de requêtes premium
&lt;/h3&gt;

&lt;p&gt;Surveillez les seuils :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;50 % ;&lt;/li&gt;
&lt;li&gt;75 % ;&lt;/li&gt;
&lt;li&gt;90 %.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Redirigez les alertes vers Slack, Teams ou votre outil d’incident pour éviter qu’elles restent dans une boîte mail.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Utiliser une politique de déclenchement
&lt;/h3&gt;

&lt;p&gt;Deux modèles fonctionnent bien :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Révision sur toutes les PR importantes :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;paths&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;apis/**'&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;internal/**'&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;tests/**'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Révision uniquement sur label :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;types&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;labeled&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;synchronize&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;copilot-review&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;contains(github.event.pull_request.labels.*.name, 'review-please')&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github/copilot-review@v1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Le modèle par label réduit généralement le nombre de révisions inutiles.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Activer les fonctionnalités par équipe
&lt;/h3&gt;

&lt;p&gt;N’activez pas toutes les fonctionnalités Copilot Enterprise à l’échelle de l’organisation sans suivi. Déployez-les équipe par équipe, puis comparez l’usage avant/après.&lt;/p&gt;

&lt;h2&gt;
  
  
  Où placer Apidog dans le workflow
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; ne remplace pas Copilot. Il sert à centraliser les spécifications, exemples, mocks et tests de contrat afin que la révision IA intervienne plus tard, sur des PR déjà validées.&lt;/p&gt;

&lt;p&gt;Workflow recommandé :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;La spécification API et les exemples de requêtes sont maintenus dans Apidog.&lt;/li&gt;
&lt;li&gt;Les tests de contrat s’exécutent contre le serveur de mock Apidog plutôt que contre l’API live.&lt;/li&gt;
&lt;li&gt;La CI lance &lt;code&gt;apidog-cli&lt;/code&gt; pour valider les contrats.&lt;/li&gt;
&lt;li&gt;La révision Copilot ne s’exécute que si les validations rapides réussissent.&lt;/li&gt;
&lt;li&gt;Copilot se concentre sur la logique serveur, la couverture de tests et les changements de comportement.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Exemple :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;api-contract&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Validate API contract&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;apidog-cli test&lt;/span&gt;

  &lt;span class="na"&gt;copilot-review&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;needs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;api-contract&lt;/span&gt;
    &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;success()&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github/copilot-review@v1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Cette séquence est importante : la révision Copilot est plus coûteuse qu’une validation de contrat rapide. Faites échouer tôt les PR invalides.&lt;/p&gt;

&lt;p&gt;Pour approfondir le workflow de mock et de test, consultez le &lt;a href="http://apidog.com/blog/api-testing-without-postman-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide de test API sans Postman&lt;/a&gt;. Le &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide API DeepSeek V4&lt;/a&gt; montre une application similaire sur une API de modèle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Que surveiller au prochain cycle de facturation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Jours 1 à 7
&lt;/h3&gt;

&lt;p&gt;L’utilisation premium semble souvent normale. La plupart des utilisateurs restent sous le quota inclus.&lt;/p&gt;

&lt;h3&gt;
  
  
  Jours 14 à 21
&lt;/h3&gt;

&lt;p&gt;Les utilisateurs intensifs dépassent le quota. Si une limite de dépenses existe, certaines requêtes peuvent échouer. Sans limite, la facture augmente.&lt;/p&gt;

&lt;h3&gt;
  
  
  Jours 28 à 30
&lt;/h3&gt;

&lt;p&gt;Les minutes Actions liées à la révision Copilot deviennent visibles. Comparez avec le mois précédent pour identifier l’impact réel.&lt;/p&gt;

&lt;p&gt;Actions à effectuer en fin de mois :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;supprimer les sièges inactifs ;&lt;/li&gt;
&lt;li&gt;déplacer les gros utilisateurs vers le niveau adapté ;&lt;/li&gt;
&lt;li&gt;resserrer les filtres de chemins ;&lt;/li&gt;
&lt;li&gt;exclure les PR de bots ;&lt;/li&gt;
&lt;li&gt;exporter les données de facturation GitHub en CSV.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Erreurs courantes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Aucun plafond de dépenses
&lt;/h3&gt;

&lt;p&gt;Une boucle agentique ou un usage intensif non surveillé peut générer des dépassements. Définissez toujours une limite.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Révision activée sur tous les dépôts
&lt;/h3&gt;

&lt;p&gt;Activez Copilot Review uniquement là où la valeur est claire : services critiques, dépôts API actifs, zones à fort risque.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Clients générés inclus dans la révision
&lt;/h3&gt;

&lt;p&gt;Filtrez les dossiers générés. Ils augmentent la diff sans améliorer proportionnellement la qualité de la révision.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. PR de bots révisées
&lt;/h3&gt;

&lt;p&gt;Excluez au minimum :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dependabot[bot]
renovate[bot]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ajoutez aussi vos bots internes de génération ou de mise à jour.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Pas de métriques de référence
&lt;/h3&gt;

&lt;p&gt;Avant de modifier le workflow, exportez les données actuelles :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;nombre de PR/mois ;&lt;/li&gt;
&lt;li&gt;minutes Actions/mois ;&lt;/li&gt;
&lt;li&gt;minutes Actions par dépôt ;&lt;/li&gt;
&lt;li&gt;requêtes premium par utilisateur ;&lt;/li&gt;
&lt;li&gt;coût mensuel total.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sans baseline, vous ne pourrez pas mesurer les économies.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Le prix du siège est-il toujours de 10 $ par utilisateur ?
&lt;/h3&gt;

&lt;p&gt;Copilot Business est à 10 $ par utilisateur et par mois. Copilot Enterprise est à 19 $ par utilisateur et par mois. Copilot Pro pour les particuliers est à 10 $ par mois. Le niveau choisi détermine aussi le quota de requêtes premium inclus.&lt;/p&gt;

&lt;h3&gt;
  
  
  Les complétions en ligne sont-elles désormais mesurées ?
&lt;/h3&gt;

&lt;p&gt;Non. Le chat avec modèle par défaut et les complétions en ligne ne sont pas mesurés pour les niveaux payants. Les requêtes premium concernent les fonctionnalités plus coûteuses et certains choix de modèles.&lt;/p&gt;

&lt;h3&gt;
  
  
  Que se passe-t-il quand le quota premium est épuisé ?
&lt;/h3&gt;

&lt;p&gt;Par défaut, les requêtes peuvent échouer avec une erreur de quota. Vous pouvez autoriser des dépassements à 0,04 $ par requête jusqu’à la limite de dépenses définie.&lt;/p&gt;

&lt;h3&gt;
  
  
  Les minutes Actions de révision sont-elles facturées séparément ?
&lt;/h3&gt;

&lt;p&gt;Non. Elles consomment le même pool de minutes Actions que le reste de votre CI.&lt;/p&gt;

&lt;h3&gt;
  
  
  Peut-on désactiver complètement Copilot Review ?
&lt;/h3&gt;

&lt;p&gt;Oui. Un administrateur d’organisation peut désactiver la fonctionnalité via les politiques applicables aux dépôts ou aux équipes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Copilot Review fonctionne-t-il sur des spécifications API privées ?
&lt;/h3&gt;

&lt;p&gt;Oui. Dans ce cas, les dépôts privés consomment des minutes Actions. Le réviseur peut lire les fichiers de spécification et les handlers comme les autres sources du dépôt.&lt;/p&gt;

&lt;h3&gt;
  
  
  Copilot Review consomme-t-il aussi des requêtes premium ?
&lt;/h3&gt;

&lt;p&gt;Actuellement, la révision consomme des minutes Actions. Le modèle utilisé par le réviseur fait partie de la plateforme Copilot et n’est pas facturé séparément comme une requête premium. Ce point peut évoluer : vérifiez régulièrement le changelog GitHub.&lt;/p&gt;

&lt;p&gt;Pour les équipes qui combinent Copilot Review et appels directs à des API de modèles dans la CI, le &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-free-codex?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide Codex gratuit GPT-5.5&lt;/a&gt; couvre la partie coût par jeton. &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; permet de garder la couche mock et contrats en amont, afin de réserver la révision IA aux PR qui passent d’abord les vérifications rapides.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comment utiliser l'API Zuplo ?</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Mon, 27 Apr 2026 08:57:29 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/comment-utiliser-lapi-zuplo--4fcl</link>
      <guid>https://dev.to/antoine_laurentt/comment-utiliser-lapi-zuplo--4fcl</guid>
      <description>&lt;p&gt;Si vous avez lu des informations sur Zuplo et souhaitez passer à la pratique, ce guide est pour vous. La plateforme Zuplo est rapide à prendre en main, mais sa documentation est éparpillée entre le portail, la CLI et le centre d'apprentissage. Ce tutoriel rassemble tout pour vous permettre de créer un projet, exposer une route, ajouter une authentification par clé API, limiter le débit, écrire une politique TypeScript personnalisée, déployer en périphérie et tout tester avec Apidog.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog dès aujourd'hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;À la fin, vous disposerez d'une passerelle API opérationnelle devant votre backend, avec authentification, limitation de débit, portail développeur auto-généré et workflow Git compatible CI. Comptez environ trente minutes pour tout mettre en place.&lt;/p&gt;

&lt;p&gt;Si vous hésitez sur le choix de Zuplo, commencez par notre article complémentaire : &lt;a href="http://apidog.com/blog/what-is-zuplo-api-gateway?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Qu'est-ce que la passerelle API Zuplo&lt;/a&gt;. Pour les cas particuliers non couverts ici, la &lt;a href="https://zuplo.com/docs" rel="noopener noreferrer"&gt;documentation Zuplo&lt;/a&gt; est complète.&lt;/p&gt;

&lt;h2&gt;
  
  
  En bref
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Inscrivez-vous sur &lt;a href="https://portal.zuplo.com" rel="noopener noreferrer"&gt;portal.zuplo.com&lt;/a&gt; ou créez un projet local avec &lt;code&gt;npm create zuplo&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Définissez vos routes dans &lt;code&gt;config/routes.oas.json&lt;/code&gt; et proxifiez-les vers votre backend avec le handler URL Forward.&lt;/li&gt;
&lt;li&gt;Ajoutez des politiques entrantes (authentification par clé API, limitation de débit, validation de schéma) dans le fichier de route ou via le Route Designer.&lt;/li&gt;
&lt;li&gt;Écrivez des politiques personnalisées en TypeScript dans &lt;code&gt;modules/&lt;/code&gt; avec accès typé aux requêtes et au contexte.&lt;/li&gt;
&lt;li&gt;Déployez via Git : chaque branche génère un environnement de prévisualisation ; fusionnez pour passer en production sur plus de 300 edge locations.&lt;/li&gt;
&lt;li&gt;Testez chaque route avec &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; avant la promotion en prod.&lt;/li&gt;
&lt;li&gt;Tarification : gratuit jusqu’à 100 000 requêtes/mois, plan Builder à 25 $/mois.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prérequis
&lt;/h2&gt;

&lt;p&gt;Avant de commencer, préparez :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Un compte Zuplo.&lt;/li&gt;
&lt;li&gt;Une API d’origine à protéger. Si vous n’en avez pas, utilisez &lt;code&gt;https://echo.zuplo.io&lt;/code&gt; (retourne tout ce que vous lui envoyez).&lt;/li&gt;
&lt;li&gt;Node.js 18+ pour la CLI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour le développement local, utilisez un éditeur comme VS Code (avec l’extension TypeScript). Associez-le à &lt;a href="http://apidog.com/blog/how-to-use-apidog-inside-vscode?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;l’extension Apidog VS Code&lt;/a&gt; pour envoyer des requêtes directement depuis l’éditeur.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 1 : Créez votre projet Zuplo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Option A : Portail
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Connectez-vous sur &lt;a href="https://portal.zuplo.com" rel="noopener noreferrer"&gt;portal.zuplo.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Cliquez sur « Nouveau Projet » et nommez-le (ex : &lt;code&gt;acme-gateway&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Choisissez « Projet vide ».&lt;/li&gt;
&lt;li&gt;L’onglet Code présente l’arborescence de départ.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdr81khlfl02v9c67utmp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdr81khlfl02v9c67utmp.png" alt="Capture d'écran du portail Zuplo" width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Le projet est lié par défaut à un dépôt Git géré, mais vous pouvez connecter votre propre dépôt GitHub, GitLab, Bitbucket ou Azure DevOps dans les paramètres.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option B : CLI
&lt;/h3&gt;

&lt;p&gt;Générez la structure localement et commencez immédiatement en mode git.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm create zuplo@latest &lt;span class="nt"&gt;--&lt;/span&gt; &lt;span class="nt"&gt;--name&lt;/span&gt; acme-gateway
&lt;span class="nb"&gt;cd &lt;/span&gt;acme-gateway
npm &lt;span class="nb"&gt;install
&lt;/span&gt;npm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Le serveur local écoute sur le port 9000 et le Route Designer local sur &lt;a href="http://localhost:9100" rel="noopener noreferrer"&gt;http://localhost:9100&lt;/a&gt;. Les modifications sont rechargées à chaud.&lt;/p&gt;

&lt;p&gt;Pour lier votre projet local à Zuplo :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx zuplo &lt;span class="nb"&gt;link&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sélectionnez le compte et l’environnement. Ensuite, &lt;code&gt;npx zuplo deploy&lt;/code&gt; déploie la branche git courante.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 2 : Définissez votre première route
&lt;/h2&gt;

&lt;p&gt;Ouvrez &lt;code&gt;config/routes.oas.json&lt;/code&gt; (OpenAPI 3 avec extensions Zuplo). Exemple pour transférer &lt;code&gt;GET /v1/products&lt;/code&gt; vers votre backend :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"openapi"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"3.1.0"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"info"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"title"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Passerelle Acme"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0.0"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"paths"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"/v1/products"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"get"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"summary"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Lister les produits"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"operationId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"list-products"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"x-zuplo-route"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"corsPolicy"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"anything-goes"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"handler"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"export"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"urlForwardHandler"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"module"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$import(@zuplo/runtime)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"options"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"baseUrl"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"${env.ORIGIN_URL}"&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"policies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"inbound"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"responses"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"200"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"description"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Succès"&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;L’extension &lt;code&gt;x-zuplo-route&lt;/code&gt; configure le handler (ici &lt;code&gt;urlForwardHandler&lt;/code&gt;) et les politiques. La variable &lt;code&gt;${env.ORIGIN_URL}&lt;/code&gt; permet de cibler différents backends selon l’environnement.&lt;/p&gt;

&lt;p&gt;Définissez &lt;code&gt;ORIGIN_URL&lt;/code&gt; dans les paramètres du portail ou dans &lt;code&gt;config/.env&lt;/code&gt; localement. Utilisez &lt;code&gt;https://echo.zuplo.io&lt;/code&gt; pour commencer.&lt;/p&gt;

&lt;p&gt;Testez sur &lt;a href="http://localhost:9000/v1/products%E2%80%AF:" rel="noopener noreferrer"&gt;http://localhost:9000/v1/products :&lt;/a&gt; vous recevez un echo du backend.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 3 : Ajoutez l’authentification par clé API
&lt;/h2&gt;

&lt;p&gt;Activez la politique dans votre route :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"policies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"inbound"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"api-key-auth"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ajoutez la définition dans &lt;code&gt;config/policies.json&lt;/code&gt; :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"api-key-auth"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"policyType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"api-key-inbound"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"handler"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"export"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ApiKeyInboundPolicy"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"module"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$import(@zuplo/runtime)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"options"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"allowUnauthenticatedRequests"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Créez un consommateur via Services &amp;gt; Service de clés API :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Cliquez sur « Créer un consommateur ».&lt;/li&gt;
&lt;li&gt;Définissez un identifiant (ex : &lt;code&gt;acme-customer-1&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Ajoutez l’e-mail du gestionnaire.&lt;/li&gt;
&lt;li&gt;Copiez la clé API générée.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Testez :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-i&lt;/span&gt; https://YOUR-PROJECT.zuplo.app/v1/products
&lt;span class="c"&gt;# HTTP/2 401&lt;/span&gt;

curl &lt;span class="nt"&gt;-i&lt;/span&gt; https://YOUR-PROJECT.zuplo.app/v1/products &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer YOUR_API_KEY"&lt;/span&gt;
&lt;span class="c"&gt;# HTTP/2 200&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pour des tests plus avancés, importez la spec OpenAPI dans &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, ajoutez un header global &lt;code&gt;Authorization: Bearer {{api_key}}&lt;/code&gt; et reliez &lt;code&gt;api_key&lt;/code&gt; à une variable d’environnement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 4 : Limitez le débit de la route
&lt;/h2&gt;

&lt;p&gt;Ajoutez la limitation de débit après l’authentification :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"policies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"inbound"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"api-key-auth"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"rate-limit-by-key"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dans &lt;code&gt;config/policies.json&lt;/code&gt; :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"rate-limit-by-key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"policyType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"rate-limit-inbound"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"handler"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"export"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"RateLimitInboundPolicy"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"module"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$import(@zuplo/runtime)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"options"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"rateLimitBy"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"sub"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"requestsAllowed"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;60&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"timeWindowMinutes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;rateLimitBy: "sub"&lt;/code&gt; applique la limite par client authentifié (60 requêtes/min). Pour une régulation par IP, utilisez &lt;code&gt;"ip"&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Testez :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="k"&gt;for &lt;/span&gt;i &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;1..70&lt;span class="o"&gt;}&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
  &lt;/span&gt;curl &lt;span class="nt"&gt;-s&lt;/span&gt; &lt;span class="nt"&gt;-o&lt;/span&gt; /dev/null &lt;span class="nt"&gt;-w&lt;/span&gt; &lt;span class="s2"&gt;"%{http_code}&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    https://YOUR-PROJECT.zuplo.app/v1/products &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer YOUR_API_KEY"&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt; | &lt;span class="nb"&gt;sort&lt;/span&gt; | &lt;span class="nb"&gt;uniq&lt;/span&gt; &lt;span class="nt"&gt;-c&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vous verrez 60 réponses &lt;code&gt;200&lt;/code&gt; et 10 réponses &lt;code&gt;429&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 5 : Validez les charges utiles des requêtes
&lt;/h2&gt;

&lt;p&gt;Pour un endpoint &lt;code&gt;POST&lt;/code&gt;, la validation est automatique si le schéma OpenAPI est renseigné.&lt;/p&gt;

&lt;p&gt;Exemple de route avec schéma :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"/v1/products"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"post"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"summary"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Créer un produit"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"operationId"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"create-product"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"requestBody"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"required"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"content"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"application/json"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="nl"&gt;"schema"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"object"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"required"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"priceCents"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="nl"&gt;"properties"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"minLength"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"priceCents"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"integer"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"minimum"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"category"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"enum"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"food"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"drink"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"x-zuplo-route"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"handler"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;/*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;même&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;handler&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;qu'au-dessus&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;*/&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"policies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="nl"&gt;"inbound"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"api-key-auth"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"rate-limit-by-key"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
          &lt;/span&gt;&lt;span class="s2"&gt;"validate-request"&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Définissez la politique :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"validate-request"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"policyType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"open-api-request-validation-inbound"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"handler"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"export"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"OpenApiRequestValidationInboundPolicy"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"module"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$import(@zuplo/runtime)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"options"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"validateBody"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"reject"&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Un &lt;code&gt;POST&lt;/code&gt; mal formé reçoit un 400 avant même d’atteindre votre backend.&lt;/p&gt;

&lt;p&gt;Testez différents scénarios dans &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; : succès, champ obligatoire manquant, valeur d’énum incorrecte.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 6 : Écrivez une politique TypeScript personnalisée
&lt;/h2&gt;

&lt;p&gt;Pour aller au-delà du prêt-à-l’emploi, ajoutez vos propres politiques.&lt;/p&gt;

&lt;p&gt;Exemple : ajouter un header &lt;code&gt;Cache-Control&lt;/code&gt; différent selon le plan client.&lt;/p&gt;

&lt;p&gt;Créez &lt;code&gt;modules/tiered-cache.ts&lt;/code&gt; :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ZuploRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ZuploContext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;HttpProblems&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@zuplo/runtime&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;PolicyOptions&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;paidPlanHeader&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;paidMaxAge&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ZuploRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ZuploContext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;PolicyOptions&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;plan&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;plan&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;plan&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Cache-Control&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;no-store&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Cache-Control&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="s2"&gt;`public, max-age=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;options&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;paidMaxAge&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;info&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;`Cache header set for plan=&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;plan&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ajoutez-la à &lt;code&gt;config/policies.json&lt;/code&gt; :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"tiered-cache"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"policyType"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"custom-code-outbound"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"handler"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"export"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"default"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"module"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"$import(./modules/tiered-cache)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"options"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"paidPlanHeader"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"x-plan"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"paidMaxAge"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Référencez-la dans la route :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"policies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"inbound"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"api-key-auth"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"rate-limit-by-key"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"outbound"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"tiered-cache"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Testez votre politique comme une fonction unitaire avec Vitest ou Jest : passez-lui un objet &lt;code&gt;Response&lt;/code&gt; synthétique et vérifiez les headers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 7 : Déployez en périphérie
&lt;/h2&gt;

&lt;p&gt;Déployez via git :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Ajoute la passerelle de produits avec authent, rate limiting et cache"&lt;/span&gt;
git push origin feature/products-gateway
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Chaque branche crée un environnement de prévisualisation avec URL dédiée (par ex. : &lt;code&gt;https://acme-gateway-feature-products-gateway-abc123.zuplo.app&lt;/code&gt;), incluant toutes vos politiques.&lt;/p&gt;

&lt;p&gt;Testez l’URL de preview dans &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; en l’ajoutant comme environnement. Vérifiez toute votre suite de tests, puis fusionnez :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout main
git merge feature/products-gateway
git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;La production est déployée automatiquement en ~60 secondes, sans downtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 8 : Générez le portail développeur
&lt;/h2&gt;

&lt;p&gt;Le portail développeur est accessible à &lt;code&gt;https://YOUR-PROJECT.developers.zuplo.com&lt;/code&gt;, reconstruit à chaque déploiement :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Une page par route, avec schémas et console d’essai.&lt;/li&gt;
&lt;li&gt;Exemples de code (cURL, JS, Python, Go…).&lt;/li&gt;
&lt;li&gt;Self-service API key pour tout visiteur inscrit.&lt;/li&gt;
&lt;li&gt;Branding personnalisable dans le portail.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si votre spec OpenAPI est bien documentée, le portail est prêt sans effort supplémentaire.&lt;/p&gt;

&lt;p&gt;Pour personnaliser davantage, forkez la source Next.js sur &lt;a href="https://github.com/zuplo/zudoku" rel="noopener noreferrer"&gt;le dépôt GitHub du portail développeur Zuplo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 9 : Testez tout avec Apidog
&lt;/h2&gt;

&lt;p&gt;Après déploiement, testez chaque route, politique et cas d’erreur. &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; rend ce process rapide.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fogdwuct2qhdh0f7n983r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fogdwuct2qhdh0f7n983r.png" alt="Capture d'écran de l'interface Apidog" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Workflow recommandé :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Importez la spec OpenAPI via &lt;code&gt;https://YOUR-PROJECT.zuplo.app/openapi&lt;/code&gt; dans Apidog.&lt;/li&gt;
&lt;li&gt;Créez des environnements (local, preview, prod) avec leur propre &lt;code&gt;base_url&lt;/code&gt; et &lt;code&gt;api_key&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Enregistrez trois requêtes/test par route : succès, échec authent, dépassement de limite.&lt;/li&gt;
&lt;li&gt;Utilisez les tests automatisés pour enchaîner des appels (création, liste, suppression de produit) et vérifier les réponses.&lt;/li&gt;
&lt;li&gt;Générez des snippets code pour vos runbooks.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pour migrer depuis Postman, suivez le &lt;a href="http://apidog.com/blog/api-testing-without-postman-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide API testing without Postman&lt;/a&gt;. &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Téléchargez Apidog&lt;/a&gt; si ce n’est pas déjà fait.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions fréquentes sur l’utilisation de Zuplo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Comment basculer une route entre les environnements sans modifier la spec ?
&lt;/h3&gt;

&lt;p&gt;Utilisez des variables d’environnement : définissez &lt;code&gt;ORIGIN_URL&lt;/code&gt; par environnement et référencez-la dans vos handlers. Modifiez la variable, pas la route.&lt;/p&gt;

&lt;h3&gt;
  
  
  Puis-je exécuter Zuplo hors ligne ?
&lt;/h3&gt;

&lt;p&gt;Oui. &lt;code&gt;npm run dev&lt;/code&gt; démarre la passerelle locale (port 9000) et le Route Designer (9100). Toutes les politiques fonctionnent localement, sauf le service de clé API géré (utilisez &lt;code&gt;npx zuplo link&lt;/code&gt; pour le cloud).&lt;/p&gt;

&lt;h3&gt;
  
  
  Comment annuler un mauvais déploiement ?
&lt;/h3&gt;

&lt;p&gt;Un simple &lt;code&gt;git revert&lt;/code&gt; du commit fautif suivi d’un push suffit : Zuplo redéploie la version précédente (pas de bouton « annuler », git fait foi).&lt;/p&gt;

&lt;h3&gt;
  
  
  Que se passe-t-il pour les requêtes en cours durant un déploiement ?
&lt;/h3&gt;

&lt;p&gt;Déploiements atomiques : les requêtes en cours terminent sur l’ancienne version ; les nouvelles passent sur la nouvelle. Zéro downtime.&lt;/p&gt;

&lt;h3&gt;
  
  
  Puis-je utiliser Zuplo avec gRPC ou WebSockets ?
&lt;/h3&gt;

&lt;p&gt;Oui. &lt;code&gt;urlForwardHandler&lt;/code&gt; proxy les upgrades WebSocket, et gRPC est pris en charge. REST/GraphQL restent les cas les plus courants.&lt;/p&gt;

&lt;h3&gt;
  
  
  Comment exposer mon API Zuplo aux agents IA ?
&lt;/h3&gt;

&lt;p&gt;Ajoutez le handler MCP Server à une route, pointez-le vers votre spec OpenAPI et sélectionnez les opérations à exposer. Les politiques existantes s’appliquent. &lt;a href="https://zuplo.com/docs/mcp-server/introduction" rel="noopener noreferrer"&gt;Voir la doc MCP Server Zuplo&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Combien coûte la passerelle en production ?
&lt;/h3&gt;

&lt;p&gt;Gratuit jusqu’à 100 000 requêtes/mois. Plan Builder : 1 million de requêtes pour 25 $/mois (+100 $ par 100 000 requêtes sup). Offre Enterprise à partir de 1 000 $/mois/an. &lt;a href="https://zuplo.com/pricing" rel="noopener noreferrer"&gt;Détails sur la tarification&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Vous avez maintenant une passerelle Zuplo complète : authentification par clé API, limitation de débit, validation des requêtes, politique TypeScript personnalisée et portail développeur, le tout déployé via Git sur le edge mondial. Prévisualisation, production et accès IA via MCP inclus dans le même repo.&lt;/p&gt;

&lt;p&gt;Pour fiabiliser, testez chaque preview avec &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; avant fusion : vous repérerez les en-têtes d’auth cassés, les schémas incomplets ou les quotas trop larges avant qu’ils n’atteignent la prod. &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Téléchargez Apidog&lt;/a&gt; et connectez-le à votre passerelle dès aujourd’hui.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Qu'est-ce que la passerelle API Zuplo?</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Mon, 27 Apr 2026 06:34:21 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/quest-ce-que-la-passerelle-api-zuplo-34m0</link>
      <guid>https://dev.to/antoine_laurentt/quest-ce-que-la-passerelle-api-zuplo-34m0</guid>
      <description>&lt;p&gt;La plupart des passerelles API semblent encore conçues pour une équipe d’opérations de 2014 : configuration en YAML, gestion fastidieuse d’un plan de contrôle, et nécessité d’attendre qu’un administrateur pousse les changements sur le cluster. Zuplo casse ce paradigme. Cette passerelle API programmable et native edge gère vos routes dans un dépôt Git, vos politiques en TypeScript, et déploie chaque commit sur plus de 300 points de présence mondiaux en quelques secondes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog dès aujourd’hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Ce guide vous montre comment utiliser Zuplo : ce que fait la passerelle, ses différences avec Kong et AWS API Gateway, son coût, et les étapes pour déployer votre première passerelle en moins de 30 minutes. Vous trouverez des exemples de code pour le routage, l’authentification, la limitation de débit, et une méthode de test de chaque endpoint avec &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; avant la mise en production.&lt;/p&gt;

&lt;p&gt;Zuplo s’inscrit dans la même catégorie que Kong, Apigee, et AWS API Gateway, mais avec une approche différente : les développeurs utilisent du vrai code, les opérations bénéficient d’un service managé, et la monétisation est intégrée. Voici un focus sur les points clés et le workflow technique.&lt;/p&gt;

&lt;h2&gt;
  
  
  En bref
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Passerelle API managée native edge&lt;/strong&gt; : routes exécutées sur plus de 300 data centers Cloudflare avec une latence &amp;lt; 50 ms, pas de cold start.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitOps natif&lt;/strong&gt; : tout est versionné dans Git et déployé via CI/CD.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Politiques en TypeScript&lt;/strong&gt; : IDE complet, pas de YAML/Lua.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Gratuit pour 100 000 requêtes/mois&lt;/strong&gt; : environnements, clés API et portails développeur illimités.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fonctionnalités intégrées&lt;/strong&gt; : Auth API Key, JWT, OAuth2, rate-limiting, validation, portail dev auto-généré, monétisation Stripe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Support MCP Server&lt;/strong&gt; : exposez une route à Claude, Codex, Cursor, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testez chaque route&lt;/strong&gt; avec &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; avant la prod.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Qu’est-ce que Zuplo ?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://zuplo.com/docs/api-management/introduction" rel="noopener noreferrer"&gt;Zuplo est une plateforme de gestion d’API&lt;/a&gt; basée sur trois principes : code (TypeScript) plutôt que configuration, edge plutôt que région, Git plutôt qu’interface graphique. Le service est managé et déployé sur le réseau edge Cloudflare (300+ datacenters, rien à provisionner).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06t6wd5qu6bick3ihqgi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06t6wd5qu6bick3ihqgi.png" alt="zuplo archi" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contrairement aux passerelles qui stockent leur config en YAML dans une base centrale, Zuplo traite votre passerelle comme un projet TypeScript. Structure type :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;routes.oas.json&lt;/code&gt; : définition des endpoints&lt;/li&gt;
&lt;li&gt;dossier &lt;code&gt;modules/&lt;/code&gt; : logique custom TypeScript&lt;/li&gt;
&lt;li&gt;fichier de config pour les politiques&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un push sur GitHub déclenche la build, la validation et le déploiement.&lt;/p&gt;

&lt;p&gt;Support natif de REST, GraphQL, gRPC, WebSockets, SOAP. Certifié SOC 2 Type II. Backends AWS, Azure, GCP, option Kubernetes auto-hébergée. &lt;a href="https://zuplo.com/pricing" rel="noopener noreferrer"&gt;Tarification&lt;/a&gt; basée sur les requêtes (pas de coût par siège).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fchc3a093df7p7muegdtm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fchc3a093df7p7muegdtm.png" alt="zuplo features" width="800" height="605"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pourquoi choisir Zuplo plutôt que Kong, Apigee ou AWS API Gateway ?
&lt;/h2&gt;

&lt;p&gt;Chaque passerelle a son ADN :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://apidog.com/blog/apigee-vs-kong/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Kong&lt;/a&gt; : open source, contrôle total, nécessite Lua.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://apidog.com/blog/apigee-vs-kong/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apigee&lt;/a&gt; : entreprise, analytics avancé, learning curve raide.&lt;/li&gt;
&lt;li&gt;AWS API Gateway : bon choix pour AWS, mais pas de portail dev et cold start sur Lambda.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Zuplo vise les petites équipes qui veulent des fonctions “enterprise” sans équipe plateforme dédiée.&lt;/p&gt;

&lt;p&gt;Différences notables :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code, pas YAML&lt;/strong&gt; : ex, une policy de rate-limit en Zuplo = 3 lignes TypeScript, en Kong = 15 lignes YAML.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portail développeur inclus&lt;/strong&gt; : généré automatiquement à partir de l’OpenAPI, même sur le plan gratuit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitOps par défaut&lt;/strong&gt; : tout changement = pull request. Audit, rollback, pas de clics UI à retrouver de nuit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Native edge, pas de cold start&lt;/strong&gt; : Cloudflare Workers, latence minimale, vs 100-800 ms de cold start pour AWS API Gateway + Lambda.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Si vous débutez, ou que votre passerelle actuelle pose problème, Zuplo propose un workflow plus moderne et productif.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fonctionnalités principales de Zuplo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Programmabilité TypeScript-first
&lt;/h3&gt;

&lt;p&gt;Vous codez vos politiques dans des fichiers TypeScript, versionnés avec vos routes. Ex :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ZuploRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ZuploContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@zuplo/runtime&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ZuploRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ZuploContext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;delete&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;x-internal-trace-id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Placez ce fichier dans &lt;code&gt;modules/strip-internal-header.ts&lt;/code&gt;, référencez-le dans une route, push Git, déploiement immédiat.&lt;/p&gt;

&lt;h3&gt;
  
  
  60+ politiques pré-construites
&lt;/h3&gt;

&lt;p&gt;La plupart des besoins standards (auth, JWT, OAuth2, rate-limit, validation OpenAPI, CORS, whitelisting IP, transformations, intégrations amont) sont couverts par des policies prêtes à l’emploi. Il suffit de les déclarer dans la config de route (JSON), pas besoin de coder.&lt;/p&gt;

&lt;h3&gt;
  
  
  Portail développeur auto-généré
&lt;/h3&gt;

&lt;p&gt;Pointez vers votre OpenAPI, et obtenez automatiquement :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Documentation hébergée&lt;/li&gt;
&lt;li&gt;Consoles interactives (try it)&lt;/li&gt;
&lt;li&gt;Exemples cURL, JS, Python, Go…&lt;/li&gt;
&lt;li&gt;Génération de clés API en self-service&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Idéal pour les APIs SaaS orientées développeur.&lt;/p&gt;

&lt;h3&gt;
  
  
  Monétisation API intégrée
&lt;/h3&gt;

&lt;p&gt;Connectez Stripe, définissez les plans (free/pro/entreprise), et le portail gère paiement, souscription, facturation. Unique parmi les passerelles API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Gestionnaire de serveur MCP (agents IA)
&lt;/h3&gt;

&lt;p&gt;Exposez vos endpoints à Claude, Codex, Cursor, etc. Pointage sur votre OpenAPI, sélection des opérations exposées, policies appliquées aussi aux agents IA. &lt;a href="https://zuplo.com/docs/mcp-server/introduction" rel="noopener noreferrer"&gt;Guide complet&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Déploiement edge, latence &amp;lt;50 ms
&lt;/h3&gt;

&lt;p&gt;Déploiement automatique sur le réseau Cloudflare (300+ localisations). L’utilisateur accède toujours au PoP le plus proche. Aucun paramétrage à faire.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comment fonctionne Zuplo sous le capot ?
&lt;/h2&gt;

&lt;p&gt;Pipeline d’une requête :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Matching de route&lt;/strong&gt; : URL/méthode vs &lt;code&gt;routes.oas.json&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Politiques entrantes&lt;/strong&gt; : auth, rate-limit, validation, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Handler&lt;/strong&gt; : proxy, réponse statique, exécution TypeScript, ou gestionnaire MCP&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Politiques sortantes&lt;/strong&gt; : transformations de réponse, suppression d’en-têtes, etc.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Réponse&lt;/strong&gt; : retour client, logs &amp;amp; métriques envoyés&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Tout s’exécute dans un Cloudflare Worker, d’où la faible latence et l’absence de capacité inactive à payer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Déployer rapidement votre première passerelle Zuplo
&lt;/h2&gt;

&lt;p&gt;En 30 minutes, passez de zéro à une passerelle API en prod :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Inscrivez-vous sur &lt;a href="https://zuplo.com" rel="noopener noreferrer"&gt;zuplo.com&lt;/a&gt;&lt;/strong&gt; et créez un projet. Intégrez GitHub pour la synchro auto.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Importez votre OpenAPI&lt;/strong&gt;. Si vous n’en avez pas, créez les routes à la main.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ajoutez la policy d’auth API Key&lt;/strong&gt; dans l’éditeur de routes (&lt;code&gt;api-key-inbound&lt;/code&gt;). Zuplo génère la base de consommateurs &amp;amp; UI clés.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ajoutez la limitation de débit&lt;/strong&gt; (&lt;code&gt;rate-limit-inbound&lt;/code&gt;). Ex : 100 requêtes/minute/clé API (bloc JSON dans la config de route).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Déployez&lt;/strong&gt; : push Git → build &amp;amp; preview URL. Merge pour passer en prod.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testez de bout en bout&lt;/strong&gt; : utilisez &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; pour simuler des requêtes OK/KO, dépassements de quotas, payloads invalides, et vérifier le déclenchement de chaque policy.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Premier déploiement en quelques minutes. L’essentiel du travail : nommage des routes et placement logique des policies, comme sur toute plateforme.&lt;/p&gt;

&lt;h2&gt;
  
  
  Écrire des policies custom TypeScript
&lt;/h2&gt;

&lt;p&gt;Pour aller au-delà des policies standard, écrivez simplement une fonction TypeScript. Exemple : enrichir les requêtes avec des infos utilisateur internes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ZuploRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ZuploContext&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@zuplo/runtime&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;UserContext&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;plan&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pro&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;enterprise&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="nf"&gt;function &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ZuploRequest&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ZuploContext&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;):&lt;/span&gt; &lt;span class="nb"&gt;Promise&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;ZuploRequest&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="nx"&gt;Response&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;apiKey&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;?.&lt;/span&gt;&lt;span class="nx"&gt;sub&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Unauthorized&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;401&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;lookupUrl&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s2"&gt;`https://internal.example.com/users/&lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;userResponse&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;lookupUrl&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;authorization&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Bearer &lt;/span&gt;&lt;span class="p"&gt;${&lt;/span&gt;&lt;span class="nx"&gt;context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;INTERNAL_TOKEN&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s2"&gt;`&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;});&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;userResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ok&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Response&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;User lookup failed&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;status&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;502&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;userResponse&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;json&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;UserContext&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;x-user-id&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;userId&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;x-user-plan&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;user&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;plan&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;À retenir :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Une policy = fonction async standard, testable en unitaire&lt;/li&gt;
&lt;li&gt;Variables d’environnement via &lt;code&gt;context.environment&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Retourner une &lt;code&gt;Response&lt;/code&gt; stoppe le pipeline (pour les erreurs/unauthorized)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tarification Zuplo en 2026
&lt;/h2&gt;

&lt;p&gt;Trois plans simples :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Gratuit&lt;/strong&gt; : 100 000 requêtes/mois, envs/clés/portails illimités, 1 Go d’egress, 2 devs. Vrai trafic, pas un sandbox.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Builder&lt;/strong&gt; ($25/mois) : jusqu’à 1M req/mois, 2 domaines custom, egress supplémentaire, support communautaire.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entreprise&lt;/strong&gt; (dès $1,000/mois) : requêtes/domaines illimités, SLA jusqu’à 99.999%, SSO, RBAC, support 24/7 optionnel, Github Enterprise, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Portail dev open source dispo gratuitement. Consultez les &lt;a href="https://zuplo.com/pricing" rel="noopener noreferrer"&gt;prix à jour&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Comparatif : AWS API Gateway facture $3.50/M req REST + egress + Lambda ; Kong Entreprise coûte souvent bien plus que $1,000. Le niveau gratuit Zuplo est imbattable pour démarrer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quand adopter Zuplo (ou pas)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Zuplo est idéal si :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vous voulez une passerelle managée (pas d’admin Kubernetes)&lt;/li&gt;
&lt;li&gt;Votre équipe maîtrise TypeScript/JavaScript&lt;/li&gt;
&lt;li&gt;Besoin d’un portail dev sans outil tiers&lt;/li&gt;
&lt;li&gt;Monétisation API via Stripe requise&lt;/li&gt;
&lt;li&gt;Exposition d’API à des agents IA (support MCP intégré)&lt;/li&gt;
&lt;li&gt;Trafic mondial/latence edge importante&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;À éviter si :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Besoin absolu d’open source complet (privilégiez Kong)&lt;/li&gt;
&lt;li&gt;Stack totalement on-prem sans sortie Internet&lt;/li&gt;
&lt;li&gt;Exigences internes NGINX très spécifiques&lt;/li&gt;
&lt;li&gt;Forte dépendance existante à Apigee/MuleSoft (coût migration &amp;gt; gain)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tester votre passerelle Zuplo avec Apidog
&lt;/h2&gt;

&lt;p&gt;Après déploiement sur un environnement de prévisualisation, testez chaque route, policy et cas limite avant la prod. C’est là qu’&lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; est essentiel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workflow recommandé :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Importez votre OpenAPI dans Apidog (même spec que Zuplo)&lt;/li&gt;
&lt;li&gt;Appelez chaque endpoint avec API keys valides/invalides pour vérifier l’auth&lt;/li&gt;
&lt;li&gt;Envoyez des payloads invalides pour valider la rejection&lt;/li&gt;
&lt;li&gt;Testez les limites de rate-limit en overloadant un endpoint&lt;/li&gt;
&lt;li&gt;Stockez vos variables d’URL (preview/prod) et clés pour switcher d’env&lt;/li&gt;
&lt;li&gt;Générez du code cURL/JS/Python/Go pour vos docs internes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vous pouvez aussi automatiser vos tests avec Apidog, plus rapide que des scripts maison. Si vous débutez, l’&lt;a href="http://apidog.com/blog/how-to-use-apidog-inside-vscode?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;extension VS Code&lt;/a&gt; et le &lt;a href="http://apidog.com/blog/api-testing-without-postman-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide de migration Postman → Apidog&lt;/a&gt; vous guideront. &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Téléchargez Apidog&lt;/a&gt; pour démarrer.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ Zuplo
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Zuplo est-il open source ?
&lt;/h3&gt;

&lt;p&gt;Le runtime principal est propriétaire, mais le portail développeur et plusieurs libs sont open source sur GitHub. Le plan Enterprise inclut une option Kubernetes auto-hébergée. La plupart des équipes optent pour le service managé.&lt;/p&gt;

&lt;h3&gt;
  
  
  Zuplo peut-il tourner sur mon infra ?
&lt;/h3&gt;

&lt;p&gt;Oui, via le plan Enterprise (Kubernetes auto-hébergé), mais sans le déploiement edge global. À privilégier en cas d’exigences fortes de résidence de données.&lt;/p&gt;

&lt;h3&gt;
  
  
  Zuplo vs Cloudflare API Shield ?
&lt;/h3&gt;

&lt;p&gt;API Shield = sécurité (schema validation, mTLS, etc.), Zuplo = plateforme API complète (routage, policies, portail, monétisation, MCP). Les deux peuvent coexister.&lt;/p&gt;

&lt;h3&gt;
  
  
  Zuplo fonctionne-t-il avec mon OpenAPI ?
&lt;/h3&gt;

&lt;p&gt;Oui, OpenAPI = source de vérité dans Zuplo. Importez, les routes et la doc sont générées, la validation de requête se base dessus.&lt;/p&gt;

&lt;h3&gt;
  
  
  Puis-je exposer Zuplo à Claude/Codex/IA ?
&lt;/h3&gt;

&lt;p&gt;Oui, via le gestionnaire MCP. Les policies d’auth/rate-limit s’appliquent aussi aux agents IA.&lt;/p&gt;

&lt;h3&gt;
  
  
  Déploiement Zuplo : combien de temps ?
&lt;/h3&gt;

&lt;p&gt;Push → preview en &amp;lt;60 secondes. Passage en prod quasi-instantané (artefact déjà buildé).&lt;/p&gt;

&lt;h3&gt;
  
  
  Que se passe-t-il si Cloudflare tombe ?
&lt;/h3&gt;

&lt;p&gt;Zuplo dépend du réseau edge Cloudflare (pannes régionales = impact local). Le plan Enterprise propose des options multi-cloud pour 99.999% de dispo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Zuplo offre une passerelle API moderne : policies TypeScript natives, GitOps, portail dev instantané, monétisation Stripe, support agents IA/MCP. Le plan gratuit couvre la production réelle, le plan Enterprise comble les besoins avancés.&lt;/p&gt;

&lt;p&gt;Pour tester, faites la config 30 min sur une de vos APIs, validez chaque policy avec &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, et décidez sur preuves techniques réelles. Coupler une passerelle edge managée à un client de tests robuste, c’est passer plus vite de « on a une API » à « on a un produit ». &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Téléchargez Apidog&lt;/a&gt; et commencez vos tests.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comment utiliser DeepSeek V4 gratuitement ?</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Fri, 24 Apr 2026 05:32:24 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/comment-utiliser-deepseek-v4-gratuitement--iij</link>
      <guid>https://dev.to/antoine_laurentt/comment-utiliser-deepseek-v4-gratuitement--iij</guid>
      <description>&lt;p&gt;DeepSeek V4 a été lancé le 23 avril 2026, et contrairement à la plupart des lancements de modèles de pointe, les options gratuites sont réellement utilisables. Le chat web officiel fonctionne avec V4-Pro sans nécessiter de carte de crédit. Les poids sont disponibles sous licence MIT et peuvent être téléchargés immédiatement. Les agrégateurs comme OpenRouter et Chutes proposent généralement des quotas gratuits peu après chaque version DeepSeek. En combinant ces options, vous pouvez exécuter des charges de travail V4 conséquentes sans dépenser, tout en préparant la montée en charge vers la facturation payante si nécessaire.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog dès aujourd'hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Ce guide détaille chaque méthode gratuite vérifiée, les cas d’utilisation adaptés, et explique comment mettre en place une collection prête pour la production dans &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; pour assurer une transition fluide vers du payant au besoin.&lt;/p&gt;

&lt;p&gt;Pour un aperçu du produit, consultez &lt;a href="http://apidog.com/blog/what-is-deepseek-v4?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;qu'est-ce que DeepSeek V4&lt;/a&gt;. Pour l'intégration API, lisez &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comment utiliser l'API DeepSeek V4&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  En bref
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;a href="http://chat.deepseek.com" rel="noopener noreferrer"&gt;chat.deepseek.com&lt;/a&gt;&lt;/strong&gt; — Chat web gratuit sur V4-Pro, modes de raisonnement Non-Think, Think High, Think Max. Fonctionne sans carte, disponible immédiatement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Poids Hugging Face + GPU personnel&lt;/strong&gt; — Licence MIT, V4-Flash fonctionne sur 2 à 4 H100, V4-Pro nécessite un cluster.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Niveaux gratuits OpenRouter et Chutes&lt;/strong&gt; — Passerelles offrant un quota gratuit sur DeepSeek peu après chaque lancement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fournisseurs d'inférence Hugging Face&lt;/strong&gt; — Endpoint partagé pour expérimenter gratuitement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crédits d’essai Kaggle, Colab, RunPod&lt;/strong&gt; — Calcul gratuit pour tester l’auto-hébergement.&lt;/li&gt;
&lt;li&gt;Chaque chemin gratuit plafonne l’utilisation. Pour la production, prévoir la montée vers le payant avant d’atteindre la limite.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-225.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-225.png" alt="Une image montrant DeepSeek V4 en discussion avec plusieurs options comme Chatbot, API et Self-Host. Divers chiffres et modèles de cartes GPU (H100, A100) sont présentés avec les coûts associés. Le texte met en évidence la nature gratuite du chat.deepseek.com, la licence MIT pour l'auto-hébergement et les coûts d'abonnement pour l'API. Il met également en évidence les options d'agrégateur." width="800" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 1 : chat.deepseek.com (l'option gratuite par défaut)
&lt;/h2&gt;

&lt;p&gt;Le moyen le plus rapide et fiable est d'utiliser le chat officiel. V4-Pro est activé par défaut ; en haut du compositeur, le sélecteur permet de basculer entre Non-Think, Think High et Think Max.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-224.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-224.png" alt="Capture d'écran de l'interface de chat DeepSeek montrant le sélecteur de mode de raisonnement (Non-Think, Think High, Think Max) en haut, avec le modèle V4-Pro actif." width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuration
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Accédez à &lt;a href="https://chat.deepseek.com/" rel="noopener noreferrer"&gt;chat.deepseek.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Connectez-vous avec e-mail, Google ou WeChat.&lt;/li&gt;
&lt;li&gt;Vérifiez que le modèle actif est bien V4-Pro.&lt;/li&gt;
&lt;li&gt;Commencez à interagir.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Fonctionnalités
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Contexte 1M tokens.&lt;/li&gt;
&lt;li&gt;Téléchargement de fichiers (PDF, images, archives de code).&lt;/li&gt;
&lt;li&gt;Recherche web intégrée.&lt;/li&gt;
&lt;li&gt;Trois modes de raisonnement dont Think Max.&lt;/li&gt;
&lt;li&gt;Historique des conversations et organisation par dossiers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Limites d'utilisation
&lt;/h3&gt;

&lt;p&gt;Aucune limite stricte publiée, mais le service applique du throttling en cas de forte charge. Si vous voyez des délais ou files d’attente persistantes, ralentissez ou passez à l’API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cas d’utilisation adaptés&lt;/strong&gt; : Comparer V4 à Claude sur un prompt, revue de dépôt, analyse de contrat complexe.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Moins adapté&lt;/strong&gt; : Automatisation, reproductibilité.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 2 : Auto-héberger V4-Flash sur votre propre GPU
&lt;/h2&gt;

&lt;p&gt;V4-Flash (MIT) peut être déployé en interne. 284B paramètres (13B actifs), tourne sur 2+ H100 (FP8) ou une carte 80Go (INT4).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coût&lt;/strong&gt; : uniquement le matériel. Idéal pour ceux disposant déjà de GPU.&lt;/p&gt;

&lt;h3&gt;
  
  
  Télécharger les poids
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-U&lt;/span&gt; &lt;span class="s2"&gt;"huggingface_hub[cli]"&lt;/span&gt;
huggingface-cli login
huggingface-cli download deepseek-ai/DeepSeek-V4-Flash &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--local-dir&lt;/span&gt; ./models/deepseek-v4-flash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Environ 500 Go en FP8 : prévoyez l’espace disque.&lt;/p&gt;

&lt;h3&gt;
  
  
  Servir avec vLLM
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="s2"&gt;"vllm&amp;gt;=0.9.0"&lt;/span&gt;

vllm serve deepseek-ai/DeepSeek-V4-Flash &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tensor-parallel-size&lt;/span&gt; 4 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--max-model-len&lt;/span&gt; 1048576 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--dtype&lt;/span&gt; auto &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--port&lt;/span&gt; 8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Une fois lancé, tout client OpenAI-compatible peut pointer vers &lt;code&gt;http://localhost:8000/v1&lt;/code&gt;. &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; gère cela comme n’importe quelle URL de base ; vos collections restent compatibles sans adaptation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Exigences matérielles
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variante&lt;/th&gt;
&lt;th&gt;Cartes minimales (FP8)&lt;/th&gt;
&lt;th&gt;Cartes minimales (INT4)&lt;/th&gt;
&lt;th&gt;Débit réaliste&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;V4-Flash&lt;/td&gt;
&lt;td&gt;2 × H100 80 Go&lt;/td&gt;
&lt;td&gt;1 × H100 80 Go&lt;/td&gt;
&lt;td&gt;50 à 150 tokens/s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V4-Pro&lt;/td&gt;
&lt;td&gt;16 × H100 80 Go&lt;/td&gt;
&lt;td&gt;8 × H100 80 Go&lt;/td&gt;
&lt;td&gt;dépend du cluster&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Si vous louez des GPU, l’API payante est souvent plus économique. L’auto-hébergement cible les équipes avec capacité existante ou besoins de conformité.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 3 : Niveau gratuit OpenRouter
&lt;/h2&gt;

&lt;p&gt;OpenRouter agrège divers modèles derrière une API unique. Des niveaux gratuits sur DeepSeek apparaissent souvent rapidement après chaque sortie.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-226.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-226.png" alt="Capture d'écran de la page OpenRouter affichant la liste des modèles, incluant deepseek/deepseek-v4-pro, avec des informations sur le coût et la disponibilité." width="800" height="293"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuration
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Inscrivez-vous sur &lt;a href="https://openrouter.ai/" rel="noopener noreferrer"&gt;openrouter.ai&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Générez une clé API.&lt;/li&gt;
&lt;li&gt;Repérez &lt;code&gt;deepseek/deepseek-v4-pro&lt;/code&gt; ou &lt;code&gt;deepseek/deepseek-v4-flash&lt;/code&gt; (les variantes gratuites portent souvent le suffixe &lt;code&gt;:free&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Appelez-les avec un SDK OpenAI-compatible :
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;OPENROUTER_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://openrouter.ai/api/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek/deepseek-v4-flash:free&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Write a Python CLI for semver bumping.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Limites
&lt;/h3&gt;

&lt;p&gt;Niveaux gratuits limités à quelques centaines de requêtes/jour/clé, priorité abaissée en cas de charge. Idéal pour le prototypage, pas pour la production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 4 : Fournisseurs d’inférence Hugging Face
&lt;/h2&gt;

&lt;p&gt;Hugging Face héberge un endpoint d’inférence gratuit peu après chaque sortie V4. Limites de débit strictes, latence variable, mais appels gratuits.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;huggingface_hub&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;InferenceClient&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;InferenceClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-ai/DeepSeek-V4-Flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat_completion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Summarize the V4 technical report in 5 bullets.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
    &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;512&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Le token HF est gratuit. Pour du volume, passez à un compte Pro pour des limites supérieures, mais le coût reste inférieur à l’API officielle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Option 5 : Crédits d’essai sur Colab, Kaggle, RunPod, Lambda
&lt;/h2&gt;

&lt;p&gt;Chaque loueur de GPU propose des crédits d’essai :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Google Colab&lt;/strong&gt; : Le T4 gratuit est trop juste. Colab Pro+ (500 unités/mois) permet quelques tests V4-Flash sur A100.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Kaggle&lt;/strong&gt; : Heures GPU gratuites sur T4/P100. Assez pour V4-Flash quantifié, insuffisant pour V4-Pro.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RunPod&lt;/strong&gt; : 10 $ offerts = quelques heures sur H100, suffisant pour benchmarks vLLM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lambda&lt;/strong&gt; : Offres ponctuelles d’heures gratuites H100/H200, vérifiez la page d’inscription.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ces crédits sont pour l’expérimentation ponctuelle, pas pour un usage continu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Créez une collection Apidog agnostique du fournisseur
&lt;/h2&gt;

&lt;p&gt;L’avantage des options gratuites : tester le même prompt sur différentes plateformes, sans duplication.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Étapes :&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Téléchargez &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Créez une collection avec quatre environnements :

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;chat&lt;/code&gt; (placeholder)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;deepseek&lt;/code&gt; (&lt;code&gt;https://api.deepseek.com/v1&lt;/code&gt;)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;openrouter&lt;/code&gt; (&lt;code&gt;https://openrouter.ai/api/v1&lt;/code&gt;)
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;self-hosted&lt;/code&gt; (&lt;code&gt;http://localhost:8000/v1&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Enregistrez une requête POST sur &lt;code&gt;{{BASE_URL}}/chat/completions&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Stockez chaque clé API comme variable secrète, pour garder un corps de requête identique partout.&lt;/li&gt;
&lt;li&gt;Basculez d’environnement pour faire des tests A/B sur chaque backend.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ce modèle, utilisé pour la &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;collection gratuite GPT-5.5&lt;/a&gt;, évite toute duplication de travail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quelle option gratuite choisir ?
&lt;/h2&gt;

&lt;p&gt;Suivez ces heuristiques :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Découverte rapide (5 min)&lt;/strong&gt; : &lt;a href="http://chat.deepseek.com" rel="noopener noreferrer"&gt;chat.deepseek.com&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prototypage produit&lt;/strong&gt; : Niveau gratuit OpenRouter, puis rechargez chez DeepSeek si besoin.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPU disponible et conformité&lt;/strong&gt; : Auto-hébergez V4-Flash sur vLLM.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Besoin de gratuit à long terme&lt;/strong&gt; : Aucune option n’est illimitée. Combinez &lt;a href="http://chat.deepseek.com" rel="noopener noreferrer"&gt;chat.deepseek.com&lt;/a&gt; pour l’interactif et un peu de payant pour automatiser.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quand quitter le niveau gratuit
&lt;/h2&gt;

&lt;p&gt;Trois signaux :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Throttling fréquent&lt;/strong&gt; : Si limité plus d’une fois/jour, il est temps de budgétiser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Besoins de SLA&lt;/strong&gt; : Seule l’API officielle en fournit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exigences de logs/audit/conformité&lt;/strong&gt; : L’API payante offre une facturation claire, les niveaux gratuits non.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Dans ces cas, basculez vers l’&lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API officielle&lt;/a&gt;. Recharge minimale 2 $, tarification token au meilleur prix.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;chat.deepseek.com est-il vraiment gratuit ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Oui. Sans carte, sans période d’essai. Limites douces, service gratuit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Compte Hugging Face requis pour les poids ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Pas strictement, mais un compte améliore les limites de téléchargement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quel chemin gratuit donne accès au vrai V4-Pro ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="http://chat.deepseek.com" rel="noopener noreferrer"&gt;chat.deepseek.com&lt;/a&gt; exécute V4-Pro complet. Les niveaux gratuits OpenRouter ciblent plus souvent V4-Flash.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Peut-on placer un niveau gratuit derrière un produit ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non. Ces niveaux sont instables, limités, parfois retirés sans préavis. Pour un produit, utilisez l’API payante ou auto-hébergez.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L’auto-hébergement est-il vraiment gratuit ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
La licence oui, le matériel non. Si vous possédez déjà des GPU, le coût marginal est faible. Louer des GPU coûte souvent plus cher que l’API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apidog propose-t-il un niveau gratuit pour les tests ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; est gratuit pour la conception et les tests d’API ; seuls les appels à des APIs payantes consomment des crédits. Vous pouvez donc combiner un environnement Apidog gratuit avec &lt;a href="http://chat.deepseek.com" rel="noopener noreferrer"&gt;chat.deepseek.com&lt;/a&gt; ou OpenRouter pour un workflow 100% gratuit.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comment exécuter DeepSeek V4 localement ?</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Fri, 24 Apr 2026 04:58:27 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/comment-executer-deepseek-v4-localement--ag3</link>
      <guid>https://dev.to/antoine_laurentt/comment-executer-deepseek-v4-localement--ag3</guid>
      <description>&lt;p&gt;DeepSeek V4 est disponible depuis le 23 avril 2026 avec une licence MIT sur Hugging Face, un changement majeur pour les équipes souhaitant déployer une IA avancée sur leur propre infrastructure. V4-Flash (284 milliards de paramètres, 13 milliards actifs) fonctionne sur deux H100 en FP8. V4-Pro (1,6 To, 49 milliards actifs) nécessite un cluster, mais rivalise avec GPT-5.5 et Claude Opus 4.6 pour le code et le raisonnement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog dès aujourd'hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Ce guide fournit un mode d'emploi pour déployer DeepSeek V4 localement : exigences matérielles, quantification, configurations vLLM et SGLang, utilisation des outils, et workflow de validation avec Apidog avant toute mise en production.&lt;/p&gt;

&lt;p&gt;Pour un aperçu du produit, consultez &lt;a href="http://apidog.com/blog/what-is-deepseek-v4?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;qu'est-ce que DeepSeek V4&lt;/a&gt;. Pour utiliser l'API hébergée, voyez &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comment utiliser l'API DeepSeek V4&lt;/a&gt;. Pour la comparaison des coûts, voyez &lt;a href="http://apidog.com/blog/deepseek-v4-api-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;tarification de l'API DeepSeek V4&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  En bref
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;V4-Flash&lt;/strong&gt; tourne sur 2 × H100 80 Go en FP8, ou 1 × H100 en INT4 (~500 Go de poids en FP8).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;V4-Pro&lt;/strong&gt; requiert au moins 16 H100 en FP8 pour un usage production. Pas pour laptop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;vLLM&lt;/strong&gt; est le moyen le plus rapide pour exposer une API compatible OpenAI. &lt;code&gt;vllm&amp;gt;=0.9.0&lt;/code&gt; supporte V4.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SGLang&lt;/strong&gt; est préférable pour l'utilisation d'outils et la sortie structurée.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quantification AWQ INT4 ou GPTQ INT4&lt;/strong&gt; : V4-Flash tient sur 1 carte de 80 Go (~5% de perte de qualité).&lt;/li&gt;
&lt;li&gt;Utilisez &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; pour pointer vers &lt;code&gt;http://localhost:8000/v1&lt;/code&gt; avec votre collection existante.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Qui devrait auto-héberger
&lt;/h2&gt;

&lt;p&gt;L'auto-hébergement de V4 est pertinent pour :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Exigences de conformité&lt;/strong&gt; (santé, finance, juridique, défense) : données sur site, licence MIT sans restrictions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Charges importantes et stables&lt;/strong&gt; : au-delà de 200 milliards de tokens/mois, le matériel dédié devient rentable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Réglage fin et recherche&lt;/strong&gt; : checkpoints de base prévus pour la pré-formation continue, licence MIT pour la redistribution.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;À éviter si : vous prototypez, n'avez pas d'expérience GPU, ou si vos coûts API hébergée &amp;lt; 200 $/mois.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exigences matérielles
&lt;/h2&gt;

&lt;p&gt;DeepSeek V4 utilise en natif la précision mixte FP4 + FP8. La VRAM requise dépend du modèle et du niveau de quantification.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variante&lt;/th&gt;
&lt;th&gt;Paramètres totaux&lt;/th&gt;
&lt;th&gt;Paramètres actifs&lt;/th&gt;
&lt;th&gt;VRAM FP8&lt;/th&gt;
&lt;th&gt;VRAM INT4&lt;/th&gt;
&lt;th&gt;Cartes minimum&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;V4-Flash&lt;/td&gt;
&lt;td&gt;284B&lt;/td&gt;
&lt;td&gt;13B&lt;/td&gt;
&lt;td&gt;~500Go&lt;/td&gt;
&lt;td&gt;~140Go&lt;/td&gt;
&lt;td&gt;2 × H100 80Go (FP8) ou 1 × H100 (INT4)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V4-Pro&lt;/td&gt;
&lt;td&gt;1.6T&lt;/td&gt;
&lt;td&gt;49B&lt;/td&gt;
&lt;td&gt;~2.4To&lt;/td&gt;
&lt;td&gt;~700Go&lt;/td&gt;
&lt;td&gt;16 × H100 80Go (FP8) ou 8 × H100 (INT4)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mémoire MoE&lt;/strong&gt; : toute la VRAM pour tous les experts, pas seulement les actifs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;H200/MI300X&lt;/strong&gt; : VRAM plus élevée = moins de cartes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPU grand public&lt;/strong&gt; : insuffisant, même en INT4 sur RTX 5090.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apple Silicon&lt;/strong&gt; : M3 Max/M4 Max (128 Go) peuvent lancer V4-Flash quantifié, mais très lentement.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Étape 1 : Télécharger les poids
&lt;/h2&gt;

&lt;p&gt;Dépôts officiels :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash" rel="noopener noreferrer"&gt;deepseek-ai/DeepSeek-V4-Flash&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://huggingface.co/deepseek-ai/DeepSeek-V4-Pro" rel="noopener noreferrer"&gt;deepseek-ai/DeepSeek-V4-Pro&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;deepseek-ai/DeepSeek-V4-Flash-Base&lt;/code&gt; et &lt;code&gt;DeepSeek-V4-Pro-Base&lt;/code&gt; pour le fine-tuning.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Installez la CLI et téléchargez :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-U&lt;/span&gt; &lt;span class="s2"&gt;"huggingface_hub[cli]"&lt;/span&gt;
huggingface-cli login

huggingface-cli download deepseek-ai/DeepSeek-V4-Flash &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--local-dir&lt;/span&gt; ./models/deepseek-v4-flash &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--local-dir-use-symlinks&lt;/span&gt; False
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Prévoyez 500 Go (V4-Flash) à plusieurs To (V4-Pro). &lt;a href="https://modelscope.cn/models/deepseek-ai/DeepSeek-V4-Flash" rel="noopener noreferrer"&gt;ModelScope&lt;/a&gt; propose les mêmes checkpoints, plus rapide depuis la Chine.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 2 : Choisir un moteur de service
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;vLLM&lt;/strong&gt; : meilleur débit, API OpenAI la plus standard, communauté active. Par défaut.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SGLang&lt;/strong&gt; : primitives avancées pour outils/fonctions, sortie structurée, meilleur gestion des contextes longs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Les deux supportent V4 dès les dernières versions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 3 : Servir V4-Flash avec vLLM
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="s2"&gt;"vllm&amp;gt;=0.9.0"&lt;/span&gt;

vllm serve deepseek-ai/DeepSeek-V4-Flash &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tensor-parallel-size&lt;/span&gt; 2 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--max-model-len&lt;/span&gt; 1048576 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--dtype&lt;/span&gt; auto &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--enable-prefix-caching&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--port&lt;/span&gt; 8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;--tensor-parallel-size 2&lt;/code&gt; : split sur 2 H100 (augmentez selon le nombre de cartes).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--max-model-len 1048576&lt;/code&gt; : contexte 1M tokens. Diminuez pour économiser de la VRAM.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--enable-prefix-caching&lt;/code&gt; : accélère les prompts répétés (prix cache API reproduit).&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;--dtype auto&lt;/code&gt; : respecte la précision mixte FP8.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le serveur expose &lt;code&gt;/v1&lt;/code&gt; compatible OpenAI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 4 : Servir V4-Pro avec vLLM
&lt;/h2&gt;

&lt;p&gt;V4-Pro nécessite un cluster.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vllm serve deepseek-ai/DeepSeek-V4-Pro &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tensor-parallel-size&lt;/span&gt; 8 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--pipeline-parallel-size&lt;/span&gt; 2 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--max-model-len&lt;/span&gt; 524288 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--enable-prefix-caching&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--port&lt;/span&gt; 8000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ajustez le contexte et le parallélisme selon la VRAM disponible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 5 : Servir avec SGLang (utilisation d'outils)
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="s2"&gt;"sglang[all]&amp;gt;=0.4.0"&lt;/span&gt;

python &lt;span class="nt"&gt;-m&lt;/span&gt; sglang.launch_server &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--model-path&lt;/span&gt; deepseek-ai/DeepSeek-V4-Flash &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--tp&lt;/span&gt; 2 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--context-length&lt;/span&gt; 1048576 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--port&lt;/span&gt; 30000
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;SGLang expose &lt;code&gt;/v1&lt;/code&gt; compatible OpenAI sur le port 30000. Son DSL &lt;code&gt;lang&lt;/code&gt; facilite l'appel de fonctions et la sortie JSON.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 6 : Quantifier pour un seul GPU
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;AWQ (recommandé) :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;autoawq

python &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"
from awq import AutoAWQForCausalLM
from transformers import AutoTokenizer

model_path = './models/deepseek-v4-flash'
out_path = './models/deepseek-v4-flash-awq'
model = AutoAWQForCausalLM.from_pretrained(model_path)
tokenizer = AutoTokenizer.from_pretrained(model_path)
model.quantize(tokenizer, quant_config={'w_bit': 4, 'q_group_size': 128})
model.save_quantized(out_path)
tokenizer.save_pretrained(out_path)
"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;GPTQ :&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;auto-gptq
&lt;span class="c"&gt;# Suivez la recette GPTQ, similaire à AWQ.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Servez le modèle quantifié avec vLLM via &lt;code&gt;--quantization awq&lt;/code&gt; ou &lt;code&gt;--quantization gptq&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Étape 7 : Tester avec Apidog
&lt;/h2&gt;

&lt;p&gt;Validez d'abord le serveur local avant tout trafic en production.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhlube65mg8kn9sbhwv0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyhlube65mg8kn9sbhwv0.png" alt="Apidog test" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Téléchargez Apidog.&lt;/li&gt;
&lt;li&gt;Créez une collection pointant vers &lt;code&gt;http://localhost:8000/v1/chat/completions&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Utilisez la même invite de test qu'avec l'API hébergée. Comparez les résultats.&lt;/li&gt;
&lt;li&gt;Testez un contexte de 500K tokens pour valider le cache KV.&lt;/li&gt;
&lt;li&gt;Testez un flux d'appel d'outils avant d'intégrer un agent.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;La collection utilisée pour l'&lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;API DeepSeek V4 hébergée&lt;/a&gt; fonctionne localement sans autre modification que l'URL de base.&lt;/p&gt;

&lt;h2&gt;
  
  
  Observabilité et surveillance
&lt;/h2&gt;

&lt;p&gt;Surveillez ces 4 métriques :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Tokens/secondes&lt;/strong&gt; (invite/génération) : exposé sur &lt;code&gt;/metrics&lt;/code&gt; (Prometheus).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Usage GPU&lt;/strong&gt; : via &lt;code&gt;nvidia-smi&lt;/code&gt; ou DCGM ; &amp;lt;70% indique souvent un batch size sous-optimal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Taux d'accès au cache KV&lt;/strong&gt; : avec &lt;code&gt;--enable-prefix-caching&lt;/code&gt;, baisse = rotation trop rapide des prompts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Latence p50/p95/p99&lt;/strong&gt; : traçage standard ; un p99 qui grimpe indique un blocage de file.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Intégrez le tout dans Grafana ou votre stack d'observabilité.&lt;/p&gt;

&lt;h2&gt;
  
  
  Réglage fin (fine-tuning) des checkpoints de base V4
&lt;/h2&gt;

&lt;p&gt;Utilisez les checkpoints de base pour pré-formation continue ou SFT.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="s2"&gt;"torch&amp;gt;=2.6"&lt;/span&gt; transformers accelerate peft trl

&lt;span class="c"&gt;# SFT standard avec LoRA sur V4-Flash-Base&lt;/span&gt;
python &lt;span class="nt"&gt;-m&lt;/span&gt; trl sft &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--model_name_or_path&lt;/span&gt; deepseek-ai/DeepSeek-V4-Flash-Base &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--dataset_name&lt;/span&gt; your-org/your-sft-set &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--output_dir&lt;/span&gt; ./models/v4-flash-custom &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--per_device_train_batch_size&lt;/span&gt; 1 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--gradient_accumulation_steps&lt;/span&gt; 16 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--learning_rate&lt;/span&gt; 2e-5 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--bf16&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--use_peft&lt;/span&gt; &lt;span class="nb"&gt;true&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--lora_r&lt;/span&gt; 64 &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--lora_alpha&lt;/span&gt; 128
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Le fine-tuning complet sur V4-Pro est réservé à la recherche avancée. Pour la majorité des équipes, LoRA sur V4-Flash-Base offre un excellent compromis.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pièges courants
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;OOM au démarrage&lt;/strong&gt; : &lt;code&gt;--max-model-len&lt;/code&gt; trop haut ou &lt;code&gt;--tensor-parallel-size&lt;/code&gt; trop bas. Diminuez le contexte ou augmentez le parallélisme.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Première requête lente&lt;/strong&gt; : vLLM compile les kernels à la volée. Préchauffez avec une requête factice.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Erreurs d'utilisation d'outils&lt;/strong&gt; : l'encodage DeepSeek diffère légèrement d'OpenAI. Fixez votre SDK à une version compatible V4.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Erreurs FP8 sur anciens GPU&lt;/strong&gt; : A100 ne supporte pas FP8. Utilisez BF16 (doublez la VRAM attendue).&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Quand l'auto-hébergement est rentable
&lt;/h2&gt;

&lt;p&gt;Calcul basé sur la &lt;a href="http://apidog.com/blog/deepseek-v4-api-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;tarification de l'API DeepSeek V4&lt;/a&gt; :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;V4-Flash, 200B tokens d'entrée/mois + 20B de sortie&lt;/strong&gt; : ~33,6K$ sur l'API. Un boîtier 8 × H100 = ~20K$/mois en location. Économie ~40%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;V4-Pro, 500B entrée + 50B sortie/mois&lt;/strong&gt; : ~1,04M$ sur l'API. Cluster 16 × H100 = ~35K$/mois. Économie &amp;gt;95%.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le seuil de rentabilité pour V4-Flash : ~100 milliards de tokens/mois. En-dessous, l'API hébergée reste la meilleure option.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Puis-je exécuter V4-Flash sur une A100 ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Oui en INT4 et contexte court, mais lentement (5–15 tok/s). La H100 est la cible idéale.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;V4 supporte-t-il le fine-tuning LoRA ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Oui, avec les checkpoints de base et les pipelines TRL/Axolotl standards. MoE ne gêne pas LoRA.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Le serveur local est-il compatible OpenAI ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Oui, vLLM/SGLang exposent &lt;code&gt;/v1/chat/completions&lt;/code&gt; et &lt;code&gt;/v1/completions&lt;/code&gt;. Le &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide de l'API hébergée&lt;/a&gt; fonctionne sans changement contre localhost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comment activer le mode réflexion localement ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Ajoutez &lt;code&gt;thinking_mode: "thinking"&lt;/code&gt; ou &lt;code&gt;"thinking_max"&lt;/code&gt; dans la requête. vLLM et SGLang transmettent ce paramètre.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Peut-on streamer depuis un serveur local V4 ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Oui, définissez &lt;code&gt;stream: true&lt;/code&gt; comme pour OpenAI ou l'API DeepSeek.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comment tester avant d'investir dans du matériel ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Louez une H100 sur RunPod/Lambda, exécutez V4-Flash en INT4, mesurez le débit réel. Moins de 30$ pour un test rapide.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Prix API DeepSeek V4</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Fri, 24 Apr 2026 04:28:27 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/prix-api-deepseek-v4-13b2</link>
      <guid>https://dev.to/antoine_laurentt/prix-api-deepseek-v4-13b2</guid>
      <description>&lt;p&gt;DeepSeek a publié les tarifs V4 le jour même du lancement des modèles, le 23 avril 2026. Ces nouveaux prix redéfinissent le plancher pour l’IA de pointe : **0,14 $ par million de jetons d'entrée et 0,28 $ par million de jetons de sortie** pour V4-Flash, et **1,74 $ en entrée et 3,48 $ en sortie** pour V4-Pro. Les deux modèles offrent une fenêtre de contexte de 1 million de jetons et jusqu’à 384 000 jetons de sortie. Une remise agressive s’applique automatiquement sur les requêtes en cache, réduisant les coûts d’entrée de 80 % à 90 % sur les invites répétées.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog aujourd’hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Ce guide détaille la grille tarifaire, explique comment la mise en cache du contexte modifie le coût réel par appel, propose une comparaison avec GPT-5.5 et Claude Opus, et présente quatre méthodes pour garder vos dépenses prévisibles dans Apidog.&lt;/p&gt;

&lt;p&gt;Pour un aperçu du produit, consultez &lt;a href="http://apidog.com/blog/what-is-deepseek-v4?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;qu'est-ce que DeepSeek V4&lt;/a&gt;. Pour le guide du développeur, consultez &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comment utiliser l'API DeepSeek V4&lt;/a&gt;. Pour les solutions gratuites, consultez &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comment utiliser DeepSeek V4 gratuitement&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  En bref
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;V4-Flash :&lt;/strong&gt; 0,14 $ / M en entrée (cache manqué), 0,028 $ / M en entrée (cache réussi), 0,28 $ / M en sortie.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;V4-Pro :&lt;/strong&gt; 1,74 $ / M en entrée (cache manqué), 0,145 $ / M en entrée (cache réussi), 3,48 $ / M en sortie.&lt;/li&gt;
&lt;li&gt;Fenêtre de contexte : &lt;strong&gt;1 million de jetons&lt;/strong&gt; en entrée, &lt;strong&gt;384 000 jetons&lt;/strong&gt; en sortie, pour les deux variantes.&lt;/li&gt;
&lt;li&gt;Remise sur les requêtes en cache : environ &lt;strong&gt;80 % de réduction pour Flash&lt;/strong&gt;, &lt;strong&gt;92 % de réduction pour Pro&lt;/strong&gt; sur les préfixes répétés.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;deepseek-chat&lt;/code&gt; et &lt;code&gt;deepseek-reasoner&lt;/code&gt; seront dépréciés le &lt;strong&gt;24 juillet 2026&lt;/strong&gt; ; la facturation correspondra à V4-Flash.&lt;/li&gt;
&lt;li&gt;Aux taux de cache manqué, V4-Pro est environ &lt;strong&gt;2,9 fois moins cher que GPT-5.5&lt;/strong&gt; en entrée et environ &lt;strong&gt;8,6 fois moins cher&lt;/strong&gt; en sortie.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  La grille tarifaire complète
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modèle&lt;/th&gt;
&lt;th&gt;Entrée (cache manqué)&lt;/th&gt;
&lt;th&gt;Entrée (cache réussi)&lt;/th&gt;
&lt;th&gt;Sortie&lt;/th&gt;
&lt;th&gt;Contexte&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;deepseek-v4-flash&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0,14 $ / M&lt;/td&gt;
&lt;td&gt;0,028 $ / M&lt;/td&gt;
&lt;td&gt;0,28 $ / M&lt;/td&gt;
&lt;td&gt;1M / 384K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;deepseek-v4-pro&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1,74 $ / M&lt;/td&gt;
&lt;td&gt;0,145 $ / M&lt;/td&gt;
&lt;td&gt;3,48 $ / M&lt;/td&gt;
&lt;td&gt;1M / 384K&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;deepseek-chat&lt;/code&gt; (déprécié)&lt;/td&gt;
&lt;td&gt;V4-Flash non-réflexion&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;deepseek-reasoner&lt;/code&gt; (déprécié)&lt;/td&gt;
&lt;td&gt;V4-Flash réflexion&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Trois points clés à retenir :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Les prix dépendent uniquement de l’ID du modèle (&lt;code&gt;deepseek-v4-flash&lt;/code&gt; ou &lt;code&gt;deepseek-v4-pro&lt;/code&gt;), pas du mode de raisonnement. Le mode modifie seulement la quantité de jetons consommés.&lt;/li&gt;
&lt;li&gt;La tarification des requêtes en cache est automatique. Si le préfixe (≥ 1 024 jetons, identique à l’octet près) est répété pour le même compte, la remise s’applique sans configuration.&lt;/li&gt;
&lt;li&gt;Les anciens IDs (&lt;code&gt;deepseek-chat&lt;/code&gt;, &lt;code&gt;deepseek-reasoner&lt;/code&gt;) sont déjà facturés comme V4-Flash. La migration reste possible jusqu’au 24 juillet 2026.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  La mise en cache du contexte en pratique
&lt;/h2&gt;

&lt;p&gt;La mise en cache est le principal levier pour réduire vos coûts sur DeepSeek V4. Tout segment d’invite ou de contexte qui se répète entre appels (par exemple longue invite système, schémas d’outils, contexte RAG) est automatiquement facturé à un tarif réduit lors des appels suivants.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Exemple concret :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agent avec invite système de 20 000 jetons (fixe)&lt;/li&gt;
&lt;li&gt;100 questions utilisateur de 200 jetons chacune&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Sans mise en cache :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Entrée : 100 × 20 200 jetons × 1,74 $/M = &lt;strong&gt;3,52 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Sortie : 100 × 500 jetons × 3,48 $/M = &lt;strong&gt;0,17 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Total : 3,69 $&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Avec mise en cache (1 appel manqué, 99 en cache réussi) :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Entrée premier appel : 20 200 × 1,74 $/M = &lt;strong&gt;0,035 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;99 préfixes suivants en cache réussi : 99 × 20 000 × 0,145 $/M = &lt;strong&gt;0,287 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;99 requêtes utilisateur (hors cache) : 99 × 200 × 1,74 $/M = &lt;strong&gt;0,034 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Sortie : 100 × 500 × 3,48 $/M = &lt;strong&gt;0,174 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Total : 0,53 $&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Environ &lt;strong&gt;7 fois moins cher&lt;/strong&gt; pour une charge de travail identique. Sur V4-Flash, l’effet est encore plus marqué.&lt;/p&gt;

&lt;h2&gt;
  
  
  Comparaison avec GPT-5.5 et Claude
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modèle&lt;/th&gt;
&lt;th&gt;Entrée (standard)&lt;/th&gt;
&lt;th&gt;Entrée (en cache)&lt;/th&gt;
&lt;th&gt;Sortie&lt;/th&gt;
&lt;th&gt;Contexte&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek V4-Flash&lt;/td&gt;
&lt;td&gt;0,14 $ / M&lt;/td&gt;
&lt;td&gt;0,028 $ / M&lt;/td&gt;
&lt;td&gt;0,28 $ / M&lt;/td&gt;
&lt;td&gt;1M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek V4-Pro&lt;/td&gt;
&lt;td&gt;1,74 $ / M&lt;/td&gt;
&lt;td&gt;0,145 $ / M&lt;/td&gt;
&lt;td&gt;3,48 $ / M&lt;/td&gt;
&lt;td&gt;1M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5&lt;/td&gt;
&lt;td&gt;5 $ / M&lt;/td&gt;
&lt;td&gt;1,25 $ / M&lt;/td&gt;
&lt;td&gt;30 $ / M&lt;/td&gt;
&lt;td&gt;1M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5 Pro&lt;/td&gt;
&lt;td&gt;30 $ / M&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;180 $ / M&lt;/td&gt;
&lt;td&gt;1M&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Claude Opus 4.6&lt;/td&gt;
&lt;td&gt;15 $ / M&lt;/td&gt;
&lt;td&gt;1,50 $ / M&lt;/td&gt;
&lt;td&gt;75 $ / M&lt;/td&gt;
&lt;td&gt;200K&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Analyse :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;V4-Pro coûte ~8,6 fois moins cher que GPT-5.5&lt;/strong&gt; pour la sortie, et &lt;strong&gt;~21 fois moins cher que Claude Opus 4.6&lt;/strong&gt;. La sortie est souvent le principal poste de dépense.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;En entrée mise en cache, V4-Pro est ~10 fois moins cher que GPT-5.5 et Claude&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance : V4-Pro égale ou dépasse GPT-5.5 sur LiveCodeBench (93,5) et Codeforces (3206)&lt;/strong&gt; pour une fraction du coût. Voir le tableau complet des benchmarks dans &lt;a href="http://apidog.com/blog/what-is-deepseek-v4?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;qu'est-ce que DeepSeek V4&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Attention :&lt;/strong&gt; Claude reste devant sur les tâches de récupération de contexte long, et Gemini 3.1 Pro est leader sur MMLU-Pro. Si la précision sur de très longs contextes est critique, l’écart de prix ne compensera pas toujours la différence de qualité.&lt;/p&gt;

&lt;h2&gt;
  
  
  Modélisation des coûts pour les charges de travail courantes
&lt;/h2&gt;

&lt;p&gt;Voici le coût estimé de quatre scénarios types sur V4-Pro (cache manqué ; ajoutez la remise cache réussi le cas échéant).&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Boucle de codage d’agent (contexte 50K, sortie 2K, 20 appels)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Entrée : 50 000 × 20 × 1,74 $/M = &lt;strong&gt;1,74 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Sortie : 2 000 × 20 × 3,48 $/M = &lt;strong&gt;0,14 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coût par tâche : ~1,88 $&lt;/strong&gt; (vs ~6,20 $ sur GPT-5.5)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Q/R sur documents longs (contexte 500K, sortie 1K)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Entrée : 500 000 × 1,74 $/M = &lt;strong&gt;0,87 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Sortie : 1 000 × 3,48 $/M = &lt;strong&gt;0,003 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coût par appel : ~0,87 $&lt;/strong&gt; (vs ~2,53 $ sur GPT-5.5)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Classification à haut volume (contexte 2K, sortie 200, 10 000 appels)
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Utilisez V4-Flash pour ce cas ; V4-Pro est surdimensionné.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;Entrée : 2 000 × 10 000 × 0,14 $/M = &lt;strong&gt;2,80 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Sortie : 200 × 10 000 × 0,28 $/M = &lt;strong&gt;0,56 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coût d’exécution : ~3,36 $&lt;/strong&gt; (vs ~110 $ sur GPT-5.5)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. Chatbot à invite répétée (invite système 10K, 500 jetons utilisateur, 1K sortie, 1 000 sessions)
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Entrée premier appel : 10 500 × 1,74 $/M = &lt;strong&gt;0,018 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;999 invites système en cache réussi : 999 × 10 000 × 0,145 $/M = &lt;strong&gt;1,45 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;999 requêtes utilisateur hors cache : 999 × 500 × 1,74 $/M = &lt;strong&gt;0,87 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Sortie : 1 000 × 1 000 × 3,48 $/M = &lt;strong&gt;3,48 $&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coût total : ~5,82 $&lt;/strong&gt; (vs ~26,35 $ sur GPT-5.5 avec cache)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Coûts cachés à surveiller
&lt;/h2&gt;

&lt;p&gt;Quatre éléments peuvent gonfler la facture si vous ne les contrôlez pas :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Inflation des jetons en mode réflexion.&lt;/strong&gt; &lt;code&gt;thinking_max&lt;/code&gt; peut consommer 3 à 10 fois plus de jetons de sortie. Limitez-le via un flag.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Croissance silencieuse du contexte.&lt;/strong&gt; Les boucles d’agent qui renvoient tout le contexte à chaque itération font exploser la facture avec des fenêtres de 1M jetons. Tronquez ou résumez le contexte.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tempêtes de tentatives.&lt;/strong&gt; Un bug qui relance à chaque erreur 500 peut doubler vos coûts très vite. Implémentez une temporisation exponentielle et un plafond de tentatives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frictions de développement.&lt;/strong&gt; Utiliser &lt;code&gt;curl&lt;/code&gt; pour itérer sur une invite fait repayer le contexte complet à chaque fois. Utilisez &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; : la substitution de variables rend l’itération quasi-gratuite.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Suivre les coûts dans Apidog
&lt;/h2&gt;

&lt;p&gt;Optimisez le suivi des coûts avec ce workflow :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Téléchargez Apidog&lt;/a&gt; et stockez votre &lt;code&gt;DEEPSEEK_API_KEY&lt;/code&gt; comme variable secrète par environnement.&lt;/li&gt;
&lt;li&gt;Créez une requête POST vers &lt;code&gt;https://api.deepseek.com/v1/chat/completions&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Dans le panneau de réponse, épinglez &lt;code&gt;usage.prompt_tokens&lt;/code&gt;, &lt;code&gt;usage.completion_tokens&lt;/code&gt;, &lt;code&gt;usage.reasoning_tokens&lt;/code&gt; pour voir le calcul des coûts à chaque appel.&lt;/li&gt;
&lt;li&gt;Paramétrez &lt;code&gt;model&lt;/code&gt; et &lt;code&gt;thinking_mode&lt;/code&gt; pour tester simplement V4-Flash vs V4-Pro, ou Non-Think vs Think Max, sans dupliquer les requêtes.&lt;/li&gt;
&lt;li&gt;Dupliquez la collection pour GPT-5.5 (voir le &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide API GPT-5.5&lt;/a&gt;). Une seule interface, coûts comparés en direct.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ce workflow détecte environ 80 % des surprises de coût avant la facture de fin de mois.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quatre règles pour des dépenses prévisibles
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Utilisez V4-Flash par défaut.&lt;/strong&gt; Passez à V4-Pro uniquement si un gain de qualité mesuré a un impact business.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Utilisez Non-Think par défaut.&lt;/strong&gt; Passez à Think High pour les tâches complexes, Think Max seulement si la justesse absolue est requise.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limitez &lt;code&gt;max_tokens&lt;/code&gt;.&lt;/strong&gt; Le plafond de 384 000 jetons est une sécurité, pas un objectif. En production, visez 2 000 jetons par réponse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Intégrez la télémétrie d’utilisation.&lt;/strong&gt; Loggez &lt;code&gt;prompt_tokens&lt;/code&gt;, &lt;code&gt;completion_tokens&lt;/code&gt;, &lt;code&gt;reasoning_tokens&lt;/code&gt; à chaque appel et alertez sur les pics de reasoning.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Existe-t-il un niveau gratuit ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Il n’existe pas de niveau d’API gratuit, mais les nouveaux comptes reçoivent parfois un petit crédit d’essai. Pour des solutions gratuites, consultez &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comment utiliser DeepSeek V4 gratuitement&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comment fonctionne la tarification des requêtes en cache ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Tout préfixe d’au moins 1 024 jetons répété à l’identique pour un même compte déclenche la remise cache. Le 1er appel paie le plein tarif, les suivants paient le tarif réduit. C’est automatique.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Les modes de réflexion coûtent-ils plus cher ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non, le tarif par jeton reste identique. Les modes de réflexion génèrent simplement plus de jetons (traces de raisonnement). Surveillez &lt;code&gt;reasoning_tokens&lt;/code&gt; dans l’objet &lt;code&gt;usage&lt;/code&gt; pour estimer le coût réel.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;La tarification est-elle stable ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
DeepSeek ajuste périodiquement ses tarifs. Les tarifs V3.2 sont restés stables toute l’année 2025 ; V4 n’a pas de date de fin annoncée. Vérifiez la &lt;a href="https://api-docs.deepseek.com/quick_start/pricing" rel="noopener noreferrer"&gt;page de tarification en direct&lt;/a&gt; avant tout engagement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;V4-Pro et V4-Flash partagent-ils le même tarif de sortie ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non. V4-Pro : 3,48 $/M. V4-Flash : 0,28 $/M. Le ratio de 12,4x justifie d’utiliser V4-Flash par défaut.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Le point de terminaison Anthropic modifie-t-il la tarification ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non. &lt;code&gt;https://api.deepseek.com/anthropic&lt;/code&gt; applique les mêmes tarifs que le point de terminaison OpenAI. Le format d’API n’influence pas la facturation.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comment utiliser l'API DeepSeek V4 gratuitement ?</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Fri, 24 Apr 2026 04:28:15 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/comment-utiliser-lapi-deepseek-v4-gratuitement--1lgl</link>
      <guid>https://dev.to/antoine_laurentt/comment-utiliser-lapi-deepseek-v4-gratuitement--1lgl</guid>
      <description>&lt;p&gt;DeepSeek V4 a été lancé le 23 avril 2026 avec une API dont le prix est suffisamment bas pour que la plupart des équipes évitent complètement la chasse aux offres gratuites. Toutefois, il existe plusieurs méthodes pour accéder gratuitement à V4 par API, idéales pour les développeurs souhaitant automatiser ou prototyper avant d'investir. Ce tutoriel montre comment combiner différents points d’accès gratuits pour automatiser vos appels DeepSeek V4 sans frais, en structurant une chaîne de secours dans Apidog afin de maximiser la résilience de vos prototypes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog dès aujourd'hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Ce guide cible le chemin gratuit API. Pour un panorama incluant le chat web et l’auto-hébergement, lisez &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comment utiliser DeepSeek V4 gratuitement&lt;/a&gt;. Pour la procédure payante, rendez-vous sur &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comment utiliser l'API DeepSeek V4&lt;/a&gt;. Pour l’aperçu produit, voyez &lt;a href="http://apidog.com/blog/what-is-deepseek-v4?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;qu'est-ce que DeepSeek V4&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Niveau gratuit OpenRouter&lt;/strong&gt; — &lt;code&gt;deepseek/deepseek-v4-flash:free&lt;/code&gt; (parfois &lt;code&gt;deepseek-v4-pro:free&lt;/code&gt;). Compatible OpenAI, quelques centaines de requêtes/jour/clé.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fournisseurs d'inférence Hugging Face&lt;/strong&gt; — endpoint partagé : &lt;code&gt;https://router.huggingface.co/hf-inference&lt;/code&gt;. Limites de débit strictes, pratique pour tester.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Niveau gratuit Chutes&lt;/strong&gt; — réseau GPU communautaire qui expose des endpoints DeepSeek gratuits peu après lancement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crédit d’essai DeepSeek&lt;/strong&gt; — nouveaux comptes sur &lt;code&gt;platform.deepseek.com&lt;/code&gt; reçoivent parfois un crédit initial.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-hébergement V4-Flash&lt;/strong&gt; — gratuit niveau licence si vous avez du GPU ; voir &lt;a href="http://apidog.com/blog/how-to-run-deepseek-v4-locally?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comment exécuter DeepSeek V4 localement&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chaîne de secours dans &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;&lt;/strong&gt; — unifiez la structure de requête pour tous les fournisseurs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F74ulcngt3h6tlrvfg0sh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F74ulcngt3h6tlrvfg0sh.png" alt="DeepSeek V4 providers" width="800" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pourquoi le chemin d'API gratuit existe
&lt;/h2&gt;

&lt;p&gt;Malgré des tarifs déjà compétitifs, exploiter l’accès gratuit se justifie dans plusieurs cas :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Prototypage sans friction&lt;/strong&gt; : tester en code avant tout engagement financier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Étudiants, chercheurs, projets open source&lt;/strong&gt; : besoin de qualité sans budget.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Comparaison fournisseurs&lt;/strong&gt; : mesurer latence, qualité et fiabilité sur diverses plateformes en conditions réelles.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Si vous êtes dans un de ces cas, poursuivez ! Pour produire à grande échelle, le &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;mode payant&lt;/a&gt; devient rapidement plus simple.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chemin 1 : Niveau gratuit OpenRouter
&lt;/h2&gt;

&lt;p&gt;OpenRouter agrège plusieurs modèles derrière une API OpenAI-compatible et propose régulièrement des variantes gratuites lors des lancements DeepSeek.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuration
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Inscrivez-vous sur &lt;a href="https://openrouter.ai/" rel="noopener noreferrer"&gt;openrouter.ai&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Créez une clé API via &lt;strong&gt;Paramètres → Clés&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Repérez les modèles suffixés &lt;code&gt;:free&lt;/code&gt;, ex. &lt;code&gt;deepseek/deepseek-v4-flash:free&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Utilisez un SDK compatible OpenAI pour appeler le modèle.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;OPENROUTER_API_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://openrouter.ai/api/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek/deepseek-v4-flash:free&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Refactor this Go function to use channels.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Limites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;50 à 200 requêtes/jour/clé, concurrence élevée&lt;/li&gt;
&lt;li&gt;Prototypage uniquement ; pas de promesse de disponibilité&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Version Node
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;OpenAI&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;OPENROUTER_API_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;baseURL&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://openrouter.ai/api/v1&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;deepseek/deepseek-v4-flash:free&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Explain MoE routing like I'm 12.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;content&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Chemin 2 : Fournisseurs d'inférence Hugging Face
&lt;/h2&gt;

&lt;p&gt;Hugging Face expose les checkpoints DeepSeek V4 via un endpoint partagé. Idéal pour un accès rapide, mais limites strictes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;huggingface_hub&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;InferenceClient&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;InferenceClient&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-ai/DeepSeek-V4-Flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;token&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;HF_TOKEN&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;chat_completion&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Write a Python decorator that retries with jitter.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;max_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;512&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Générez votre token sur &lt;a href="https://huggingface.co/settings/tokens" rel="noopener noreferrer"&gt;huggingface.co/settings/tokens&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Latence variable, limites quotidiennes par compte&lt;/li&gt;
&lt;li&gt;HF Pro lève les quotas&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Chemin 3 : Chutes et passerelles communautaires
&lt;/h2&gt;

&lt;p&gt;Chutes héberge régulièrement DeepSeek sur un réseau GPU communautaire, accessible via une API compatible OpenAI.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;CHUTES_API_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://llm.chutes.ai/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-ai/DeepSeek-V4-Flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Compare CSA and HCA attention in two sentences.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Vérifiez disponibilité et coût dans le dashboard Chutes avant usage.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Chemin 4 : Crédit d'essai DeepSeek
&lt;/h2&gt;

&lt;p&gt;DeepSeek crédite parfois les nouveaux comptes (montant et validité variables). Consultez votre dashboard sur &lt;a href="https://platform.deepseek.com/" rel="noopener noreferrer"&gt;platform.deepseek.com&lt;/a&gt; après inscription.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1 $ d’essai = ~7M jetons sur V4-Flash ou ~570K jetons sur V4-Pro&lt;/li&gt;
&lt;li&gt;Suffisant pour plusieurs centaines de requêtes de prototypage&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Construire une chaîne gratuite agnostique au fournisseur dans Apidog
&lt;/h2&gt;

&lt;p&gt;Centralisez vos tests et automatisez la bascule entre fournisseurs dans &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Téléchargez Apidog et créez un projet.&lt;/li&gt;
&lt;li&gt;Créez quatre environnements : &lt;code&gt;openrouter&lt;/code&gt;, &lt;code&gt;huggingface&lt;/code&gt;, &lt;code&gt;chutes&lt;/code&gt;, &lt;code&gt;deepseek-trial&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Stockez les clés API et définissez &lt;code&gt;BASE_URL&lt;/code&gt; dans chaque environnement.&lt;/li&gt;
&lt;li&gt;Créez une requête POST vers &lt;code&gt;{{BASE_URL}}/chat/completions&lt;/code&gt; avec un champ &lt;code&gt;model&lt;/code&gt; dynamique.&lt;/li&gt;
&lt;li&gt;Changez d’environnement pour exécuter la même invite sur chaque fournisseur d’un clic.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ce workflow est réutilisable pour d’autres APIs gratuites (ex : &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;GPT-5.5&lt;/a&gt;) : dupliquez la collection, changez les endpoints.&lt;/p&gt;

&lt;h3&gt;
  
  
  Implémenter une chaîne de secours dans le code
&lt;/h3&gt;

&lt;p&gt;Pour automatiser la bascule entre fournisseurs lors d’une limitation :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;RateLimitError&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;APIError&lt;/span&gt;

&lt;span class="n"&gt;PROVIDERS&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;base_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://openrouter.ai/api/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;api_key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;OPENROUTER_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek/deepseek-v4-flash:free&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;base_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://llm.chutes.ai/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;api_key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;CHUTES_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-ai/DeepSeek-V4-Flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;base_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://api.deepseek.com/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;api_key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;os&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;environ&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;DEEPSEEK_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;deepseek-v4-flash&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;call_v4&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;provider&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;PROVIDERS&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;try&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;api_key&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;base_url&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;model&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nf"&gt;except &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;RateLimitError&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;APIError&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;provider&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;base_url&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; failed: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
            &lt;span class="k"&gt;continue&lt;/span&gt;
    &lt;span class="k"&gt;raise&lt;/span&gt; &lt;span class="nc"&gt;RuntimeError&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;all providers exhausted&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  À quoi sert chaque chemin gratuit ?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Chemin&lt;/th&gt;
&lt;th&gt;Idéal pour&lt;/th&gt;
&lt;th&gt;Moins adapté pour&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;OpenRouter gratuit&lt;/td&gt;
&lt;td&gt;Prototypage, dev quotidien&lt;/td&gt;
&lt;td&gt;SLA stricts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Inférence HF&lt;/td&gt;
&lt;td&gt;Appels exploratoires, notebooks&lt;/td&gt;
&lt;td&gt;Faible latence&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Chutes&lt;/td&gt;
&lt;td&gt;Expérimentation communautaire&lt;/td&gt;
&lt;td&gt;Dépendances long terme&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Essai DeepSeek&lt;/td&gt;
&lt;td&gt;Tests production&lt;/td&gt;
&lt;td&gt;Production soutenue&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V4-Flash auto-hébergé&lt;/td&gt;
&lt;td&gt;Conformité, autonomie&lt;/td&gt;
&lt;td&gt;Équipes sans GPU&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Calcul des quotas
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OpenRouter gratuit&lt;/strong&gt; : ~100 requêtes/jour/clé, ~50K jetons/chacune → 30-50 appels réels/jour.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Inférence HF gratuite&lt;/strong&gt; : ~1K requêtes/jour/compte, latence variable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chutes&lt;/strong&gt; : variable, à tester.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Essai DeepSeek (1 $)&lt;/strong&gt; : ~700 appels de 10K jetons sur V4-Flash.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;V4-Flash auto-hébergé&lt;/strong&gt; : limité par votre matériel (ex : 4 × H100 = 50–150 tok/s).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Besoin de plus ? À 0,14 $/M sur V4-Flash, 10 000 appels de 2K contexte + 500 sortie coûtent ~2,80 $. Le payant devient optimal après prototypage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quand passer à l'API payante
&lt;/h2&gt;

&lt;p&gt;Passez à l’API officielle lorsque :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Vous atteignez fréquemment les limites de débit.&lt;/li&gt;
&lt;li&gt;Vous chaînez plusieurs fournisseurs juste pour tenir la charge.&lt;/li&gt;
&lt;li&gt;Vos tests nécessitent une latence/SLA prévisible.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Le rechargement minimum sur &lt;code&gt;platform.deepseek.com&lt;/code&gt; est de 2 $. Consultez le &lt;a href="http://apidog.com/blog/deepseek-v4-api-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide tarifaire DeepSeek V4&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Un chemin gratuit est-il garanti ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non, ils changent sans préavis. Outils de prototypage uniquement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenRouter &lt;code&gt;:free&lt;/code&gt; délivre-t-il le vrai V4 ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Oui, mais sur infra partagée et quotas stricts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Usage commercial permis avec les chemins gratuits ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Vérifiez les CGU. OpenRouter autorise pour usage limité, HF aussi mais restrictions. DeepSeek trial suit ses CGU principales.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Meilleure latence gratuite ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Le propre crédit DeepSeek, suivi d’OpenRouter. HF et Chutes sont plus variables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Auto-hébergement V4 gratuit ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Licence MIT, oui. Le coût, c’est le matériel. Voir &lt;a href="http://apidog.com/blog/how-to-run-deepseek-v4-locally?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comment exécuter DeepSeek V4 localement&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comment suivre quel chemin j'ai utilisé ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Utilisez &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; et épinglez &lt;code&gt;usage&lt;/code&gt; dans le viewer, ou vérifiez les dashboards fournisseurs.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comment Utiliser DeepSeek V4: Chat Web, API et Options Auto-Hébergées</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Fri, 24 Apr 2026 04:18:40 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/comment-utiliser-deepseek-v4-chat-web-api-et-options-auto-hebergees-4dg0</link>
      <guid>https://dev.to/antoine_laurentt/comment-utiliser-deepseek-v4-chat-web-api-et-options-auto-hebergees-4dg0</guid>
      <description>&lt;p&gt;DeepSeek V4 a été lancé le 23 avril 2026 avec quatre checkpoints, une API en direct et des poids sous licence MIT sur Hugging Face. Vous pouvez l’utiliser en accès instantané, via API de production, ou en déploiement sur site. Ce guide montre comment choisir la meilleure approche selon vos besoins, détaille les compromis, et propose un flux de prompt prêt à l'emploi pour la production.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog dès aujourd'hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Si vous voulez une vue d’ensemble produit, lisez d'abord &lt;a href="http://apidog.com/blog/what-is-deepseek-v4?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;qu'est-ce que DeepSeek V4&lt;/a&gt;. Pour l’API complète, suivez le &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide de l'API DeepSeek V4&lt;/a&gt;. Pour utiliser DeepSeek gratuitement, consultez &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comment utiliser DeepSeek V4 gratuitement&lt;/a&gt;. Pour tester les requêtes API, téléchargez &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; et pré-construisez la collection.&lt;/p&gt;

&lt;h2 id="tldr"&gt;TL;DR&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Chemin le plus rapide : &lt;a href="https://chat.deepseek.com/" rel="noopener noreferrer"&gt;chat.deepseek.com&lt;/a&gt;. Chat web gratuit, V4-Pro par défaut, trois modes de raisonnement.&lt;/li&gt;
  &lt;li&gt;Chemin de production : &lt;code&gt;https://api.deepseek.com/v1/chat/completions&lt;/code&gt; avec les modèles &lt;code&gt;deepseek-v4-pro&lt;/code&gt; ou &lt;code&gt;deepseek-v4-flash&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Chemin auto-hébergé : téléchargez les poids sur &lt;a href="https://huggingface.co/collections/deepseek-ai/deepseek-v4" rel="noopener noreferrer"&gt;Hugging Face&lt;/a&gt; et exécutez les scripts &lt;code&gt;/inference&lt;/code&gt; du dépôt.&lt;/li&gt;
  &lt;li&gt;Utilisez **Non-Think** pour le routage et la classification, **Think High** pour le code et l’analyse, **Think Max** seulement si la précision prime sur le coût.&lt;/li&gt;
  &lt;li&gt;Paramètres recommandés : &lt;code&gt;temperature=1.0, top_p=1.0&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;
&lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; comme client API. Format compatible OpenAI : une requête sauvegardée fonctionne sur DeepSeek, OpenAI et Anthropic.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-220.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-220.png" alt="" width="800" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2 id="choisissez-le-bon-chemin-pour-votre-charge-de-travail"&gt;Choisissez le bon chemin pour votre charge de travail&lt;/h2&gt;

&lt;p&gt;Quatre options réalistes, chacune optimisée pour un usage différent :&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Chemin&lt;/th&gt;
&lt;th&gt;Coût&lt;/th&gt;
&lt;th&gt;Temps d'installation&lt;/th&gt;
&lt;th&gt;Idéal pour&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="http://chat.deepseek.com" rel="noopener noreferrer"&gt;chat.deepseek.com&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Gratuit&lt;/td&gt;
&lt;td&gt;30 secondes&lt;/td&gt;
&lt;td&gt;Tests rapides, travail ad-hoc&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API DeepSeek&lt;/td&gt;
&lt;td&gt;Facturation par jeton&lt;/td&gt;
&lt;td&gt;5 minutes&lt;/td&gt;
&lt;td&gt;Production, agents, batchs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V4-Flash auto-hébergé&lt;/td&gt;
&lt;td&gt;Coût matériel seulement&lt;/td&gt;
&lt;td&gt;Quelques heures&lt;/td&gt;
&lt;td&gt;Conformité, inférence hors-ligne&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;V4-Pro auto-hébergé&lt;/td&gt;
&lt;td&gt;Coût cluster seulement&lt;/td&gt;
&lt;td&gt;Une journée&lt;/td&gt;
&lt;td&gt;Recherche, ajustements personnalisés&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenRouter / agrégateur&lt;/td&gt;
&lt;td&gt;Facturation par jeton&lt;/td&gt;
&lt;td&gt;2 minutes&lt;/td&gt;
&lt;td&gt;Multi-fournisseurs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2 id="chemin-1-utiliser-v4-dans-le-chat-web"&gt;Chemin 1 : Utiliser V4 dans le chat web&lt;/h2&gt;

&lt;p&gt;Pour tester V4 rapidement :&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Accédez à &lt;a href="https://chat.deepseek.com/" rel="noopener noreferrer"&gt;chat.deepseek.com&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Connectez-vous (email, Google, WeChat).&lt;/li&gt;
  &lt;li&gt;V4-Pro est par défaut. Sélectionnez Non-Think, Think High ou Think Max en haut du composeur.&lt;/li&gt;
  &lt;li&gt;Saisissez votre prompt.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-221.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.apidog.com%2Fblog-next%2F2026%2F04%2Fimage-221.png" alt="" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Le chat web prend en charge les uploads de fichiers, la recherche web, et jusqu'à 1M de jetons de contexte. Utilisez-le pour diagnostiquer une trace d’erreur, résumer un PDF volumineux, ou comparer V4 à GPT-5.5/Claude. À éviter pour les automatisations ou les tâches répétables.&lt;/p&gt;

&lt;h2 id="chemin-2-utiliser-lapi-deepseek"&gt;Chemin 2 : Utiliser l'API DeepSeek&lt;/h2&gt;

&lt;p&gt;L’API DeepSeek est compatible OpenAI et adaptée à la production. Les modèles &lt;code&gt;deepseek-v4-pro&lt;/code&gt; et &lt;code&gt;deepseek-v4-flash&lt;/code&gt; sont maintenus après la dépréciation de &lt;code&gt;deepseek-chat&lt;/code&gt; (juillet 2026).&lt;/p&gt;

&lt;h3 id="obtenir-une-cle"&gt;Obtenir une clé API&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;Inscrivez-vous sur &lt;a href="https://platform.deepseek.com/" rel="noopener noreferrer"&gt;platform.deepseek.com&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;Ajoutez un moyen de paiement (minimum 2 $).&lt;/li&gt;
  &lt;li&gt;Créez une clé API dans &lt;strong&gt;Clés API&lt;/strong&gt; et copiez-la (visible une seule fois).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Exportez la clé pour vos clients :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;export DEEPSEEK_API_KEY="sk-..."
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="requete-minimale"&gt;Exemple de requête minimale&lt;/h3&gt;

&lt;p&gt;Utilisez l’interface compatible OpenAI :&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;curl https://api.deepseek.com/v1/chat/completions \
  -H "Authorization: Bearer $DEEPSEEK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-pro",
    "messages": [
      {"role": "user", "content": "Refactor this Python function to async. Reply with code only."}
    ],
    "thinking_mode": "thinking"
  }'
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Remplacez &lt;code&gt;deepseek-v4-pro&lt;/code&gt; par &lt;code&gt;deepseek-v4-flash&lt;/code&gt; pour réduire les coûts, et &lt;code&gt;thinking&lt;/code&gt; par &lt;code&gt;non-thinking&lt;/code&gt; pour la rapidité.&lt;/p&gt;

&lt;h3 id="client-python"&gt;Client Python&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["DEEPSEEK_API_KEY"],
    base_url="https://api.deepseek.com/v1",
)

response = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[
        {"role": "system", "content": "You are a concise senior engineer."},
        {"role": "user", "content": "Explain the CSA+HCA hybrid attention stack."},
    ],
    extra_body={"thinking_mode": "thinking_max"},
    temperature=1.0,
    top_p=1.0,
)

print(response.choices[0].message.content)
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id="client-node"&gt;Client Node&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.DEEPSEEK_API_KEY,
  baseURL: "https://api.deepseek.com/v1",
});

const response = await client.chat.completions.create({
  model: "deepseek-v4-flash",
  messages: [{ role: "user", content: "Write a fizzbuzz in Rust." }],
  temperature: 1.0,
  top_p: 1.0,
});

console.log(response.choices[0].message.content);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Pour les détails avancés (paramètres, gestion erreurs), voir le &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide de l'API DeepSeek V4&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id="chemin-3-iterer-avec-apidog"&gt;Chemin 3 : Itérer avec Apidog&lt;/h2&gt;

&lt;p&gt;Curl suffit pour un test, mais Apidog permet d’itérer efficacement sans gaspiller de crédits ni surcharger le terminal.&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Téléchargez Apidog pour Mac, Windows ou Linux.&lt;/li&gt;
  &lt;li&gt;Créez un projet API, ajoutez une requête POST vers &lt;code&gt;https://api.deepseek.com/v1/chat/completions&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;Ajoutez l’en-tête &lt;code&gt;Authorization: Bearer {{DEEPSEEK_API_KEY}}&lt;/code&gt; et stockez la clé en variable d’environnement.&lt;/li&gt;
  &lt;li&gt;Collez le JSON du corps de requête, sauvegardez. Chaque modification est rejouable en un clic.&lt;/li&gt;
  &lt;li&gt;Utilisez la visionneuse intégrée pour comparer Non-Think vs Think Max sur un même prompt.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Vous pouvez mixer des requêtes OpenAI, Claude et DeepSeek dans une même collection pour des tests A/B multi-fournisseurs et un suivi centralisé de la facturation. Pour passer de GPT-5.5 à V4, changez juste l’URL de base. Voir la &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;collection d’API GPT-5.5&lt;/a&gt; correspondante.&lt;/p&gt;

&lt;h2 id="chemin-4-auto-heberger-v4-flash"&gt;Chemin 4 : Auto-héberger V4-Flash&lt;/h2&gt;

&lt;p&gt;Pour la conformité ou la maîtrise des coûts, la licence MIT permet l’auto-hébergement complet.&lt;/p&gt;

&lt;h3 id="materiel"&gt;Matériel requis&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;V4-Flash (13B actif, 284B total)&lt;/strong&gt; : 2–4 H100/H200/MI300X en FP8, ou une carte 80Go quantifiée INT4.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;V4-Pro (49B actif, 1.6T total)&lt;/strong&gt; : 16–32 H100 pour l’inférence production.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id="obtenir-les-poids"&gt;Télécharger les poids&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;# Installer le CLI Hugging Face
pip install -U "huggingface_hub[cli]"

# Connexion (V4 est public mais login = +de débit)
huggingface-cli login

# Télécharger V4-Flash
huggingface-cli download deepseek-ai/DeepSeek-V4-Flash \
  --local-dir ./models/deepseek-v4-flash \
  --local-dir-use-symlinks False
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;V4-Flash = ~500 Go (FP8). V4-Pro = plusieurs To.&lt;/p&gt;

&lt;h3 id="executer-inference"&gt;Lancer l’inférence&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;pip install "vllm&amp;gt;=0.9.0"

vllm serve deepseek-ai/DeepSeek-V4-Flash \
  --tensor-parallel-size 4 \
  --max-model-len 1048576 \
  --dtype auto
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Une fois vLLM lancé, utilisez &lt;code&gt;http://localhost:8000/v1&lt;/code&gt; comme base URL dans vos clients compatibles OpenAI (ou Apidog).&lt;/p&gt;

&lt;h2 id="elaborer-des-prompts-efficaces-pour-v4"&gt;Élaborer des prompts efficaces pour V4&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;
&lt;strong&gt;Spécifiez explicitement le mode de raisonnement.&lt;/strong&gt; Définissez &lt;code&gt;thinking_mode&lt;/code&gt; pour chaque tâche.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Utilisez le prompt système pour la persona, pas pour la tâche.&lt;/strong&gt; Décrivez la tâche dans le message utilisateur.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Pour le code, fournissez un harnais de test.&lt;/strong&gt; Collez un test échoué à corriger plutôt qu’une demande vague.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Pour le contexte long, placez le contenu le plus important en début et fin d’input (biais de primauté/récence).&lt;/p&gt;

&lt;h2 id="controle-des-couts"&gt;Contrôle des coûts&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Utilisez V4-Flash par défaut.&lt;/strong&gt; Passez à V4-Pro seulement si la qualité le justifie.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Préférez Non-Think.&lt;/strong&gt; Passez à Think High pour les tâches complexes, Think Max pour les exigences critiques.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Limitez &lt;code&gt;max_tokens&lt;/code&gt;.&lt;/strong&gt; 1M est une limite haute, la plupart des réponses sont sous 2 000 tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dans Apidog, stockez &lt;code&gt;DEEPSEEK_API_KEY&lt;/code&gt; dans l’environnement pour séparer facturation test/production. &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; affiche aussi le nombre de tokens par réponse pour surveiller les prompts volumineux.&lt;/p&gt;

&lt;h2 id="migration-depuis-deepseek-v3-ou-dautres-modeles"&gt;Migration depuis DeepSeek V3 ou autres modèles&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Depuis &lt;code&gt;deepseek-chat&lt;/code&gt; / &lt;code&gt;deepseek-reasoner&lt;/code&gt; :&lt;/strong&gt; remplacez l’ID modèle par &lt;code&gt;deepseek-v4-pro&lt;/code&gt; ou &lt;code&gt;deepseek-v4-flash&lt;/code&gt; avant le 24 juillet 2026.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Depuis OpenAI GPT-5.x :&lt;/strong&gt; changez l’URL de base pour &lt;code&gt;https://api.deepseek.com/v1&lt;/code&gt; et l’ID modèle uniquement. Voir le &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide GPT-5.5&lt;/a&gt; pour la syntaxe.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Depuis Anthropic Claude :&lt;/strong&gt; utilisez &lt;code&gt;https://api.deepseek.com/anthropic&lt;/code&gt; pour garder le format message Anthropic, ou passez au format OpenAI avec le point de terminaison principal.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="faq"&gt;FAQ&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Ai-je besoin d’un compte payant pour V4 ?&lt;/strong&gt; Le chat web est gratuit. L’API nécessite un minimum de 2 $ de recharge. Voir &lt;a href="http://apidog.com/blog/how-to-use-deepseek-v4-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comment utiliser DeepSeek V4 gratuitement&lt;/a&gt; pour les options sans frais.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quelle variante utiliser par défaut ?&lt;/strong&gt; V4-Flash en Non-Think, puis montez en gamme selon la qualité requise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Puis-je exécuter V4 sur mon MacBook ?&lt;/strong&gt; V4-Flash fonctionne sur M3/M4 Max avec 128 Go, lentement. V4-Pro non. Pour test local, préférez l’API ou le chat web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;V4 supporte-t-il l’appel de fonctions/outils ?&lt;/strong&gt; Oui, le point compatible OpenAI accepte le champ &lt;code&gt;tools&lt;/code&gt;. Les réponses incluent &lt;code&gt;tool_calls&lt;/code&gt;. Le point Anthropic accepte le format natif.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comment streamer les réponses ?&lt;/strong&gt; Ajoutez &lt;code&gt;stream: true&lt;/code&gt; dans le body. Flux SSE standard compatible OpenAI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Y a-t-il une limite de débit ?&lt;/strong&gt; L’API hébergée indique les limites par niveau sur &lt;a href="https://api-docs.deepseek.com/" rel="noopener noreferrer"&gt;api-docs.deepseek.com&lt;/a&gt;. En auto-hébergement, seule la capacité du matériel limite le débit.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Prix GPT-5.5 : Analyse Complète des Coûts API, Codex et ChatGPT (Avril 2026)</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Fri, 24 Apr 2026 02:32:46 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/prix-gpt-55-analyse-complete-des-couts-api-codex-et-chatgpt-avril-2026-4p88</link>
      <guid>https://dev.to/antoine_laurentt/prix-gpt-55-analyse-complete-des-couts-api-codex-et-chatgpt-avril-2026-4p88</guid>
      <description>&lt;p&gt;OpenAI a doublé le prix par jeton sur la gamme GPT-5 avec la sortie de GPT-5.5 le 23 avril 2026. Le prix d'entrée passe de 2,50 $ à 5,00 $ par million de jetons. Le prix de sortie passe de 15,00 $ à 30,00 $ par million. La tarification Pro reste fixe à 30 $ / 180 $. C'est le titre ; les détails sont là où le coût réel se trouve.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog dès aujourd'hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Ce guide couvre toutes les surfaces de tarification : API standard, Batch, Flex et Priorité ; la tarification Pro ; les limites Codex par plan ; et comment calculer le coût de votre charge de travail réelle avant de vous engager dans un changement de modèle par défaut.&lt;/p&gt;

&lt;p&gt;Pour un aperçu du modèle, consultez &lt;a href="http://apidog.com/blog/what-is-gpt-5-5?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Qu'est-ce que GPT-5.5&lt;/a&gt;. Pour le guide du développeur, consultez &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Comment utiliser l'API GPT-5.5&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id="en-bref"&gt;En bref&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Surface&lt;/th&gt;
&lt;th&gt;Entrée / M&lt;/th&gt;
&lt;th&gt;Sortie / M&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;API standard GPT-5.5&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;$30.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API Pro GPT-5.5&lt;/td&gt;
&lt;td&gt;$30.00&lt;/td&gt;
&lt;td&gt;$180.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Batch GPT-5.5 (50 % de réduction)&lt;/td&gt;
&lt;td&gt;$2.50&lt;/td&gt;
&lt;td&gt;$15.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Flex GPT-5.5 (50 % de réduction)&lt;/td&gt;
&lt;td&gt;$2.50&lt;/td&gt;
&lt;td&gt;$15.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Priorité GPT-5.5 (2.5×)&lt;/td&gt;
&lt;td&gt;$12.50&lt;/td&gt;
&lt;td&gt;$75.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API standard GPT-5.4&lt;/td&gt;
&lt;td&gt;$2.50&lt;/td&gt;
&lt;td&gt;$15.00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API GPT-5.4-mini&lt;/td&gt;
&lt;td&gt;$0.25&lt;/td&gt;
&lt;td&gt;$2.00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Effet net : GPT-5.5 est 2× GPT-5.4 au niveau du jeton, mais OpenAI revendique une augmentation nette d'environ 20 % de l'indice d'intelligence une fois l'efficacité des jetons prise en compte.&lt;/p&gt;

&lt;h2 id="les-chiffres-clés"&gt;Les chiffres clés&lt;/h2&gt;

&lt;p&gt;OpenAI a publié les tarifs sur la &lt;a href="https://openai.com/api/pricing/" rel="noopener noreferrer"&gt;page de tarification de l'API&lt;/a&gt; le jour même du lancement.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;GPT-5.5&lt;/strong&gt; : 5,00 $ par million de jetons d'entrée, 30,00 $ par million de jetons de sortie.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;GPT-5.5 Pro&lt;/strong&gt; : 30,00 $ par million de jetons d'entrée, 180,00 $ par million de jetons de sortie.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Fenêtre contextuelle&lt;/strong&gt; : 1 million de jetons sur les deux variantes. Les jetons de raisonnement sont pris en compte dans la fenêtre et dans la facturation de la sortie.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="batch-flex-et-priorité"&gt;Batch, Flex et Priorité&lt;/h2&gt;

&lt;p&gt;OpenAI propose trois niveaux alternatifs qui modifient le prix standard.&lt;/p&gt;

&lt;h3 id="api-batch"&gt;API Batch&lt;/h3&gt;

&lt;p&gt;Mettez les requêtes en file d'attente via le point de terminaison Batch et elles s'exécuteront à 50 % du prix standard. Le délai d'exécution est inférieur à 24 heures. Idéal pour :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Les évaluations nocturnes sur un ensemble de données complet.&lt;/li&gt;
  &lt;li&gt;Les compléments de données et le retraitement historique.&lt;/li&gt;
  &lt;li&gt;Tout flux de travail où le budget de latence se mesure en heures, et non en secondes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Avec la tarification Batch, GPT-5.5 coûte 2,50 $ / 15,00 $ par million de jetons ; identique à la tarification standard de GPT-5.4. Pour les charges de travail hors ligne, le doublement du prix disparaît.&lt;/p&gt;

&lt;h3 id="traitement-flex"&gt;Traitement Flex&lt;/h3&gt;

&lt;p&gt;Flex vous offre également 50 % de réduction sur les tarifs standards, mais le temps d'attente est variable ; de quelques secondes à plusieurs minutes selon la charge. Utilisez Flex lorsque vous pouvez tolérer une latence imprévisible et que vous souhaitez une tarification de niveau Batch avec des réponses quasi-synchrones.&lt;/p&gt;

&lt;h3 id="traitement-prioritaire"&gt;Traitement prioritaire&lt;/h3&gt;

&lt;p&gt;La Priorité coûte 2,5× le tarif standard (12,50 $ / 75,00 $ par million de jetons sur GPT-5.5) et vous offre un débit plus rapide, des plafonds de limite de débit plus élevés et un temps d'attente quasi nul. Réservez-le pour les expériences utilisateur en direct où la latence de queue impacte la rétention.&lt;/p&gt;

&lt;h2 id="calcul-du-coût-en-mode-réflexion"&gt;Calcul du coût en mode "Réflexion"&lt;/h2&gt;

&lt;p&gt;Le mode Réflexion de GPT-5.5 utilise le même ID de modèle avec un &lt;code&gt;reasoning.effort&lt;/code&gt; plus élevé. Cela ne change pas le prix par jeton ; cela change le nombre de jetons qu'une seule requête utilise. Attendez-vous à ce que le multiplicateur se situe dans trois fourchettes.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Effort&lt;/th&gt;
&lt;th&gt;Multiplicateur de jetons de sortie&lt;/th&gt;
&lt;th&gt;Quand l'utiliser&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;faible&lt;/code&gt; (par défaut)&lt;/td&gt;
&lt;td&gt;1×&lt;/td&gt;
&lt;td&gt;La plupart des appels de routine&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;moyen&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1.3–2×&lt;/td&gt;
&lt;td&gt;Codage multi-étapes, génération structurée&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;élevé&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2–4×&lt;/td&gt;
&lt;td&gt;Recherche approfondie, révision critique pour la correction&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;très élevé&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;3–8×&lt;/td&gt;
&lt;td&gt;Boucles d'agents avec chaînes d'outils, planification dense&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Un seul appel &lt;code&gt;très élevé&lt;/code&gt; sur une longue invite peut facilement consommer 20 000 jetons de raisonnement ; à 30 $ par million, cela représente 0,60 $ pour le raisonnement seul, en plus du coût des jetons de sortie finaux.&lt;/p&gt;

&lt;p&gt;Budgettez par charge de travail, pas par requête.&lt;/p&gt;

&lt;h2 id="tarification-codex"&gt;Tarification Codex&lt;/h2&gt;

&lt;p&gt;L'accès à Codex est lié au plan ChatGPT, et non à la facturation par jeton. Au 23 avril 2026, la structure se présente comme suit.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Accès Codex&lt;/th&gt;
&lt;th&gt;GPT-5.5&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gratuit&lt;/td&gt;
&lt;td&gt;Oui (temps limité)&lt;/td&gt;
&lt;td&gt;Oui&lt;/td&gt;
&lt;td&gt;Plafonds hebdomadaires stricts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Go&lt;/td&gt;
&lt;td&gt;Oui (temps limité)&lt;/td&gt;
&lt;td&gt;Oui&lt;/td&gt;
&lt;td&gt;2× plafonds du plan Gratuit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plus (20 $ / mois)&lt;/td&gt;
&lt;td&gt;Oui&lt;/td&gt;
&lt;td&gt;Oui&lt;/td&gt;
&lt;td&gt;Plafonds standards&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pro (200 $ / mois)&lt;/td&gt;
&lt;td&gt;Oui&lt;/td&gt;
&lt;td&gt;Oui + Réflexion + Pro (dans ChatGPT)&lt;/td&gt;
&lt;td&gt;Plafonds par utilisateur les plus élevés&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business&lt;/td&gt;
&lt;td&gt;Oui&lt;/td&gt;
&lt;td&gt;Oui&lt;/td&gt;
&lt;td&gt;Basé sur le siège&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entreprise / Éducation&lt;/td&gt;
&lt;td&gt;Oui&lt;/td&gt;
&lt;td&gt;Oui&lt;/td&gt;
&lt;td&gt;Basé sur contrat&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Pour les utilisateurs qui passent la majeure partie de leur temps dans un flux de travail de codage en terminal, Plus ou Pro est le moyen le moins cher d'utiliser GPT-5.5 ; le forfait mensuel bat même la tarification Batch une fois que vous dépassez quelques centaines de milliers de jetons par jour. Le &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-free-codex?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide du chemin gratuit&lt;/a&gt; couvre le point d'entrée sans coût.&lt;/p&gt;

&lt;h2 id="comparaison-gpt-55-vs-le-reste-de-la-gamme"&gt;Comparaison : GPT-5.5 vs le reste de la gamme&lt;/h2&gt;

&lt;p&gt;Quand devez-vous payer pour GPT-5.5 et quand devez-vous conserver GPT-5.4 ou GPT-5.4-mini ? Le calcul du coût dépend de l'intensité de sortie de votre charge de travail.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Modèle&lt;/th&gt;
&lt;th&gt;Entrée / M&lt;/th&gt;
&lt;th&gt;Sortie / M&lt;/th&gt;
&lt;th&gt;Coût par 1 000 jetons de sortie&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4-mini&lt;/td&gt;
&lt;td&gt;$0.25&lt;/td&gt;
&lt;td&gt;$2.00&lt;/td&gt;
&lt;td&gt;$0.0020&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.4&lt;/td&gt;
&lt;td&gt;$2.50&lt;/td&gt;
&lt;td&gt;$15.00&lt;/td&gt;
&lt;td&gt;$0.0150&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5&lt;/td&gt;
&lt;td&gt;$5.00&lt;/td&gt;
&lt;td&gt;$30.00&lt;/td&gt;
&lt;td&gt;$0.0300&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPT-5.5 Pro&lt;/td&gt;
&lt;td&gt;$30.00&lt;/td&gt;
&lt;td&gt;$180.00&lt;/td&gt;
&lt;td&gt;$0.1800&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Un flux de décision sommaire :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Sortie à volume élevé et à faible risque (classification, résumé, chat simple) : &lt;strong&gt;GPT-5.4-mini&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Trafic de production général où 5.4 respecte déjà les critères de qualité : &lt;strong&gt;GPT-5.4&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Codage complexe, travail d'agent multi-étapes, chaînes de recherche : &lt;strong&gt;GPT-5.5&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Sortie critique pour la correction où une mauvaise réponse est coûteuse à détecter en aval : &lt;strong&gt;GPT-5.5 Pro&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="exemple-concret-coût-dun-agent-de-codage-par-tâche"&gt;Exemple concret : coût d'un agent de codage par tâche&lt;/h2&gt;

&lt;p&gt;Une session de codage agentique typique via l'API sur GPT-5.5 avec &lt;code&gt;reasoning.effort: "medium"&lt;/code&gt; se présente comme suit.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Jetons d'entrée par tâche (contexte du dépôt + invite utilisateur) : ~15 000&lt;/li&gt;
  &lt;li&gt;Jetons de sortie par tâche (code + explications) : ~3 000&lt;/li&gt;
  &lt;li&gt;Jetons de raisonnement par tâche (effort moyen) : ~6 000&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Coût par tâche avec la tarification standard :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Entrée : 15 K × 5,00 $ / M = 0,075 $&lt;/li&gt;
  &lt;li&gt;Sortie : (3 K + 6 K) × 30,00 $ / M = 0,27 $&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Total : 0,345 $ par tâche de codage terminée.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exécution de la même charge de travail sur GPT-5.4 :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Entrée : 15 K × 2,50 $ / M = 0,0375 $&lt;/li&gt;
  &lt;li&gt;Sortie : 9 K × 15,00 $ / M = 0,135 $&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Total : 0,1725 $ par tâche de codage terminée.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;GPT-5.5 coûte exactement 2× plus par tâche pour le même effort de raisonnement. La mise à niveau est rentable lorsque l'écart SWE-bench (88,7 % contre environ 74 %) permet de réaliser suffisamment de tâches avec succès pour éliminer un deuxième aller-retour. Si une tâche sur huit sur GPT-5.4 nécessite une réécriture manuelle, GPT-5.5 est globalement moins cher.&lt;/p&gt;

&lt;h2 id="contrôles-de-coûts-à-intégrer-dès-le-premier-jour"&gt;Contrôles de coûts à intégrer dès le premier jour&lt;/h2&gt;

&lt;p&gt;Cinq leviers pour maintenir les factures GPT-5.5 sous contrôle :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Plafonds stricts pour &lt;code&gt;max_output_tokens&lt;/code&gt;.&lt;/strong&gt; À chaque appel, à chaque fois. Par défaut à 2 000, sauf si vous avez explicitement besoin d'une sortie longue.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Schémas JSON stricts.&lt;/strong&gt; Une sortie mal formée signifie des tentatives de réessai ; les tentatives de réessai sont un appel facturé au prix plein.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Routage par difficulté.&lt;/strong&gt; Aiguillez les requêtes faciles vers GPT-5.4-mini ; faites remonter les difficiles vers GPT-5.5. Un routeur de 10 lignes économise plus que toute optimisation au niveau de l'invite.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Utilisez Batch pour tout ce qui est hors ligne.&lt;/strong&gt; Évaluations, compléments de données, génération de rapports nocturnes ; le tout à 50 % de réduction.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Suivez &lt;code&gt;usage.reasoning_tokens&lt;/code&gt;.&lt;/strong&gt; La surprise de facturation sur GPT-5.5 est presque toujours liée aux dépenses en jetons de raisonnement à effort élevé. Soyez alerté.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="estimation-du-coût-mensuel-par-plan"&gt;Estimation du coût mensuel par plan&lt;/h2&gt;

&lt;p&gt;Si vous choisissez un niveau ChatGPT pour l'accès à GPT-5.5, voici ce que chaque plan comprend :&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Prix mensuel&lt;/th&gt;
&lt;th&gt;Meilleur usage&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gratuit&lt;/td&gt;
&lt;td&gt;$0&lt;/td&gt;
&lt;td&gt;Essayer GPT-5.5 via Codex avant de s'engager&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Go&lt;/td&gt;
&lt;td&gt;$4 / mois&lt;/td&gt;
&lt;td&gt;Étudiants et utilisateurs légers souhaitant 2× les plafonds du plan Gratuit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plus&lt;/td&gt;
&lt;td&gt;$20 / mois&lt;/td&gt;
&lt;td&gt;Développeurs individuels utilisant Codex + ChatGPT quotidiennement&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pro&lt;/td&gt;
&lt;td&gt;$200 / mois&lt;/td&gt;
&lt;td&gt;Utilisateurs expérimentés souhaitant Réflexion et Pro dans ChatGPT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business&lt;/td&gt;
&lt;td&gt;$25 / siège / mois&lt;/td&gt;
&lt;td&gt;Équipes ayant besoin d'espaces de travail partagés&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entreprise / Éducation&lt;/td&gt;
&lt;td&gt;Personnalisé&lt;/td&gt;
&lt;td&gt;Basé sur contrat avec SLA&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Pour quiconque exécute plus de ~4 millions de jetons de sortie par mois sur l'API, le plan Pro dans ChatGPT plus l'interface de ligne de commande (CLI) de Codex s'avère moins cher que la facturation API à l'usage, tant que la charge de travail tient dans la fenêtre contextuelle de 400 K de la CLI.&lt;/p&gt;

&lt;h2 id="signaux-de-changement-de-prix-à-surveiller"&gt;Signaux de changement de prix à surveiller&lt;/h2&gt;

&lt;p&gt;Deux signaux à suivre si vous établissez un budget à long terme :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;La disponibilité générale (GA) de l'API GPT-5.5.&lt;/strong&gt; Les prix pourraient baisser à mesure qu'OpenAI répond à la pression concurrentielle d'Anthropic Claude Mythos, de Gemini 3.5 et des modèles à poids ouverts évalués dans le &lt;a href="https://www.vellum.ai/llm-leaderboard" rel="noopener noreferrer"&gt;classement Vellum&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Démocratisation du modèle Pro.&lt;/strong&gt; OpenAI a historiquement baissé les prix du niveau Pro dans les 3 à 6 mois suivant chaque publication. Ne supposez pas que les 30 $ / 180 $ d'aujourd'hui sont permanents ; ne supposez pas non plus qu'ils baisseront.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="faq"&gt;FAQ&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Le caching réduit-il le coût d'entrée ?&lt;/strong&gt; Oui. Les jetons d'entrée mis en cache sur GPT-5.5 sont facturés à une fraction du tarif standard ; la &lt;a href="https://openai.com/api/pricing/" rel="noopener noreferrer"&gt;page de tarification d'OpenAI&lt;/a&gt; indique le multiplicateur exact. Mettez en cache tout ce que vous réutilisez dans plus d'une requête (invites système, schémas d'outils, contexte de dépôt).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Y a-t-il une réduction de volume ?&lt;/strong&gt; Pas une réduction publiée. Les contrats d'entreprise incluent souvent des tarifs personnalisés, et OpenAI ajuste les prix en fonction de l'utilisation soutenue. Parlez aux ventes au-delà de sept chiffres de dépenses annuelles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Le mode "Réflexion" coûte-t-il en supplément en plus de la tarification par jeton ?&lt;/strong&gt; Non. Il coûte plus cher parce qu'il utilise plus de jetons, pas parce que le tarif par jeton change.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L'utilisation de la CLI Codex est-elle facturée séparément de l'utilisation de l'API ?&lt;/strong&gt; Seulement si vous vous connectez avec une clé API. Les connexions ChatGPT facturent le coût du plan ; les connexions par clé API facturent le compte basé sur l'utilisation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quel est le moyen le moins cher d'essayer GPT-5.5 ?&lt;/strong&gt; Le plan Gratuit ou Go plus la CLI Codex. Consultez notre &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide du chemin gratuit&lt;/a&gt; pour toutes les options sans coût.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comment utiliser GPT-5.5 gratuitement avec Codex ?</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Fri, 24 Apr 2026 02:30:56 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/comment-utiliser-gpt-55-gratuitement-avec-codex--52l3</link>
      <guid>https://dev.to/antoine_laurentt/comment-utiliser-gpt-55-gratuitement-avec-codex--52l3</guid>
      <description>&lt;p&gt;OpenAI a lancé GPT-5.5 le 23 avril 2026 et, dans le cadre de ce lancement, a déployé Codex sur tous les forfaits ChatGPT, y compris les versions Gratuite et Go, pour une durée limitée. Cette seule phrase dans l'annonce représente le chemin gratuit le plus rapide vers le nouveau modèle : installez le CLI Codex, connectez-vous avec un compte ChatGPT, et utilisez GPT-5.5 depuis le terminal sans clé API ni carte de crédit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog dès aujourd'hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Ce guide vous présente l'installation, les options d'authentification, le changement de modèle, les limites que vous rencontrerez et comment intégrer Codex dans un flux de travail de codage réel. Pour un aperçu du modèle sous-jacent, consultez &lt;a href="http://apidog.com/blog/what-is-gpt-5-5?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Qu'est-ce que GPT-5.5&lt;/a&gt;. Pour d'autres chemins gratuits (crédits d'essai, agrégateurs), consultez notre &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide GPT-5.5 gratuit&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Le CLI Codex exécute GPT-5.5 sur votre dépôt local avec une fenêtre de contexte de 400 K.&lt;/li&gt;
&lt;li&gt;ChatGPT &lt;strong&gt;Gratuit, Go, Plus, Pro, Business, Enterprise et Édu&lt;/strong&gt; ont tous accès à Codex ; les versions Gratuite et Go sont à &lt;strong&gt;durée limitée&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Installez avec &lt;code&gt;npm install -g @openai/codex&lt;/code&gt; ou &lt;code&gt;brew install codex&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Connectez-vous via ChatGPT OAuth dans un navigateur, ou utilisez le flux de code d'appareil sur des machines sans interface graphique.&lt;/li&gt;
&lt;li&gt;Changez de modèle en cours de session avec &lt;code&gt;/model gpt-5.5&lt;/code&gt; ; vérifiez le quota avec &lt;code&gt;/status&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Associez le CLI à &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; afin que les appels API que vous exécuterez finalement en production soient pré-construits et testés.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Pourquoi Codex est le chemin gratuit le plus simple
&lt;/h2&gt;

&lt;p&gt;L'API d'OpenAI est payante par défaut ; GPT-5.5 sur le point de terminaison Réponses coûte 5 $ par million de jetons d'entrée et 30 $ par million de jetons de sortie une fois qu'il est généralisé. Codex contourne cela en enveloppant le même modèle dans un CLI qui s'authentifie via un compte ChatGPT au lieu d'une clé API. Le niveau du forfait détermine la limite de débit ; le modèle sous-jacent est le véritable GPT-5.5.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuhczptpnd6thkkkxlhc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnuhczptpnd6thkkkxlhc.png" alt="Codex UI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Installer le CLI Codex
&lt;/h2&gt;

&lt;p&gt;Deux méthodes d'installation prises en charge :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# npm (multiplateforme)&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @openai/codex

&lt;span class="c"&gt;# ou Homebrew (macOS / Linux)&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;codex
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vérifiez l'installation :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codex &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vous devriez voir une version égale ou supérieure à &lt;code&gt;0.28.0&lt;/code&gt; ; les versions antérieures ne listent pas GPT-5.5 dans le sélecteur de modèle.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3u8pyal71lu6rbud8cet.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3u8pyal71lu6rbud8cet.png" alt="Check version"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  S'authentifier avec un compte ChatGPT
&lt;/h2&gt;

&lt;p&gt;Exécutez le CLI pour la première fois et choisissez une méthode de connexion.&lt;/p&gt;

&lt;h3&gt;
  
  
  OAuth par navigateur (machines locales)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codex
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Un onglet de navigateur s'ouvre. Connectez-vous avec l'e-mail de votre compte ChatGPT. La session est mise en cache pour les prochaines exécutions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Flux de code d'appareil (machines sans interface graphique, serveurs distants)
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codex login &lt;span class="nt"&gt;--device-auth&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Le terminal affiche un code court et une URL. Ouvrez l'URL sur un autre appareil, collez le code, confirmez. La connexion est établie dès validation.&lt;/p&gt;

&lt;h3&gt;
  
  
  Option de secours par clé API
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;printenv &lt;/span&gt;OPENAI_API_KEY | codex login &lt;span class="nt"&gt;--with-api-key&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ce mode facture l’usage sur le compte de la clé API, pas le forfait ChatGPT. Utilisez-le si vous voulez que l’utilisation soit imputée à l’organisation API payante de l’équipe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choisir GPT-5.5 comme modèle
&lt;/h2&gt;

&lt;p&gt;Codex utilise par défaut le modèle « recommandé » selon votre forfait. Sur les forfaits payants, c’est déjà &lt;code&gt;gpt-5.5&lt;/code&gt;. Sur Gratuite et Go, sélectionnez-le manuellement :&lt;/p&gt;

&lt;h3&gt;
  
  
  En cours de session
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/model gpt-5.5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Le CLI affiche le modèle actif et les limites de débit.&lt;/p&gt;

&lt;h3&gt;
  
  
  Depuis le drapeau de lancement
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codex &lt;span class="nt"&gt;--model&lt;/span&gt; gpt-5.5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Vérifier le quota restant
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;La sortie affiche les budgets de messages, la fenêtre de contexte et l’heure d’expiration de la fenêtre Gratuite/Go.&lt;/p&gt;

&lt;h2&gt;
  
  
  Première session : un exemple réaliste
&lt;/h2&gt;

&lt;p&gt;Codex offre une interface terminal en plein écran capable de lire le dépôt, exécuter des commandes et éditer des fichiers. Exemple de workflow :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd&lt;/span&gt; ~/Projects/my-app
codex &lt;span class="nt"&gt;--model&lt;/span&gt; gpt-5.5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dans la session :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gt"&gt;&amp;gt; Lisez README.md, puis ouvrez scripts/deploy.sh et résumez ce qu'il fait en cinq points.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Codex ouvre, lit et résume le fichier.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; Refactorisez deploy.sh afin qu&lt;span class="s1"&gt;'il se termine à chaque étape échouée, et ajoutez un drapeau dry-run. Maintenez la compatibilité ascendante.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;GPT-5.5 propose un diff, attend l’approbation, puis applique.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight console"&gt;&lt;code&gt;&lt;span class="gp"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;Exécutez la suite de tests de déploiement et montrez-moi le cas d&lt;span class="s1"&gt;'échec.
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Le CLI diffuse la sortie des tests. Corrigez les erreurs via la boucle Codex jusqu’à résolution.&lt;/p&gt;

&lt;p&gt;GPT-5.5 est optimisé pour ce type de scénario : travail multifichier, usage d’outils, pilotage terminal. Le &lt;a href="https://openai.com/index/introducing-gpt-5-5/" rel="noopener noreferrer"&gt;billet de lancement d’OpenAI&lt;/a&gt; indique un score SWE-bench à 88,7 % (contre 74 % sur GPT-5.4).&lt;/p&gt;

&lt;h2&gt;
  
  
  Ce que Codex vous offre et que les appels API bruts n'offrent pas
&lt;/h2&gt;

&lt;p&gt;Le CLI fournit :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Contexte du dépôt :&lt;/strong&gt; lecture de l’arborescence, indexation des fichiers, envoi de descripteurs et non du contenu collé. Les 400K de contexte sont réservés aux vrais outils et sorties.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exécution de commandes avec approbations :&lt;/strong&gt; suggestion de commandes, validation manuelle avant exécution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aperçus des différences avant les écritures :&lt;/strong&gt; chaque modification s’affiche sous forme de diff ; acceptez, rejetez ou modifiez.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Persistance de session :&lt;/strong&gt; historique de projet, reprise du contexte à la prochaine ouverture.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sans Codex, il faudrait implémenter ces fonctionnalités au-dessus de l’API Responses. Notre &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide de l’API GPT-5.5&lt;/a&gt; montre la version bare-metal, mais pour le quotidien, le CLI est bien plus ergonomique.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limites de débit et plafonds par forfait
&lt;/h2&gt;

&lt;p&gt;Au 23 avril 2026, la structure est :&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Forfait&lt;/th&gt;
&lt;th&gt;Accès GPT-5.5 dans Codex&lt;/th&gt;
&lt;th&gt;Plafonnement hebdomadaire&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Gratuit&lt;/td&gt;
&lt;td&gt;Oui (durée limitée)&lt;/td&gt;
&lt;td&gt;Strict ; taille prototype&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Go&lt;/td&gt;
&lt;td&gt;Oui (durée limitée), 2× limites Gratuites&lt;/td&gt;
&lt;td&gt;Petit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Plus&lt;/td&gt;
&lt;td&gt;Oui&lt;/td&gt;
&lt;td&gt;Moyen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pro&lt;/td&gt;
&lt;td&gt;Oui, plafonds les plus élevés utilisateurs solo&lt;/td&gt;
&lt;td&gt;Élevé&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Business&lt;/td&gt;
&lt;td&gt;Oui, basé sur le nombre de sièges&lt;/td&gt;
&lt;td&gt;Élevé par siège&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise / Édu&lt;/td&gt;
&lt;td&gt;Oui, basé sur contrat&lt;/td&gt;
&lt;td&gt;Personnalisé&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Lorsque le plafond est atteint, Codex renvoie une erreur spécifique au forfait. La commande &lt;code&gt;/status&lt;/code&gt; affiche le quota restant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Intégration avec les éditeurs et IDE
&lt;/h2&gt;

&lt;p&gt;La même authentification Codex fonctionne dans l’extension VS Code, le plugin JetBrains et l’application cloud Codex. Après connexion via le CLI, l’extension IDE réutilise l’authentification.&lt;/p&gt;

&lt;p&gt;Pour les utilisateurs d’Apidog, adoptez ce workflow :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Prototyper une requête dans le CLI Codex (&lt;code&gt;exécutez l'invite GPT-5.5 sur ce fichier&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Exporter l’invite et la sortie dans une collection &lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; pour partage.&lt;/li&gt;
&lt;li&gt;Remplacer le chemin Codex par un appel API direct une fois le contrat stabilisé.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Voir &lt;a href="http://apidog.com/blog/how-to-use-apidog-inside-vscode?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog dans VS Code&lt;/a&gt; pour intégrer la collection dans l’éditeur.&lt;/p&gt;

&lt;h2&gt;
  
  
  Maintenir la sécurité du flux de travail sur Gratuite et Go
&lt;/h2&gt;

&lt;p&gt;Mettez en place dès le départ :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Approbation systématique des écritures de fichiers&lt;/strong&gt; : dans &lt;code&gt;~/.codex/config.json&lt;/code&gt;, définissez &lt;code&gt;"autoApproveWrites": false&lt;/code&gt;. Par défaut c’est déjà le cas sur Gratuite, mais sur Go certaines écritures triviales sont auto-appliquées.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Limitez l’espace de travail&lt;/strong&gt; : lancez &lt;code&gt;codex&lt;/code&gt; uniquement dans le dossier projet. Ne donnez pas accès à &lt;code&gt;~&lt;/code&gt;, sinon le CLI pourra lire tout votre dossier personnel.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;OpenAI a fait auditer GPT-5.5 en sécurité par un tiers ; la &lt;a href="https://www.cnbc.com/2026/04/23/openai-announces-latest-artificial-intelligence-model.html" rel="noopener noreferrer"&gt;couverture CNBC du lancement&lt;/a&gt; détaille le red-teaming. Mais le CLI s’exécute sur votre machine : révisez toujours les diffs avant de les appliquer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quand quitter le chemin gratuit
&lt;/h2&gt;

&lt;p&gt;« Durée limitée » veut dire que Gratuite et Go demanderont une migration. Voici quand passer à une offre supérieure :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Quota dépassé chaque semaine&lt;/strong&gt; : passez à Plus ou Pro.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Besoin de l’API directe&lt;/strong&gt; : votre charge de travail dépasse le CLI ; voir le &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide de l’API GPT-5.5&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Facturation par siège équipe&lt;/strong&gt; : Business ou Enterprise via la &lt;a href="http://apidog.com/blog/gpt-5-5-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;répartition des prix&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;La migration ne change que la facturation et l’interface, pas le modèle.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Codex exécute-t-il également GPT-5.5 Pro ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
La version Pro n’est pas exposée dans Codex actuellement. Le CLI utilise le GPT-5.5 standard pour tous les forfaits ; Pro reste sur ChatGPT ou (bientôt) l’API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Puis-je utiliser Codex sans compte ChatGPT ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non. Il faut un compte ChatGPT ou une clé API OpenAI. Le chemin gratuit exige une connexion ChatGPT.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Combien de temps durera l’accès Gratuite et Go ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
OpenAI annonce « pour une durée limitée ». Comptez de quelques semaines à quelques mois, prévoyez d’upgrader si votre usage augmente.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Codex fonctionne-t-il hors ligne ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non. Chaque appel GPT-5.5 nécessite un aller-retour vers OpenAI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;En quoi cela diffère-t-il de l’application web ChatGPT ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Codex s’exécute en terminal, accède au système de fichiers local, au shell, et au contexte du dépôt. L’application web ne propose pas ces accès.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comment Utiliser l'API GPT-5.5 Gratuitement</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Fri, 24 Apr 2026 02:18:13 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/comment-utiliser-lapi-gpt-55-gratuitement-38k1</link>
      <guid>https://dev.to/antoine_laurentt/comment-utiliser-lapi-gpt-55-gratuitement-38k1</guid>
      <description>&lt;p&gt;GPT-5.5 a été lancé le 23 avril 2026 avec un mur de paiement pour la plupart des services : Plus, Pro, Business et Enterprise dans ChatGPT, et des jetons d'API payants pour les appels programmatiques. Cependant, trois voies gratuites fonctionnent aujourd'hui. Si vous acceptez des limites de débit et une expiration à terme, vous pouvez exécuter de vrais appels GPT-5.5 sans ajouter de mode de paiement.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog dès aujourd'hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Ce guide détaille chaque voie gratuite vérifiée, leur adéquation selon le cas d'usage, et comment pré-construire une collection prête pour la production dans &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; afin de passer du niveau gratuit au payant sans friction.&lt;/p&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Codex CLI sur ChatGPT Gratuit ou Go&lt;/strong&gt; — accès gratuit temporaire à GPT-5.5 via l’outil CLI Codex. Pas de carte requise, fonctionne aujourd’hui.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crédit d’essai OpenAI pour nouveaux comptes API&lt;/strong&gt; — petit solde de démarrage qui débloque des appels GPT-5.5 quand l'API s'ouvre.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Niveaux gratuits d'OpenRouter et agrégateurs&lt;/strong&gt; — passerelles tierces offrant parfois un quota gratuit sur les nouveaux modèles dans les jours suivant le lancement.&lt;/li&gt;
&lt;li&gt;Chaque voie a ses limites. Passez au payant pour toute charge de travail en production.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Voie 1 : Codex CLI (la plus pratique)
&lt;/h2&gt;

&lt;p&gt;OpenAI inclut Codex dans tous les plans ChatGPT au lancement, y compris Gratuit et Go, pour une durée limitée. Codex expose GPT-5.5 via ChatGPT (pas de clé API). Connectez-vous avec un compte gratuit, lancez le CLI, le modèle répond sur une fenêtre de 400 K jetons.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installation
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @openai/codex
&lt;span class="c"&gt;# ou&lt;/span&gt;
brew &lt;span class="nb"&gt;install &lt;/span&gt;codex
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vérifiez l'installation :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codex &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Authentification
&lt;/h3&gt;

&lt;p&gt;Lancez &lt;code&gt;codex&lt;/code&gt; la première fois : un navigateur s’ouvre pour l’authentification OAuth ChatGPT. Sur une machine sans interface graphique :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codex login &lt;span class="nt"&gt;--device-auth&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Un flux de code de périphérique vous donne une URL courte et un code — aucun besoin de clé API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choisir le modèle
&lt;/h3&gt;

&lt;p&gt;Dans une session Codex active :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/model gpt-5.5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ou démarrez le CLI directement :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;codex &lt;span class="nt"&gt;--model&lt;/span&gt; gpt-5.5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vérifiez le quota restant avec &lt;code&gt;/status&lt;/code&gt;. Sur Gratuit/Go les limites sont strictes, mais suffisent pour prototyper.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ce que vous obtenez / pas
&lt;/h3&gt;

&lt;p&gt;Vous accédez au vrai modèle GPT-5.5 : contexte 400K, lectures de fichiers, exécution terminal, modifications de dépôt dans le CLI. Pas d’accès direct à l’API : tout passe par Codex connecté. Pour le guide complet, voir &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-free-codex?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;notre guide GPT-5.5 gratuit avec Codex&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Comme l’accès est « temporaire », structurez votre projet pour rendre l’ID du modèle configurable. Quand l’essai expire, passez au payant ou à l’API sans réécrire.&lt;/p&gt;

&lt;h2&gt;
  
  
  Voie 2 : Crédit d’essai OpenAI pour nouveaux comptes API
&lt;/h2&gt;

&lt;p&gt;Créer un nouveau compte développeur OpenAI donne souvent un petit crédit d’essai (ex : 5 $ pour 90 jours, parfois plus pour les emails .edu). Dès que l’API GPT-5.5 est ouverte, ce crédit permet d’appeler &lt;code&gt;gpt-5.5&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mode d’emploi
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Créez un nouveau compte sur &lt;code&gt;platform.openai.com&lt;/code&gt; avec un email jamais utilisé pour OpenAI.&lt;/li&gt;
&lt;li&gt;Vérifiez le numéro de téléphone (obligatoire pour le crédit).&lt;/li&gt;
&lt;li&gt;Créez une clé API limitée à un projet sous l’organisation d’essai.&lt;/li&gt;
&lt;li&gt;Vérifiez le montant de la subvention et la date d’expiration sur le dashboard.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Utilisation sur GPT-5.5
&lt;/h3&gt;

&lt;p&gt;Avec 5 $ de crédit et un prix de 5 $/M jetons input, 30 $/M output, cela donne env. 1M jetons input ou 160K output — suffisant pour tester un prototype, pas pour la prod.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Optimisation du crédit :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Mode Batch&lt;/strong&gt; : requêtes via l’API Batch = 50 % de réduction, idéal pour les traitements différés. Voir &lt;a href="https://openai.com/api/pricing/" rel="noopener noreferrer"&gt;tarification OpenAI&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;reasoning.effort&lt;/code&gt; à &lt;code&gt;low&lt;/code&gt;&lt;/strong&gt; : Les exécutions "réflexion" épuisent vite le budget. Gardez la valeur par défaut &lt;code&gt;low&lt;/code&gt; pour les usages courants.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Limite
&lt;/h3&gt;

&lt;p&gt;Le crédit d’essai n’est pas renouvelable. Une fois épuisé, les requêtes GPT-5.5 renvoient 402, et pas de second essai via le même utilisateur/téléphone/carte.&lt;/p&gt;

&lt;h2&gt;
  
  
  Voie 3 : Niveaux gratuits des agrégateurs
&lt;/h2&gt;

&lt;p&gt;Des plateformes comme OpenRouter, Together, Groq offrent parfois un quota gratuit sur les modèles OpenAI tout juste lancés. Disponibilité variable : vérifiez le jour même.&lt;/p&gt;

&lt;p&gt;Procédure classique pour un agrégateur :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Créez un compte, validez l’email.&lt;/li&gt;
&lt;li&gt;Générez une clé API d’agrégateur.&lt;/li&gt;
&lt;li&gt;Remplacez l’URL de base OpenAI par celle de l’agrégateur dans votre SDK.&lt;/li&gt;
&lt;li&gt;Modifiez la chaîne modèle pour l’alias agrégateur (ex : &lt;code&gt;openai/gpt-5.5&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Exemple en Python :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;base_url&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://openrouter.ai/api/v1&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;sk-or-v1-...&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;chat&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;completions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;openai/gpt-5.5&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;messages&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Explain the Responses API in two paragraphs.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;}],&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choices&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="n"&gt;message&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;content&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Limites&lt;/strong&gt; : débit propre à l’agrégateur, quota partagé, et le niveau gratuit disparaît parfois du jour au lendemain (erreur 402 ou 429). À utiliser pour prototypage, pas en production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Quelle voie gratuite choisir ?
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Cas d'utilisation&lt;/th&gt;
&lt;th&gt;Meilleure voie gratuite&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Assistant de codage basé sur le terminal&lt;/td&gt;
&lt;td&gt;Codex CLI (Voie 1)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Expérimentations rapides en Python ou Node&lt;/td&gt;
&lt;td&gt;Crédit d’essai (Voie 2)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Test depuis une application hébergée&lt;/td&gt;
&lt;td&gt;Agrégateur (Voie 3)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Comparaison GPT-5.5 vs GPT-5.4 sur des requêtes réelles&lt;/td&gt;
&lt;td&gt;Crédit d’essai + collection Apidog&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Recherche ponctuelle « cela peut-il répondre à ma question »&lt;/td&gt;
&lt;td&gt;ChatGPT Plus (pas gratuit, mais le moins cher par heure)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Pour tout ce qui dépasse un prototype, les trois voies atteignent vite leurs limites. L’objectif : apprendre à structurer les requêtes et ajuster les prompts avant de passer au payant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pré-construire la requête dans Apidog
&lt;/h2&gt;

&lt;p&gt;Le plus efficace pour migrer du gratuit au payant sans réécriture : construire la requête une fois, versionner la collection.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffuujni1mvtoy9wit88i2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffuujni1mvtoy9wit88i2.png" alt="Apidog collection"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dans Apidog :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Créez une nouvelle collection, ajoutez une requête &lt;code&gt;POST https://api.openai.com/v1/responses&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Définissez l’en-tête d’authentification via une variable d’environnement pour pouvoir changer la clé sans modifier le corps.&lt;/li&gt;
&lt;li&gt;Stockez une réponse exemple pour que les devs puissent travailler sur une maquette même sans clé.&lt;/li&gt;
&lt;li&gt;Clonez la collection pour l’agrégateur : pointez &lt;code&gt;baseUrl&lt;/code&gt; vers OpenRouter et modifiez la chaîne modèle.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Quand l’essai expire ou que vous passez au payant, il suffit de basculer la variable d’environnement et la collection continue de fonctionner. Voir aussi la &lt;a href="http://apidog.com/blog/how-to-use-apidog-inside-vscode?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;présentation d’Apidog dans VS Code&lt;/a&gt; pour une intégration à Cursor ou Claude Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limitations des voies gratuites
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Limites de débit fluctuantes&lt;/strong&gt; : Codex Gratuit/Go ralentit aux heures de pointe.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Crédit d’essai non cumulable&lt;/strong&gt; : pas de second essai si carte/téléphone/IP déjà utilisés.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GPT-5.5 Pro jamais inclus dans le gratuit&lt;/strong&gt; : réservé aux plans payants.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mode réflexion = budget vite épuisé&lt;/strong&gt; : gardez &lt;code&gt;reasoning.effort&lt;/code&gt; à &lt;code&gt;low&lt;/code&gt; sauf test critique.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fenêtres gratuites temporaires&lt;/strong&gt; : accès Codex Gratuit/Go explicitement « pour une durée limitée » (&lt;a href="https://openai.com/index/introducing-gpt-5-5/" rel="noopener noreferrer"&gt;annonce OpenAI&lt;/a&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Un prototype réaliste au niveau gratuit
&lt;/h2&gt;

&lt;p&gt;Pour maximiser le quota gratuit :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Choisissez une tâche réelle : rapport, revue de code, note de recherche…&lt;/li&gt;
&lt;li&gt;Exécutez 10 exemples via GPT-5.4 sur vos outils existants, notez la qualité.&lt;/li&gt;
&lt;li&gt;Refaites les mêmes exemples via GPT-5.5 (Codex CLI ou crédit d’essai).&lt;/li&gt;
&lt;li&gt;Comparez rendement par jeton et taux d’erreur.&lt;/li&gt;
&lt;li&gt;Décidez si la montée de version justifie le surcoût pour votre cas.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;C’est un test réalisable en une après-midi, qui optimise vos dépenses dès le premier mois de production.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;L’essai gratuit Codex et Go est-il permanent ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non. L’&lt;a href="https://openai.com/index/introducing-gpt-5-5/" rel="noopener noreferrer"&gt;annonce&lt;/a&gt; OpenAI indique « durée limitée ». Prévoyez la fin dans les mois suivant le lancement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ChatGPT Gratuit donne-t-il GPT-5.5 dans le navigateur ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non. ChatGPT Gratuit reste sur GPT-5.3. GPT-5.5 dans ChatGPT nécessite Plus ou supérieur.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Peut-on exécuter GPT-5.5 sur Hugging Face ou Ollama gratuitement ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non. GPT-5.5 est à poids fermé, uniquement via OpenAI ou Codex.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Réduction étudiant ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
OpenAI propose parfois des crédits/avantages pour emails .edu. Voir la &lt;a href="https://openai.com/education/" rel="noopener noreferrer"&gt;page éducation OpenAI&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comment passer du gratuit au payant sans réécrire ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Gérez clés et URL de base via variables d’environnement (&lt;code&gt;OPENAI_API_KEY&lt;/code&gt;, &lt;code&gt;OPENAI_BASE_URL&lt;/code&gt;). Changez-les quand l’essai expire. Voir notre &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide de l’API GPT-5.5&lt;/a&gt; pour de bonnes pratiques sur les clés projet.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Comment utiliser l'API GPT-5.5</title>
      <dc:creator>Antoine Laurent</dc:creator>
      <pubDate>Fri, 24 Apr 2026 02:14:57 +0000</pubDate>
      <link>https://dev.to/antoine_laurentt/comment-utiliser-lapi-gpt-55-25ia</link>
      <guid>https://dev.to/antoine_laurentt/comment-utiliser-lapi-gpt-55-25ia</guid>
      <description>&lt;p&gt;GPT-5.5 a été lancé le 23 avril 2026. Pour les développeurs, la nouveauté clé : OpenAI a ouvert le modèle dans ChatGPT et Codex dès le premier jour, et promet l'accès aux endpoints API Responses et Chat Completions « très bientôt ». Ce guide explique comment appeler GPT-5.5 dès que les clés sont actives, et comment l'utiliser aujourd'hui via Codex.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://apidog.com/?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation" class="crayons-btn crayons-btn--primary"&gt;Essayez Apidog dès aujourd'hui&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;Vous trouverez ici la structure des endpoints, l’authentification, des exemples concrets en Python et Node.js, le tableau complet des paramètres, le calcul des coûts en mode réflexion, la gestion des erreurs, et un workflow de test optimisé dans &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; pour économiser vos crédits lors des itérations.&lt;/p&gt;

&lt;p&gt;Pour une vue d’ensemble du modèle côté produit, consultez &lt;a href="http://apidog.com/blog/what-is-gpt-5-5?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Qu'est-ce que GPT-5.5&lt;/a&gt;. Pour une méthode gratuite, lisez &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-api-for-free?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Comment utiliser l'API GPT-5.5 gratuitement&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  En bref
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Endpoints&lt;/strong&gt; : &lt;strong&gt;Responses&lt;/strong&gt; et &lt;strong&gt;Chat Completions&lt;/strong&gt;. ID de modèle : &lt;code&gt;gpt-5.5&lt;/code&gt;. Version Pro : &lt;code&gt;gpt-5.5-pro&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tarification API&lt;/strong&gt; : &lt;strong&gt;5 $ / M tokens entrée&lt;/strong&gt;, &lt;strong&gt;30 $ / M tokens sortie&lt;/strong&gt;. Pro : &lt;strong&gt;30 $ / M entrée&lt;/strong&gt;, &lt;strong&gt;180 $ / M sortie&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fenêtre contextuelle&lt;/strong&gt; : &lt;strong&gt;1 M tokens&lt;/strong&gt; (API), &lt;strong&gt;400 K&lt;/strong&gt; (CLI Codex).&lt;/li&gt;
&lt;li&gt;Tant que l’API n’est pas ouverte à tous, utilisez GPT-5.5 via Codex en vous connectant avec un compte ChatGPT.&lt;/li&gt;
&lt;li&gt;Utilisez &lt;a href="https://apidog.com/download?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt; pour préconstruire votre collection. La requête ressemble à GPT-5.4, mais avec un nouvel ID de modèle et un bloc &lt;code&gt;reasoning&lt;/code&gt; étendu.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prérequis
&lt;/h2&gt;

&lt;p&gt;Avant d’envoyer votre première requête, préparez :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Compte développeur OpenAI&lt;/strong&gt; avec facturation activée. Un abonnement ChatGPT Plus/Pro ne remplace pas la facturation API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clé API&lt;/strong&gt; avec accès à GPT-5. Privilégiez les clés projet pour la production.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SDK compatible &lt;code&gt;gpt-5.5&lt;/code&gt;&lt;/strong&gt; : Python &lt;code&gt;openai&amp;gt;=2.1.0&lt;/code&gt;, Node &lt;code&gt;openai@5.1.0&lt;/code&gt; ou plus récent.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Client API&lt;/strong&gt; capable de rejouer les requêtes (curl pour le premier appel, puis outil type Apidog pour l’itération).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Exportez la clé une fois :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"sk-proj-..."&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Endpoint et authentification
&lt;/h2&gt;

&lt;p&gt;GPT-5.5 s’utilise sur les mêmes endpoints que GPT-5 :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;POST https://api.openai.com/v1/responses
POST https://api.openai.com/v1/chat/completions
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;L’API Responses est la plus récente, supporte le mode réflexion, la recherche web et l’usage de l’ordinateur. Chat Completions reste compatible avec les intégrations historiques.&lt;/p&gt;

&lt;p&gt;Authentification via Bearer token. Chaque requête inclut un JSON avec l’ID du modèle, le prompt ou tableau de messages, et les paramètres.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl https://api.openai.com/v1/responses &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Authorization: Bearer &lt;/span&gt;&lt;span class="nv"&gt;$OPENAI_API_KEY&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-H&lt;/span&gt; &lt;span class="s2"&gt;"Content-Type: application/json"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="s1"&gt;'{
    "model": "gpt-5.5",
    "input": "Summarize the last 10 releases of the openai/codex repo in three bullets.",
    "reasoning": { "effort": "medium" }
  }'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Réponse : un objet JSON avec un tableau &lt;code&gt;output&lt;/code&gt; et un bloc &lt;code&gt;usage&lt;/code&gt; détaillant les tokens (entrée, sortie, raisonnement). Les erreurs renvoient un code et un message lisible ; voir la section gestion des erreurs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Paramètres de requête
&lt;/h2&gt;

&lt;p&gt;Chaque champ du body contrôle coût ou comportement. Carte complète pour &lt;code&gt;gpt-5.5&lt;/code&gt; :&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Paramètre&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Valeurs&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;model&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;gpt-5.5&lt;/code&gt;, &lt;code&gt;gpt-5.5-pro&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Obligatoire. Pro = coût x6.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;input&lt;/code&gt; / &lt;code&gt;messages&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;string/array&lt;/td&gt;
&lt;td&gt;prompt ou tableau de chat&lt;/td&gt;
&lt;td&gt;Obligatoire. &lt;code&gt;input&lt;/code&gt; pour Responses, &lt;code&gt;messages&lt;/code&gt; pour Chat Completions.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;reasoning.effort&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;none&lt;/code&gt;, &lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt;, &lt;code&gt;xhigh&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;Défaut : &lt;code&gt;low&lt;/code&gt;. &lt;code&gt;xhigh&lt;/code&gt; = "Réflexion" (coût tokens élevé).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;max_output_tokens&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;1 – 128000&lt;/td&gt;
&lt;td&gt;Limite stricte de sortie (hors tokens de raisonnement).&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tools&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;array&lt;/td&gt;
&lt;td&gt;Function, web_search, file_search, computer_use, code_interpreter&lt;/td&gt;
&lt;td&gt;Définitions d’outils ; le modèle les enchaîne dynamiquement.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;tool_choice&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string/object&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;auto&lt;/code&gt;, &lt;code&gt;none&lt;/code&gt;, ou outil nommé&lt;/td&gt;
&lt;td&gt;Force un outil précis si besoin.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;response_format&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;object&lt;/td&gt;
&lt;td&gt;&lt;code&gt;{ "type": "json_schema", "schema": {...} }&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Sortie structurée ; strict par défaut.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;stream&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;td&gt;true / false&lt;/td&gt;
&lt;td&gt;Events serveur. Tokens de raisonnement en events séparés.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;user&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;libre&lt;/td&gt;
&lt;td&gt;Pour détection d’abus ; passer un ID utilisateur haché.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;metadata&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;object&lt;/td&gt;
&lt;td&gt;16 paires clé-valeur max&lt;/td&gt;
&lt;td&gt;Apparaît dans le dashboard OpenAI.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;seed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;int&lt;/td&gt;
&lt;td&gt;32 bits&lt;/td&gt;
&lt;td&gt;Déterminisme doux.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;temperature&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;number&lt;/td&gt;
&lt;td&gt;0 – 2&lt;/td&gt;
&lt;td&gt;Ignoré si &lt;code&gt;reasoning.effort &amp;gt;= medium&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Les champs influant le plus sur le coût : &lt;code&gt;reasoning.effort&lt;/code&gt;, &lt;code&gt;max_output_tokens&lt;/code&gt;, &lt;code&gt;tools&lt;/code&gt;. Les modes "Réflexion" (&lt;code&gt;high&lt;/code&gt; ou &lt;code&gt;xhigh&lt;/code&gt;) peuvent multiplier par 3 à 8 le coût par rapport à &lt;code&gt;low&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exemple Python
&lt;/h2&gt;

&lt;p&gt;Utilisation du SDK Python (structure identique à GPT-5.4, seul l’ID change et la plage &lt;code&gt;reasoning.effort&lt;/code&gt; s’étend) :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;openai&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;OpenAI&lt;/span&gt;

&lt;span class="n"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;responses&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-5.5&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;system&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;You are a senior Go engineer. Answer in terse, runnable code.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;role&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;user&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Write a worker pool with bounded concurrency and a context &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;cancellation path. No third-party deps.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
            &lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="n"&gt;reasoning&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;effort&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;medium&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="n"&gt;max_output_tokens&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;output_text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;usage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;model_dump&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Points clés :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;response.output_text&lt;/code&gt; aplatit le tableau &lt;code&gt;output&lt;/code&gt;. Pour des events structurés (appels outils, traces raisonnement, citations), lisez &lt;code&gt;response.output&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;usage&lt;/code&gt; fournit maintenant &lt;code&gt;input_tokens&lt;/code&gt;, &lt;code&gt;output_tokens&lt;/code&gt;, &lt;code&gt;reasoning_tokens&lt;/code&gt;. La facturation est basée sur ces trois.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Exemple Node
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;OpenAI&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;OpenAI&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;responses&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-5.5&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;input&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;system&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;You are a careful reviewer.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;role&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;user&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="na"&gt;content&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Review this migration and flag any operation that would lock a write-heavy table for more than 200 ms.&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="na"&gt;reasoning&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;effort&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;high&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[{&lt;/span&gt; &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;file_search&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="p"&gt;}],&lt;/span&gt;
  &lt;span class="na"&gt;max_output_tokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;6000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;output_text&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;usage&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Définissez &lt;code&gt;reasoning.effort: "high"&lt;/code&gt; pour les tâches de revue critique où un bug non détecté coûte plus cher que quelques centimes de tokens supplémentaires.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mode de réflexion
&lt;/h2&gt;

&lt;p&gt;Le mode de réflexion n'est &lt;strong&gt;pas&lt;/strong&gt; un modèle distinct, mais une configuration : utilisez &lt;code&gt;gpt-5.5&lt;/code&gt; avec &lt;code&gt;reasoning.effort: "high"&lt;/code&gt; ou &lt;code&gt;"xhigh"&lt;/code&gt; + un &lt;code&gt;max_output_tokens&lt;/code&gt; élevé. L’UI ChatGPT expose un switch ; en API, c’est vous qui le gérez.&lt;/p&gt;

&lt;p&gt;Bonnes pratiques :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Par défaut, utilisez &lt;code&gt;medium&lt;/code&gt;&lt;/strong&gt; : couvre la plupart des tâches agentiques, débogage multi-fichiers, génération de docs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Réservez &lt;code&gt;high&lt;/code&gt; et &lt;code&gt;xhigh&lt;/code&gt;&lt;/strong&gt; pour recherche, révisions critiques, longues chaînes d’outils. Prévoyez de 3 à 8x plus de tokens, et surveillez le temps de réponse.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pour des tâches complexes (&lt;code&gt;computer_use&lt;/code&gt;, longues chaînes web), l’effort "Réflexion" réduit les hallucinations et améliore la fiabilité, comme documenté par OpenAI dans leur &lt;a href="https://openai.com/index/introducing-gpt-5-5/" rel="noopener noreferrer"&gt;billet de lancement&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sortie structurée
&lt;/h2&gt;

&lt;p&gt;Le JSON strict est par défaut sur GPT-5.5. Passez un schéma pour garantir la structure :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;responses&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-5.5&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Extract the title, speaker, and start time from this transcript chunk.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;response_format&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;json_schema&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;json_schema&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;name&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;session_extract&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;strict&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;schema&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;object&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;required&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;title&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;speaker&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;start_time&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
                &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;properties&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;title&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;speaker&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;start_time&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;string&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;format&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;date-time&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
                &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pour toute pipeline downstream, définissez toujours un schéma pour éviter les boucles de retry sur JSON mal formé.&lt;/p&gt;

&lt;h2&gt;
  
  
  Utilisation d’outils et agents
&lt;/h2&gt;

&lt;p&gt;L’API Responses expose 5 types d’outils :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;web_search&lt;/code&gt; — recherche temps réel, avec citations.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;file_search&lt;/code&gt; — recherche vectorielle sur fichiers uploadés.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;code_interpreter&lt;/code&gt; — exécution Python sandboxée.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;computer_use&lt;/code&gt; — souris, clavier et navigateur via Operator.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;function&lt;/code&gt; — rappels custom.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;L’avantage de GPT-5.5 : meilleure aptitude à chaîner et exploiter ces outils sans supervision. Lors des tests (&lt;a href="https://the-decoder.com/openai-unveils-gpt-5-5-claims-a-new-class-of-intelligence-at-double-the-api-price/" rel="noopener noreferrer"&gt;The Decoder&lt;/a&gt;), GPT-5.5 a complété 11% de chaînes multi-étapes de plus que la 5.4, à prompt égal.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gestion des erreurs et réessais
&lt;/h2&gt;

&lt;p&gt;Quatre erreurs à traiter explicitement :&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Code&lt;/th&gt;
&lt;th&gt;Signification&lt;/th&gt;
&lt;th&gt;Réessayer ?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;429 rate_limit_exceeded&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Limite minute/jour atteinte&lt;/td&gt;
&lt;td&gt;Oui, backoff exponentiel + jitter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;400 context_length_exceeded&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Entrée + sortie + raisonnement &amp;gt; 1M tokens&lt;/td&gt;
&lt;td&gt;Non, raccourcir l’entrée&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;500 server_error&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Erreur transitoire OpenAI&lt;/td&gt;
&lt;td&gt;Oui, jusqu’à 3 tentatives&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;403 policy_violation&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Rejet pour violation de politique&lt;/td&gt;
&lt;td&gt;Non, réécrire le prompt&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Les tokens de raisonnement comptent dans la fenêtre contextuelle. Un appel &lt;code&gt;reasoning.effort: "xhigh"&lt;/code&gt; sur 900K tokens d’entrée dépassera 1M avec peu de sortie.&lt;/p&gt;

&lt;h2&gt;
  
  
  Flux de travail de test avec Apidog
&lt;/h2&gt;

&lt;p&gt;Tester GPT-5.5 coûte cher : évitez de brûler 20 prompts pour un bug de schéma. Voici le workflow le plus efficient :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Construisez la requête une fois dans &lt;a href="https://apidog.com?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;Apidog&lt;/a&gt;, enregistrez-la dans une collection, taggez l’environnement (dev, staging, prod).&lt;/li&gt;
&lt;li&gt;Utilisez le mock server intégré pour rejouer la dernière réponse réelle pendant vos itérations backend/front.&lt;/li&gt;
&lt;li&gt;Passez en clé live uniquement lorsque le schéma est validé.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Apidog propose aussi une intégration Claude Code et Cursor : la même collection est accessible depuis votre éditeur. Lisez le &lt;a href="http://apidog.com/blog/how-to-use-apidog-inside-vscode?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide Apidog dans VS Code&lt;/a&gt; et la &lt;a href="http://apidog.com/blog/api-testing-without-postman-2026?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;comparaison Apidog vs. Postman&lt;/a&gt; pour la config complète.&lt;/p&gt;

&lt;h2&gt;
  
  
  Appeler GPT-5.5 avant que l’API ne soit générale
&lt;/h2&gt;

&lt;p&gt;Tant que l’API Responses est en déploiement progressif, le chemin pour tester GPT-5.5 est via Codex. Le &lt;a href="http://apidog.com/blog/how-to-use-gpt-5-5-free-codex?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;guide Codex gratuit&lt;/a&gt; explique comment installer la CLI, s’authentifier avec ChatGPT et sélectionner le modèle.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Existe-t-il un &lt;code&gt;gpt-5.5-mini&lt;/code&gt; ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non, pas au lancement. OpenAI maintient &lt;code&gt;gpt-5.4-mini&lt;/code&gt; comme version optimisée coût.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quelle est la fenêtre contextuelle ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
1M tokens (API), 400K (CLI Codex), tokens de raisonnement inclus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dois-je réécrire mon code GPT-5.4 ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Non. Remplacez l’ID de modèle, augmentez &lt;code&gt;max_output_tokens&lt;/code&gt; pour la réflexion, ajustez &lt;code&gt;reasoning.effort&lt;/code&gt; selon la charge.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comment réduire les coûts ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Trois leviers : Batch (50% de réduction), Flex (50% avec une file plus lente), schémas stricts pour éviter les retries. Le calcul détaillé est disponible dans la &lt;a href="http://apidog.com/blog/gpt-5-5-pricing?utm_source=dev.to&amp;amp;utm_medium=wanda&amp;amp;utm_content=n8n-post-automation"&gt;répartition des prix GPT-5.5&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Où surveiller l’annonce de disponibilité générale de l’API ?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Suivez la &lt;a href="https://community.openai.com/" rel="noopener noreferrer"&gt;communauté développeurs OpenAI&lt;/a&gt; et la &lt;a href="https://openai.com/api/pricing/" rel="noopener noreferrer"&gt;page de tarification OpenAI&lt;/a&gt;.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
    </item>
  </channel>
</rss>
