generateContent och streamGenerateContent.
Skillnader jämfört med Chat Completions API
Gemini Generate Content API använder Googles officiella inbyggda begärandeformat (fältetcontents), i stället för det OpenAI-kompatibla formatet (fältet messages). Om du redan använder Google Gemini SDK eller är bekant med det officiella API-formatet kan du använda detta API direkt utan att ändra begärandeformatet.
Aktuellt stödomfång
Gränssnittet accepterar text-, bild-, video- och ljudindata (inlineData eller fileData), tankekonfiguration och deklarationer av anpassade funktioner. Det finns ännu ingen garanti för enhetlig tillgänglighet för inbyggda fält såsom ljudutdata, inbyggda verktyg och explicit kontextcache; utgå från den faktiska responsen för den specifika modellen.
När du använder fileData.fileUri för att skicka filer som ljud, säkerställ att filen kan nås direkt via HTTPS, inte är beroende av inloggningsstatus och att den signerade länkens giltighetstid täcker hela tiden för begärandebearbetningen. Icke-strömmande ljudanalys returnerar resultat först efter att modellen har slutfört bearbetningen, vilket kan ta över 90 sekunder; klienten bör ställa in en tillräckligt lång total timeout utifrån filstorlek och verksamhetsscenario för att undvika att anslutningen bryts medan servern fortfarande bearbetar.
Ansökningsprocess
Innan du använder Gemini Generate Content API, besök först sidan Gemini Generate Content API och klicka på knappen “Hämta” för att få de autentiseringsuppgifter som krävs för begäran. Om du ännu inte har loggat in eller registrerat dig omdirigeras du automatiskt till inloggningssidan. Den första ansökan har en kostnadsfri kvot.Grundläggande användning
Non-Streaming (icke-strömmande)
Skicka en POST-begäran till/v1beta/models/{model}:generateContent:
Tips: flash i seriengemini-3.xär en tänkande modell och förbrukar först reasoning tokens; angegenerationConfig.maxOutputTokenstill över 512, annars kan endast tomt innehåll returneras.
usageMetadata debiteras enligt den inbyggda Gemini-semantiken:
promptTokenCountinnehållercachedContentTokenCount; delar som träffar cachen beräknas enligt priset för cacheläsning och räknas inte igen som vanlig indata.promptTokensDetailsochcacheTokensDetailsnormaliseras tilltext_tokens,image_tokens,video_tokens,audio_tokensoch motsvarandecached_*-detaljer underusage.prompt_tokens_details. Dessa värden ingår respektive iprompt_tokensochcached_tokens; olika modaliteter beräknas endast om enligt sina egna priser och debiteras inte dubbelt.- Både
candidatesTokenCountochthoughtsTokenCountberäknas enligt priset för utdata-token. toolUsePromptTokenCountär en separat token för verktygsindata och beräknas enligt priset för indata-token.
usage-objekt; läs kostnaden för detta anrop från usage.cost enhetligt mellan modellprotokoll. cost är en valfri kostnadsförhandsvisning; när prisförhandsvisningen tillfälligt inte är tillgänglig returneras modellsvaret fortfarande normalt, men fältet kan saknas. Den slutliga fakturan baseras på användningsregistreringen.
Streaming (strömmande)
Skicka en POST-begäran till/v1beta/models/{model}:streamGenerateContent?alt=sse:
usageMetadata och normaliserad usage, och kostnaden finns fortfarande i usage.cost:
data: [DONE]. Om den slutliga prisförhandsvisningen tillfälligt inte är tillgänglig returneras fortfarande tokenanvändningen i usage, men cost utelämnas.
Modeller som stöds
Avancerade funktioner
Systeminstruktioner
Genereringskonfiguration
JSON-läge
Tankeläge (Thinking)
Modeller som stöder tankefunktionen (såsom gemini-2.5-flash och gemini-2.5-pro) kan aktivera tankeläget:Funktionsanrop
Fleromgångsdialog
Bildförståelse
Säkerhetsinställningar
Innehållsfiltrering kan styras viasafetySettings:

