Google a lancé Gemini 3.7 Flash le 13 août 2026, trois semaines après 3.6 Flash, et le qualifie de « notre modèle polyvalent le plus intelligent ». Pour les développeurs, la note de codage agentique a fortement augmenté (DeepSWE v1.1 est passée de 49,0 % à 65,3 %), le prix de lancement est la moitié de celui de 3.6 Flash, et la surface de l'API est inchangée. Si vous utilisez déjà Gemini, il suffit de changer l'ID du modèle. Si ce n'est pas le cas, c'est le point d'entrée le moins cher que Google ait jamais proposé pour un modèle aussi performant.
Ce guide est un démarrage rapide pratique. Vous obtiendrez une clé API, ferez votre premier appel en cURL, le porterez vers Python et Node.js, diffuserez les réponses, réglerez generationConfig, et intégrerez le tout dans Apidog afin de pouvoir itérer sur les invites sans gaspiller de jetons dans une boucle de code. Les spécifications de l'annonce officielle : contexte de 1 million de jetons, sortie de 64 000 jetons, entrée multimodale, appel de fonctions, recherche comme outil et utilisation informatique.
Si vous avez développé avec la génération précédente, la forme de la requête est reprise de notre guide de l'API Gemini 3 Flash Preview ; cet article couvre toutes les nouveautés du flux de travail 3.7.
TL;DR
- L'ID du modèle est
gemini-3.7-flash. Point d'accès :POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContentavec l'en-têtex-goog-api-key: <KEY>. - Le prix de lancement est de 0,75 $ par million de jetons d'entrée et de 3,75 $ par million de jetons de sortie jusqu'au 31 décembre 2026. À partir du 1er janvier 2027, il doublera pour atteindre 1,50 $ et 7,50 $.
- Spécifications : Contexte d'entrée de 1 million de jetons, limite de sortie de 64 000 jetons. L'entrée accepte le texte, l'image, la vidéo, l'audio et le PDF. La sortie est du texte.
- Écarts de référence par rapport à 3.6 Flash : DeepSWE 49,0 % à 65,3 %, FrontierCode 34,4 % à 43,6 %, AutomationBench 17,0 % à 30,4 %, WebDev Arena Elo 1538 à 1588.
- Le streaming utilise
:streamGenerateContent?alt=sse. Le corps de la requête conserve le schémacontentsetgenerationConfigde Google. - Testez le point d'accès dans Apidog avant d'écrire du code d'application : importez la spécification, stockez la clé comme variable d'environnement et observez le rendu en direct des fragments SSE.
À quoi sert Gemini 3.7 Flash
Les modèles Flash échangent un peu d'intelligence de pointe contre de la vitesse et un prix abordable, et la version 3.7 réduit cet échange plus que toute version précédente. Les écarts de référence par rapport à 3.6 Flash sont exceptionnellement importants pour un intervalle de trois semaines : DeepSWE v1.1 est passé de 49,0 % à 65,3 %, FrontierCode 1.1 Main de 34,4 % à 43,6 %, et AutomationBench de 17,0 % à 30,4 %. L'Elo de WebDev Arena a grimpé de 50 points, passant de 1538 à 1588.

