Zur Verwendung der Gemini API benötigen Sie einen API-Schlüssel. Sie können kostenlos mit wenigen Klicks einen Schlüssel in Google AI Studio erstellen.
Sobald Sie einen API-Schlüssel haben, haben Sie die folgenden Möglichkeiten, eine Verbindung zur Gemini API herzustellen:
Für erste Tests können Sie einen API-Schlüssel fest codieren. Das sollte jedoch nur vorübergehend geschehen, da es nicht sicher ist. Beispiele für das Einbetten des API-Schlüssels in den Code finden Sie im Abschnitt API-Schlüssel explizit angeben.
API-Schlüssel als Umgebungsvariable festlegen
Wenn Sie die Umgebungsvariable GEMINI_API_KEY oder GOOGLE_API_KEY festlegen, wird der API-Schlüssel automatisch vom Client übernommen, wenn Sie eine der Gemini API-Bibliotheken verwenden. Es wird empfohlen, nur eine dieser Variablen festzulegen. Wenn beide festgelegt sind, hat GOOGLE_API_KEY Vorrang.
Wenn Sie die REST API oder JavaScript im Browser verwenden, müssen Sie den API-Schlüssel explizit angeben.
So legen Sie Ihren API-Schlüssel lokal als Umgebungsvariable GEMINI_API_KEY für verschiedene Betriebssysteme fest.
Linux/macOS – Bash
Bash ist eine gängige Linux- und macOS-Terminalkonfiguration. Mit dem folgenden Befehl können Sie prüfen, ob Sie eine Konfigurationsdatei dafür haben:
~/.bashrc
Wenn die Antwort „No such file or directory“ (Datei oder Verzeichnis nicht gefunden) lautet, müssen Sie diese Datei erstellen und öffnen, indem Sie die folgenden Befehle ausführen oder zsh verwenden:
touch~/.bashrcopen~/.bashrc
Als Nächstes müssen Sie Ihren API-Schlüssel festlegen, indem Sie den folgenden Exportbefehl hinzufügen:
exportGEMINI_API_KEY=<YOUR_API_KEY_HERE>
Nachdem Sie die Datei gespeichert haben, wenden Sie die Änderungen mit dem folgenden Befehl an:
source~/.bashrc
macOS – Zsh
Zsh ist eine gängige Terminalkonfiguration für Linux und macOS. Mit dem folgenden Befehl können Sie prüfen, ob Sie eine Konfigurationsdatei dafür haben:
~/.zshrc
Wenn die Antwort „No such file or directory“ (Datei oder Verzeichnis nicht gefunden) lautet, müssen Sie diese Datei erstellen und öffnen, indem Sie die folgenden Befehle ausführen oder bash verwenden:
touch~/.zshrcopen~/.zshrc
Als Nächstes müssen Sie Ihren API-Schlüssel festlegen, indem Sie den folgenden Exportbefehl hinzufügen:
exportGEMINI_API_KEY=<YOUR_API_KEY_HERE>
Nachdem Sie die Datei gespeichert haben, wenden Sie die Änderungen mit dem folgenden Befehl an:
source~/.zshrc
Windows
Suchen Sie in den Systemeinstellungen nach „Umgebungsvariablen“.
Bearbeiten Sie entweder „Nutzervariablen“ (für den aktuellen Nutzer) oder „Systemvariablen“ (für alle Nutzer – mit Vorsicht verwenden).
Variable erstellen und export GEMINI_API_KEY=your_key_here hinzufügen
Änderungen anwenden
API-Schlüssel explizit angeben
In einigen Fällen kann es sinnvoll sein, einen API-Schlüssel explizit anzugeben. Beispiel:
Sie führen einen einfachen API-Aufruf aus und möchten den API-Schlüssel lieber fest codieren.
Sie möchten explizite Kontrolle, ohne auf die automatische Erkennung von Umgebungsvariablen durch die Gemini API-Bibliotheken angewiesen zu sein.
Sie verwenden eine Umgebung, in der Umgebungsvariablen nicht unterstützt werden (z. B. Web), oder Sie führen REST-Aufrufe aus.
Im Folgenden finden Sie Beispiele dafür, wie Sie einen API-Schlüssel explizit angeben können:
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();
Ok
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" } ] } ] }'
API-Schlüssel sicher aufbewahren
Behandeln Sie Ihren Gemini API-Schlüssel wie ein Passwort. Wenn Ihr Projekt kompromittiert wird, können andere das Kontingent Ihres Projekts nutzen, Gebühren verursachen (wenn die Abrechnung aktiviert ist) und auf Ihre privaten Daten wie Dateien zugreifen.
Kritische Sicherheitsregeln
API-Schlüssel niemals in die Quellcodeverwaltung einchecken. Checken Sie Ihren API-Schlüssel nicht in Versionsverwaltungssysteme wie Git ein.
Geben Sie API-Schlüssel niemals clientseitig preis. Verwenden Sie Ihren API-Schlüssel nicht direkt in Web- oder mobilen Apps in der Produktion. Schlüssel in clientseitigem Code (einschließlich unserer JavaScript-/TypeScript-Bibliotheken und REST-Aufrufe) können extrahiert werden.
Best Practices
Serverseitige Aufrufe mit API-Schlüsseln verwenden: Die sicherste Methode, Ihren API-Schlüssel zu verwenden, besteht darin, die Gemini API über eine serverseitige Anwendung aufzurufen, in der der Schlüssel vertraulich behandelt werden kann.
Ephemere Tokens für den clientseitigen Zugriff verwenden (nur Live API): Für den direkten clientseitigen Zugriff auf die Live API können Sie ephemere Tokens verwenden. Sie bergen geringere Sicherheitsrisiken und können für die Produktion geeignet sein. Weitere Informationen finden Sie im Leitfaden zu ephemeren Tokens.
Einschränkungen für Ihren Schlüssel hinzufügen:Sie können die Berechtigungen eines Schlüssels einschränken, indem Sie API-Schlüsseleinschränkungen hinzufügen. So wird der potenzielle Schaden minimiert, falls der Schlüssel jemals offengelegt wird.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 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)."]]