Comment utiliser l'API Gemini 3.7 Flash ?

Démarrage rapide pratique de l'API Gemini 3.7 Flash : obtenez une clé, appelez le point de terminaison avec cURL, Python et Node.js, diffusez les réponses et testez le tout dans Apidog.

Ashley Innocent

Ashley Innocent

14 August 2026

Comment utiliser l'API Gemini 3.7 Flash ?

Apidog pour les entreprises

Déploiement sur site

SSO & RBAC

Conforme SOC 2

Découvrir Apidog Enterprise

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.

bouton

TL;DR

À 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 :

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 :

  1. 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 generateContent est à une recherche.
  2. Ajoutez une variable d'environnement nommée GEMINI_API_KEY et liez-la à l'en-tête x-goog-api-key au niveau de l'environnement. Chaque requête l'hérite, et la clé n'apparaît jamais dans un corps de requête enregistré.
  3. Stockez l'ID du modèle comme variable définie sur gemini-3.7-flash. Lorsque vous souhaitez faire un test A/B avec gemini-3.6-flash, vous modifiez une seule variable au lieu d'éditer les URL sur une douzaine de requêtes enregistrées.
  4. Construisez le tableau contents dans 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.
  5. 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.
  6. 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 :

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.

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API