Considérez ces chiffres comme un indicateur d'adéquation à la charge de travail. Optez pour 3.7 Flash lorsque :
- Vous exécutez des boucles d'agent. Le score AutomationBench a presque doublé, et Google affirme que le modèle « réfléchit plus assidûment sur la planification en plusieurs étapes et les appels d'outils ». Les pipelines d'agent avec de nombreux tours courts et gourmands en outils sont le cas d'utilisation cible.
- Vous générez ou déboguez du code. Google affirme que 3.7 est meilleur en débogage et plus capable de produire du code déployable du premier coup. Les gains de DeepSWE et FrontierCode le confirment.
- Vous traitez des documents. Le score GDP.pdf est passé de 22,0 % à 34,0 %, et le PDF est un type d'entrée de première classe. La récupération de contexte long est également performante : 97,0 % au test des 128 000 aiguilles.
- Vous avez besoin d'une entrée multimodale avec un budget limité. Le texte, l'image, la vidéo, l'audio et le PDF passent tous par le même tableau
contents.
Pour un aperçu complet des fonctionnalités, y compris le score Harvey LAB-AA de 90,7 % dans le domaine juridique et les mesures de protection CBRN et cyber actualisées, consultez les nouveautés de Gemini 3.7 Flash. Contexte à connaître : Gemini 3.5 Pro est toujours retardé, et Axios rapporte que Google déploie délibérément les mises à jour Flash avant son prochain modèle phare.
Obtenir une clé API
Deux chemins, et ils ne sont pas équivalents.
AI Studio (voie rapide). Ouvrez aistudio.google.com/apikey, cliquez sur Obtenir une clé API, choisissez un projet Google Cloud et copiez la chaîne. La clé fonctionne immédiatement avec generativelanguage.googleapis.com, et le niveau gratuit vous offre suffisamment de quota pour prototyper. Gemini 3.7 Flash est disponible dans plus de 160 pays.
Vertex AI (voie de production). Si votre infrastructure réside sur GCP, utilisez Vertex. L'authentification passe d'une clé API à OAuth (comptes de service ou jetons de courte durée), les appels transitent par aiplatform.googleapis.com, et vous bénéficiez d'IAM, de journaux d'audit et de points d'accès régionaux. L'ID du modèle et le corps de la requête restent identiques ; seuls l'URL et le mécanisme d'authentification changent.
Prototypage sur AI Studio, puis passage à Vertex avant le trafic de production. Dans tous les cas, exportez la clé une fois :
export GEMINI_API_KEY="AIza..."
Ne jamais coder en dur la clé ni la passer comme paramètre de requête ?key= en production ; les chaînes de requête finissent dans les journaux du serveur.
Point d'accès et authentification
Le point d'accès de base pour un appel synchrone :
POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent
Le streaming échange le suffixe de la méthode et ajoute le drapeau SSE :
POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:streamGenerateContent?alt=sse
L'authentification est un seul en-tête : x-goog-api-key: $GEMINI_API_KEY. C'est toute la poignée de main. Pas de jetons d'authentification, pas de schéma de signature, pas de configuration de session.
Votre première requête en cURL
Voici un appel complet et fonctionnel :
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent" \
-H "x-goog-api-key: $GEMINI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"contents": [{
"role": "user",
"parts": [{ "text": "Review this SQL for injection risk: SELECT * FROM orders WHERE id = ${orderId}" }]
}],
"generationConfig": {
"temperature": 0.3,
"maxOutputTokens": 1024
}
}'
La réponse renvoie un tableau candidates. Chaque candidat contient un objet content avec des parts (texte, ou appels de fonctions si vous avez déclaré des outils) et une finishReason. Les nombres de jetons se trouvent dans usageMetadata au niveau supérieur ; surveillez ce bloc, car les jetons de sortie coûtent cinq fois plus cher que les jetons d'entrée au tarif de lancement.
Notez le schéma : Google utilise contents avec role et parts, et non la forme messages d'OpenAI. Assurez-vous d'abord de la bonne correspondance si vous migrez depuis un autre fournisseur.
Démarrage rapide Python
Installez ou mettez à niveau le SDK officiel :
pip install --upgrade google-generativeai
Un appel de base avec une instruction système :
import os
import google.generativeai as genai
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
model = genai.GenerativeModel(
model_name="gemini-3.7-flash",
system_instruction="You are a code reviewer. Flag issues as blocking or non-blocking.",
generation_config={
"temperature": 0.3,
"max_output_tokens": 2048,
},
)
response = model.generate_content(
"Review this Flask route for security issues:\n\n"
"@app.route('/user/<id>')\n"
"def get_user(id):\n"
" return db.execute(f'SELECT * FROM users WHERE id = {id}')"
)
print(response.text)
print("input tokens:", response.usage_metadata.prompt_token_count)
print("output tokens:", response.usage_metadata.candidates_token_count)
L'entrée multimodale se trouve dans le même tableau contents. Pour envoyer un PDF, téléchargez-le via l'API Files et référencez-le comme une partie :
invoice = genai.upload_file("q3-invoice.pdf")
response = model.generate_content([
invoice,
"Extract the invoice number, total, and due date as JSON.",
])
print(response.text)
Le gain de référence GDP.pdf (22,0 % à 34,0 %) apparaît précisément dans cette charge de travail : l'extraction structurée de documents réels désordonnés.
Démarrage rapide Node.js
Le SDK Node est @google/generative-ai et reproduit la forme Python :
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
const model = genAI.getGenerativeModel({
model: "gemini-3.7-flash",
generationConfig: {
temperature: 0.3,
maxOutputTokens: 2048,
responseMimeType: "application/json",
responseSchema: {
type: "object",
properties: {
severity: { type: "string", enum: ["blocking", "non-blocking"] },
issues: { type: "array", items: { type: "string" } },
},
required: ["severity", "issues"],
},
},
});
const result = await model.generateContent(
"Review this Express handler: app.get('/search', (req, res) => res.send(eval(req.query.q)))"
);
console.log(JSON.parse(result.response.text()));
La ligne responseSchema est plus importante qu'il n'y paraît. Elle force le candidat à être un objet parsable, de sorte que le code en aval ne touche jamais de texte libre. Associez-la à responseMimeType: "application/json" ou elle sera ignorée.
Diffusion en continu
Pour les interfaces utilisateur de chat et tout ce qui est destiné à l'utilisateur, utilisez la diffusion en continu. En Python, ajoutez stream=True :
stream = model.generate_content(
"Explain the N+1 query problem with a concrete ORM example.",
stream=True,
)
for chunk in stream:
if chunk.text:
print(chunk.text, end="", flush=True)
Via HTTP brut, appelez :streamGenerateContent?alt=sse et analysez les événements envoyés par le serveur. Chaque ligne data: contient une charge utile candidates partielle ; le dernier fragment inclut usageMetadata, de sorte que le décompte des jetons n'est précis qu'après la fermeture du flux.
Réglage de generationConfig
Les paramètres que vous utiliserez le plus souvent, par ordre d'impact approximatif :
| Paramètre | Type | Ce qu'il fait |
|---|---|---|
maxOutputTokens |
entier | Limite stricte de la sortie, jusqu'à la limite de 64k du modèle. Votre principal levier de coût. |
temperature |
nombre | 0 à 2. Utilisez 0,2 à 0,4 pour le code et l'extraction, 0,7+ pour le texte créatif. |
responseMimeType |
chaîne | Définissez application/json pour forcer la sortie JSON. |
responseSchema |
objet | Impore une forme stricte lorsqu'il est associé au type MIME JSON. |
topP |
nombre | Seuil d'échantillonnage de noyau. Laissez par défaut, sauf si vous réglez délibérément. |
stopSequences |
tableau | Chaînes qui arrêtent la génération prématurément. Utile pour l'analyse basée sur des délimiteurs. |
Les jetons de sortie coûtent 3,75 $ par million au tarif de lancement et 7,50 $ à partir de janvier 2027, donc limitez la sortie à ce que votre cas d'utilisation nécessite, et non au plafond de 64k. Le calcul complet des jetons, avec des exemples détaillés par charge de travail, se trouve dans notre répartition des prix de Gemini 3.7 Flash.
Au-delà de generationConfig, le corps de la requête accepte également les tools (déclarations de fonctions, recherche en tant qu'outil, utilisation informatique) et toolConfig pour forcer les appels d'outils. L'utilisation des outils est le domaine où 3.7 Flash s'est le plus amélioré, et cela mérite un guide dédié : consultez le tutoriel d'appel de fonctions Gemini 3.7 Flash pour les déclarations, les appels parallèles et le modèle de boucle de réponse.
Testez le point d'accès dans Apidog avant d'écrire du code d'application
L'itération des invites à l'intérieur d'un script Python est lente et coûteuse : éditer, réexécuter, faire défiler, répéter, et chaque cycle facture des jetons. La boucle la plus rapide consiste à verrouiller d'abord la forme de la requête dans un client API, puis à la porter vers le code une fois que les réponses sont correctes.
Apidog gère nativement le schéma de requête Gemini. La configuration :
- Créez un projet et importez la spécification OpenAPI de l'API Generative Language depuis la documentation de l'API de Google. La collection arrive pré-nommée, donc
generateContentest à une recherche. - Ajoutez une variable d'environnement nommée
GEMINI_API_KEYet liez-la à l'en-têtex-goog-api-keyau niveau de l'environnement. Chaque requête l'hérite, et la clé n'apparaît jamais dans un corps de requête enregistré. - Stockez l'ID du modèle comme variable définie sur
gemini-3.7-flash. Lorsque vous souhaitez faire un test A/B avecgemini-3.6-flash, vous modifiez une seule variable au lieu d'éditer les URL sur une douzaine de requêtes enregistrées. - Construisez le tableau
contentsdans l'éditeur JSON visuel. Les parties imbriquées se rendent proprement, et la validation du schéma intercepte un corps malformé avant que vous ne dépensiez un seul jeton pour une erreur 400. - Appelez le point d'accès de streaming. Apidog affiche les fragments SSE en direct, vous observez donc la réponse s'assembler exactement comme votre SDK la verra, latence incluse.
- Enregistrez les bonnes réponses comme exemples. Les exécutions de tests ultérieures utiliseront le fixture au lieu de l'API en direct. C'est le plus grand économiseur de jetons de tout le flux de travail.
Une fois les requêtes enregistrées, enchaînez-les dans des scénarios de test avec des assertions sur finishReason, le schéma de réponse et les décomptes de jetons usageMetadata. Cela transforme un test de fumée manuel en une suite de régression que vous pouvez exécuter à chaque changement d'invite ; le même modèle utilisé par les équipes QA est couvert dans notre guide de test d'API pour les ingénieurs QA.
Gestion des erreurs et limites de débit
Les erreurs Gemini renvoient un objet error de niveau supérieur avec code, status et message. Ceux que vous rencontrerez :
| Code | Statut | Signification | Solution |
|---|---|---|---|
| 400 | INVALID_ARGUMENT |
Corps malformé, rôle incorrect, contents vide. |
Validez le corps dans Apidog avant d'envoyer. |
| 401 | UNAUTHENTICATED |
Clé manquante ou révoquée. | Réexportez GEMINI_API_KEY ; confirmez que la clé est active dans AI Studio. |
| 403 | PERMISSION_DENIED |
Le projet n'a pas d'accès ou de facturation. | Vérifiez les paramètres du projet et le statut de facturation. |
| 429 | RESOURCE_EXHAUSTED |
Limite de débit ou quota quotidien atteint. | Faites une pause avec une gigue, regroupez les requêtes ou passez à des niveaux supérieurs. |
| 500 | INTERNAL |
Erreur de serveur transitoire. | Réessayez avec une interruption exponentielle. |
| 503 | UNAVAILABLE |
Service surchargé. | Réessayez après quelques secondes ; sur Vertex, essayez une autre région. |
Trois habitudes maintiennent la production stable :
- Enveloppez chaque appel dans un helper de réessai qui gère les erreurs 429 et 5xx avec un backoff exponentiel avec gigue. Les SDK réessayent plusieurs fois par eux-mêmes, mais un wrapper léger vous offre une journalisation et un disjoncteur que vous contrôlez.
- N'inventez pas les chiffres de limite de débit. Les limites varient selon le niveau et changent avec le temps ; lisez les valeurs en direct sur la page des tarifs et limites de l'API Gemini et alertez à 80 % du quota.
- Épinglez l'ID du modèle derrière une variable d'environnement. Si un changement de comportement de 3.7 casse une invite, revenir à
gemini-3.6-flashdevient un changement de configuration plutôt qu'un déploiement.
FAQ
Gemini 3.7 Flash est-il gratuit ?
AI Studio propose un niveau gratuit avec un quota quotidien suffisant pour le prototypage, et le tarif de lancement payant est de 0,75 $ par million de jetons d'entrée jusqu'au 31 décembre 2026. Si vous souhaitez étendre davantage la voie sans coût, notre guide sur l'accès gratuit à l'API Gemini couvre les niveaux et leurs limites.
Quelle est la différence entre l'appeler via AI Studio et Vertex AI ?
Même modèle, même corps de requête, mais plomberie différente. AI Studio utilise une clé API avec generativelanguage.googleapis.com ; Vertex utilise OAuth avec aiplatform.googleapis.com et ajoute IAM, la journalisation d'audit et des points d'accès régionaux. Commencez sur AI Studio, passez à Vertex lorsque le trafic devient réel.
Puis-je envoyer des images, de l'audio et des PDF à Gemini 3.7 Flash ?
Oui. L'entrée est multimodale : le texte, l'image, la vidéo, l'audio et le PDF voyagent tous comme des parties dans le tableau contents, en ligne sous forme de base64 ou par référence via l'API Files. La sortie est du texte uniquement.
Quelle est la taille de la fenêtre de contexte et la limite de sortie ?
1 million de jetons en entrée, 64 000 jetons en sortie. Le score de récupération de 97,0 % sur le test des 128 000 aiguilles suggère que le rappel de contexte long est fiable bien au-delà de ce dont la plupart des applications ont besoin, mais le découpage des entrées longues permet toujours d'économiser de l'argent puisque chaque jeton d'entrée est facturé.
Dois-je passer de Gemini 3.6 Flash à la version supérieure ?
Pour les charges de travail d'agents et de codage, les écarts de référence sont suffisamment importants pour que la réponse soit généralement oui, et l'échange d'ID de modèle ne prend qu'une ligne. Les différences de comportement qui méritent un test de régression avant de basculer le trafic de production sont couvertes dans le guide de migration de 3.6 à 3.7 Flash.
Où 3.7 Flash s'intègre dans votre pile technologique
Gemini 3.7 Flash est la rare version où le prix a baissé tandis que la capacité a augmenté. Jusqu'à la fin de 2026, vous payez la moitié du tarif de lancement de 3.6 Flash pour un modèle qui obtient 16 points de plus sur DeepSWE et presque le double sur AutomationBench. La solution par défaut sensée : dirigez les boucles d'agents, les tâches de code et l'extraction de documents vers 3.7 Flash dès maintenant, gardez à l'esprit la période de tarif de lancement pour la planification budgétaire, et conservez un chemin de retour à 3.6 derrière une variable d'environnement.
Commencez par l'appel cURL ci-dessus, confirmez la forme de la réponse, puis déplacez la requête vers un client API avant d'écrire du code d'application. Téléchargez Apidog pour importer la spécification Gemini, lier votre clé une seule fois, et tester les requêtes synchrones, de streaming et d'appel d'outils depuis un seul espace de travail. Lorsque l'invite est correcte, le portage Python ou Node prend quelques minutes car vous savez déjà à quoi ressemble le trafic réseau.
