Per i test iniziali, puoi codificare una chiave API, ma questa operazione deve essere temporanea perché non è sicura. Puoi trovare esempi di codifica hardcoded della chiave API nella sezione Fornire la chiave API in modo esplicito.
Impostazione della chiave API come variabile di ambiente
Se imposti la variabile di ambiente GEMINI_API_KEY o GOOGLE_API_KEY, la chiave API verrà rilevata automaticamente dal client quando utilizzi una delle librerie dell'API Gemini. Ti consigliamo di impostare solo una di queste variabili, ma se vengono impostate entrambe, GOOGLE_API_KEY ha la precedenza.
Se utilizzi l'API REST o JavaScript sul browser, devi fornire la chiave API in modo esplicito.
Ecco come impostare la chiave API localmente come variabile di ambiente GEMINI_API_KEY con sistemi operativi diversi.
Linux/macOS - Bash
Bash è una configurazione comune del terminale Linux e macOS. Puoi verificare se hai un file di configurazione eseguendo il seguente comando:
~/.bashrc
Se la risposta è "No such file or directory", devi creare questo file e aprirlo eseguendo i seguenti comandi o utilizzare zsh:
touch~/.bashrcopen~/.bashrc
Successivamente, devi impostare la chiave API aggiungendo il seguente comando di esportazione:
exportGEMINI_API_KEY=<YOUR_API_KEY_HERE>
Dopo aver salvato il file, applica le modifiche eseguendo:
source~/.bashrc
macOS - Zsh
Zsh è una configurazione comune del terminale Linux e macOS. Puoi verificare se hai un file di configurazione eseguendo il seguente comando:
~/.zshrc
Se la risposta è "No such file or directory", devi creare questo file e aprirlo eseguendo i seguenti comandi o utilizzare bash:
touch~/.zshrcopen~/.zshrc
Successivamente, devi impostare la chiave API aggiungendo il seguente comando di esportazione:
exportGEMINI_API_KEY=<YOUR_API_KEY_HERE>
Dopo aver salvato il file, applica le modifiche eseguendo:
source~/.zshrc
Windows
Cerca "Variabili di ambiente" nelle impostazioni di sistema
Modifica "Variabili utente" (per l'utente corrente) o "Variabili di sistema" (per tutti gli utenti, da utilizzare con cautela).
Crea la variabile e aggiungi export GEMINI_API_KEY=your_key_here
Applica le modifiche
Fornire la chiave API in modo esplicito
In alcuni casi, potresti voler fornire esplicitamente una chiave API. Ad esempio:
Stai effettuando una semplice chiamata API e preferisci codificare la chiave API.
Vuoi un controllo esplicito senza dover fare affidamento sul rilevamento automatico delle variabili di ambiente da parte delle librerie dell'API Gemini
Stai utilizzando un ambiente in cui le variabili di ambiente non sono supportate (ad es.web) o stai effettuando chiamate REST.
Di seguito sono riportati alcuni esempi di come puoi fornire una chiave API in modo esplicito:
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();
Vai
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" } ] } ] }'
Proteggere la chiave API
Tratta la chiave API Gemini come una password. Se vengono compromesse, altre persone possono utilizzare la quota del tuo progetto, sostenere addebiti (se la fatturazione è abilitata) e accedere ai tuoi dati privati, ad esempio i file.
Regole di sicurezza critiche
Non eseguire mai il commit delle chiavi API nel controllo del codice sorgente. Non archiviare la chiave API in sistemi di controllo della versione come Git.
Non esporre mai le chiavi API lato client. Non utilizzare la chiave API direttamente nelle app web o mobile in produzione. Le chiavi nel codice lato client (incluse le nostre librerie JavaScript/TypeScript e le chiamate REST) possono essere estratte.
Best practice
Utilizza chiamate lato server con chiavi API: il modo più sicuro per utilizzare la chiave API è chiamare l'API Gemini da un'applicazione lato server in cui la chiave può essere mantenuta riservata.
Utilizzare token effimeri per l'accesso lato client (solo API Live): per l'accesso diretto lato client all'API Live, puoi utilizzare token effimeri. Presentano rischi per la sicurezza inferiori e possono essere adatti all'uso in produzione. Per saperne di più, consulta la guida sui token effimeri.
Valuta la possibilità di aggiungere limitazioni alla chiave:puoi limitare le autorizzazioni di una chiave aggiungendo limitazioni relative alle chiavi API. Ciò riduce al minimo i potenziali danni in caso di perdita della chiave.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Mancano le informazioni di cui ho bisogno","missingTheInformationINeed","thumb-down"],["Troppo complicato/troppi passaggi","tooComplicatedTooManySteps","thumb-down"],["Obsoleti","outOfDate","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Problema relativo a esempi/codice","samplesCodeIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-08-22 UTC."],[],[],null,["To 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\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\nLinux/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\nmacOS - 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\nWindows\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\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\nPython \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\nJavaScript \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\nGo \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\nJava \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\nREST \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\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\nCritical 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\nBest 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)."]]