Pour les tests initiaux, vous pouvez coder en dur une clé API, mais cela ne doit être que temporaire, car ce n'est pas sécurisé. Vous trouverez des exemples d'intégration en dur de la clé API dans la section Fournir explicitement la clé API.
Définir la clé API comme variable d'environnement
Si vous définissez la variable d'environnement GEMINI_API_KEY ou GOOGLE_API_KEY, la clé API sera automatiquement récupérée par le client lors de l'utilisation de l'une des bibliothèques de l'API Gemini. Nous vous recommandons de ne définir qu'une seule de ces variables, mais si les deux sont définies, GOOGLE_API_KEY est prioritaire.
Si vous utilisez l'API REST ou JavaScript sur le navigateur, vous devrez fournir la clé API de manière explicite.
Voici comment définir votre clé API localement en tant que variable d'environnement GEMINI_API_KEY avec différents systèmes d'exploitation.
Linux/macOS : Bash
Bash est une configuration de terminal Linux et macOS courante. Pour vérifier si vous disposez d'un fichier de configuration, exécutez la commande suivante :
~/.bashrc
Si la réponse est "Aucun fichier ou répertoire de ce type", vous devrez créer ce fichier et l'ouvrir en exécutant les commandes suivantes, ou utiliser zsh :
touch~/.bashrcopen~/.bashrc
Ensuite, vous devez définir votre clé API en ajoutant la commande d'exportation suivante :
exportGEMINI_API_KEY=<YOUR_API_KEY_HERE>
Après avoir enregistré le fichier, appliquez les modifications en exécutant la commande suivante :
source~/.bashrc
macOS – Zsh
Zsh est une configuration de terminal Linux et macOS courante. Pour vérifier si vous disposez d'un fichier de configuration, exécutez la commande suivante :
~/.zshrc
Si la réponse est "Aucun fichier ou répertoire de ce type", vous devrez créer ce fichier et l'ouvrir en exécutant les commandes suivantes, ou utiliser bash :
touch~/.zshrcopen~/.zshrc
Ensuite, vous devez définir votre clé API en ajoutant la commande d'exportation suivante :
exportGEMINI_API_KEY=<YOUR_API_KEY_HERE>
Après avoir enregistré le fichier, appliquez les modifications en exécutant la commande suivante :
source~/.zshrc
Windows
Recherchez "Variables d'environnement" dans les paramètres système.
Modifiez les "Variables utilisateur" (pour l'utilisateur actuel) ou les "Variables système" (pour tous les utilisateurs, à utiliser avec précaution).
Créez la variable et ajoutez export GEMINI_API_KEY=your_key_here.
Appliquer les modifications
Fournir explicitement la clé API
Dans certains cas, vous pouvez fournir explicitement une clé API. Exemple :
Vous effectuez un appel d'API simple et préférez coder en dur la clé API.
Vous souhaitez un contrôle explicite sans avoir à vous fier à la découverte automatique des variables d'environnement par les bibliothèques de l'API Gemini.
Vous utilisez un environnement dans lequel les variables d'environnement ne sont pas prises en charge (par exemple, le Web) ou vous effectuez des appels REST.
Vous trouverez ci-dessous des exemples de la façon dont vous pouvez fournir une clé API de manière explicite :
Python
fromgoogleimportgenaiclient=genai.Client(api_key="YOUR_API_KEY")response=client.models.generate_content(model="gemini-2.5-flash",contents="Explain how AI works in a few words")print(response.text)
JavaScript
import{GoogleGenAI}from"@google/genai";constai=newGoogleGenAI({apiKey:"YOUR_API_KEY"});asyncfunctionmain(){constresponse=awaitai.models.generateContent({model:"gemini-2.5-flash",contents:"Explain how AI works in a few words",});console.log(response.text);}main();
Go
packagemainimport("context""fmt""log""google.golang.org/genai")funcmain(){ctx:=context.Background()client,err:=genai.NewClient(ctx,&genai.ClientConfig{APIKey:"YOUR_API_KEY",Backend:genai.BackendGeminiAPI,})iferr!=nil{log.Fatal(err)}result,err:=client.Models.GenerateContent(ctx,"gemini-2.5-flash",genai.Text("Explain how AI works in a few words"),nil,)iferr!=nil{log.Fatal(err)}fmt.Println(result.Text())}
Java
packagecom.example;importcom.google.genai.Client;importcom.google.genai.types.GenerateContentResponse;publicclassGenerateTextFromTextInput{publicstaticvoidmain(String[]args){Clientclient=Client.builder().apiKey("YOUR_API_KEY").build();GenerateContentResponseresponse=client.models.generateContent("gemini-2.5-flash","Explain how AI works in a few words",null);System.out.println(response.text());}}
REST
curl"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=$YOUR_API_KEY"\-H'Content-Type: application/json'\-XPOST\-d'{ "contents": [ { "parts": [ { "text": "Explain how AI works in a few words" } ] } ] }'
Sécuriser votre clé API
Traitez votre clé API Gemini comme un mot de passe. Si votre compte est piraté, d'autres personnes peuvent utiliser le quota de votre projet, générer des frais (si la facturation est activée) et accéder à vos données privées, comme vos fichiers.
Règles de sécurité critiques
N'effectuez jamais de commit de clés API vers le contrôle de source. Ne vérifiez pas votre clé API dans les systèmes de contrôle des versions tels que Git.
N'exposez jamais les clés API côté client. N'utilisez pas votre clé API directement dans les applications Web ou mobiles en production. Les clés dans le code côté client (y compris nos bibliothèques JavaScript/TypeScript et les appels REST) peuvent être extraites.
Bonnes pratiques
Utiliser des appels côté serveur avec des clés API : le moyen le plus sûr d'utiliser votre clé API est d'appeler l'API Gemini à partir d'une application côté serveur où la clé peut rester confidentielle.
Utilisez des jetons éphémères pour l'accès côté client (API Live uniquement) : pour un accès direct côté client à l'API Live, vous pouvez utiliser des jetons éphémères. Ils présentent moins de risques pour la sécurité et peuvent être utilisés en production. Pour en savoir plus, consultez le guide sur les jetons éphémères.
Envisagez d'ajouter des restrictions à votre clé : vous pouvez limiter les autorisations d'une clé en ajoutant des restrictions de clé API.
Cela minimise les dommages potentiels si la clé est divulguée.
Pour connaître les bonnes pratiques générales, vous pouvez également consulter cet article d'aide.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/22 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/08/22 (UTC)."],[],[],null,["# Using Gemini API keys\n\nTo use the Gemini API, you need an API key. You can create a key for free with a\nfew clicks in [Google AI Studio](https://aistudio.google.com/app/apikey).\n\nOnce you have an API key, you have the following options to connect to the\nGemini API:\n\n- [Setting your API key as an environment variable](#set-api-env-var)\n- [Providing your API key explicitly](#provide-api-key-explicitly)\n\nFor initial testing, you can hard code an API key, but this should only be\ntemporary since it's not secure. You can find examples for hard coding the API\nkey in [Providing API key explicitly](#provide-api-key-explicitly) section.\n\nSetting API key as environment variable\n---------------------------------------\n\nIf you set the environment variable `GEMINI_API_KEY` or `GOOGLE_API_KEY`, the\nAPI key will automatically be picked up by the client when using one of the\n[Gemini API libraries](/gemini-api/docs/libraries). It's recommended that you\nset only one of those variables, but if both are set, `GOOGLE_API_KEY` takes\nprecedence.\n\nIf you're using the REST API, or JavaScript on the browser, you will need to\nprovide the API key explicitly.\n\nHere is how you can set your API key locally as the environment variable\n`GEMINI_API_KEY` with different operating systems. \n\n### Linux/macOS - Bash\n\nBash is a common Linux and macOS terminal configuration. You can check if\nyou have a configuration file for it by running the following command: \n\n ~/.bashrc\n\nIf the response is \"No such file or directory\", you will need to create this\nfile and open it by running the following commands, or use `zsh`: \n\n touch ~/.bashrc\n open ~/.bashrc\n\nNext, you need to set your API key by adding the following export command: \n\n export GEMINI_API_KEY=\u003cYOUR_API_KEY_HERE\u003e\n\nAfter saving the file, apply the changes by running: \n\n source ~/.bashrc\n\n### macOS - Zsh\n\nZsh is a common Linux and macOS terminal configuration. You can check if\nyou have a configuration file for it by running the following command: \n\n ~/.zshrc\n\nIf the response is \"No such file or directory\", you will need to create this\nfile and open it by running the following commands, or use `bash`: \n\n touch ~/.zshrc\n open ~/.zshrc\n\nNext, you need to set your API key by adding the following export command: \n\n export GEMINI_API_KEY=\u003cYOUR_API_KEY_HERE\u003e\n\nAfter saving the file, apply the changes by running: \n\n source ~/.zshrc\n\n### Windows\n\n1. Search for \"Environment Variables\" in the system settings\n2. Edit either \"User variables\" (for current user) or \"System variables\" (for all users - use with caution).\n3. Create the variable and add `export GEMINI_API_KEY=your_key_here`\n4. Apply the changes\n\nProviding API key explicitly\n----------------------------\n\nIn some cases, you may want to explicitly provide an API key. For example:\n\n- You're doing a simple API call and prefer hard coding the API key.\n- You want explicit control without having to rely on automatic discovery of environment variables by the Gemini API libraries\n- You're using an environment where environment variables are not supported (e.g web) or you are making REST calls.\n\nBelow are examples for how you can provide an API key explicitly: \n\n### Python\n\n from google import genai\n\n client = genai.Client(api_key=\"\u003cvar translate=\"no\"\u003eYOUR_API_KEY\u003c/var\u003e\")\n\n response = client.models.generate_content(\n model=\"gemini-2.5-flash\", contents=\"Explain how AI works in a few words\"\n )\n print(response.text)\n\n### JavaScript\n\n import { GoogleGenAI } from \"@google/genai\";\n\n const ai = new GoogleGenAI({ apiKey: \"\u003cvar translate=\"no\"\u003eYOUR_API_KEY\u003c/var\u003e\" });\n\n async function main() {\n const response = await ai.models.generateContent({\n model: \"gemini-2.5-flash\",\n contents: \"Explain how AI works in a few words\",\n });\n console.log(response.text);\n }\n\n main();\n\n### Go\n\n package main\n\n import (\n \"context\"\n \"fmt\"\n \"log\"\n \"google.golang.org/genai\"\n )\n\n func main() {\n ctx := context.Background()\n client, err := genai.NewClient(ctx, &genai.ClientConfig{\n APIKey: \"\u003cvar translate=\"no\"\u003eYOUR_API_KEY\u003c/var\u003e\",\n Backend: genai.BackendGeminiAPI,\n })\n if err != nil {\n log.Fatal(err)\n }\n\n result, err := client.Models.GenerateContent(\n ctx,\n \"gemini-2.5-flash\",\n genai.Text(\"Explain how AI works in a few words\"),\n nil,\n )\n if err != nil {\n log.Fatal(err)\n }\n fmt.Println(result.Text())\n }\n\n### Java\n\n package com.example;\n\n import com.google.genai.Client;\n import com.google.genai.types.GenerateContentResponse;\n\n public class GenerateTextFromTextInput {\n public static void main(String[] args) {\n Client client = Client.builder().apiKey(\"\u003cvar translate=\"no\"\u003eYOUR_API_KEY\u003c/var\u003e\").build();\n\n GenerateContentResponse response =\n client.models.generateContent(\n \"gemini-2.5-flash\",\n \"Explain how AI works in a few words\",\n null);\n\n System.out.println(response.text());\n }\n }\n\n### REST\n\n curl \"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=$\u003cvar translate=\"no\"\u003eYOUR_API_KEY\u003c/var\u003e\" \\\n -H 'Content-Type: application/json' \\\n -X POST \\\n -d '{\n \"contents\": [\n {\n \"parts\": [\n {\n \"text\": \"Explain how AI works in a few words\"\n }\n ]\n }\n ]\n }'\n\nKeep your API key secure\n------------------------\n\nTreat your Gemini API key like a password. If compromised, others can use your\nproject's quota, incur charges (if billing is enabled), and access your\nprivate data, such as files.\n\n### Critical security rules\n\n- **Never commit API keys to source control.** Do not check your API key into version control systems like Git.\n\n- **Never expose API keys on the client-side.** Do not use your API key directly\n in web or mobile apps in production. Keys in client-side code\n (including our JavaScript/TypeScript libraries and REST calls) can be\n extracted.\n\n### Best practices\n\n- **Use server-side calls with API keys** The most secure way to use your API\n key is to call the Gemini API from a server-side application where the key\n can be kept confidential.\n\n- **Use ephemeral tokens for client-side access (Live API only):** For direct\n client-side access to the Live API, you can use ephemeral tokens. They come with\n lower security risks and can be suitable for production use. Review\n [ephemeral tokens](/gemini-api/docs/ephemeral-tokens) guide for more information.\n\n- **Consider adding restrictions to your key:** You can limit a key's permissions\n by adding [API key restrictions](https://cloud.google.com/api-keys/docs/add-restrictions-api-keys#add-api-restrictions).\n This minimizes the potential damage if the key is ever leaked.\n\nFor some general best practices, you can also review this\n[support article](https://support.google.com/googleapi/answer/6310037)."]]