# Google Gemini

Ask Gemini for text or JSON about text, images, audio, documents and video; generate and edit images; generate videos; make embeddings; and manage files and file search stores.

## Connect Google Gemini

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `google gemini` and choose **Google Gemini**.
3. Fill in the fields. Each one says **Required** or **Optional**.
4. Press **Test and save**. GoRunner checks the connection before it saves anything.

The sheet asks for:

- **API Key · Required**: Your Gemini API key (AIza…). Sent in the x-goog-api-key header, never in a link.

Paste a Gemini API key (aistudio.google.com → Get API key → Create API key). The key’s Google Cloud project decides the rate limits and who is billed.

[Connections](https://docs.gorunner.io/build/connections) says how to sign in again, rename or delete it. In a product that embeds GoRunner, **Add connection** can be missing: then [your provider makes connections](https://docs.gorunner.io/embed/customer-connections) for you.

## Do things in Google Gemini

Add a **Google Gemini** step, choose a **Resource**, then an **Operation**. Choose a row to see its fields.

- [Text](https://docs.gorunner.io/apps/google-gemini#fields-f-text): Message a Model · Count Tokens
- [Image](https://docs.gorunner.io/apps/google-gemini#fields-f-image): Analyze Image · Generate an Image · Edit Image
- [Audio](https://docs.gorunner.io/apps/google-gemini#fields-f-audio): Analyze Audio · Transcribe a Recording
- [Document](https://docs.gorunner.io/apps/google-gemini#fields-f-document): Analyze Document
- [Video](https://docs.gorunner.io/apps/google-gemini#fields-f-video): Analyze Video · Generate a Video · Download Video
- [File](https://docs.gorunner.io/apps/google-gemini#fields-f-file): Upload Media File · Get File · List Files · Delete File
- [File Search](https://docs.gorunner.io/apps/google-gemini#fields-f-filesearch): Create File Search Store · Delete File Search Store · List File Search Stores · Upload to File Search Store
- [Embedding](https://docs.gorunner.io/apps/google-gemini#fields-f-embedding): Create
- [Model](https://docs.gorunner.io/apps/google-gemini#fields-f-model): List Models

To start a workflow from Google Gemini, use a [Schedule](https://docs.gorunner.io/apps/schedule), [Webhook](https://docs.gorunner.io/apps/webhook) or [Form](https://docs.gorunner.io/apps/form) trigger.

Later steps read a step’s output by its name: see [Use data from earlier steps](https://docs.gorunner.io/build/use-data-from-earlier-steps).

## Limits

- A reply from Google Gemini can be up to 16 MB (a file download can have its own limit). A larger one fails the step; it is never cut short.
- When Google Gemini says to slow down (429), the step waits as long as it asks, if the step’s time allows. Otherwise it fails and says when to try again.

Not in your list? See [When an app isn’t here](https://docs.gorunner.io/apps/when-an-app-isnt-here#q-not-in-list).

## For developers

In the API, which calls apps pieces, Google Gemini is `pieceId: "googlegemini"` with `actionId: "googlegemini"`, set by `resource` and an `operation_…` field, such as `operation_audio`. [Get an app](https://docs.gorunner.io/api/apps/get-app) returns every field.

It can change something outside the run (`writes_external`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### Google Gemini › Text

### Message a Model

- **Model · Optional**: The model that answers. Default: gemini-3.8-flash.
- **System Instruction · Optional**: Optional. How Gemini should behave: its role, tone, rules.
- **Prompt · Required**: What to ask or tell Gemini.
- **Files · Optional**: Attach one file per row, or switch the field to an expression to pass a whole list from an earlier step (such as {{steps.unzip.files}}). Optional. Images, audio, video, PDFs and text Gemini reads with the prompt; 100 MB in all.
- **File URIs · Optional**: Optional. URIs of files uploaded with File → Upload, or YouTube links, comma or line separated.
- **Google Search · Optional**: Let Gemini search Google and ground its answer in what it finds. Off by default.
- **Read Links · Optional**: Let Gemini read the web pages linked in the prompt. Off by default.
- **Code Execution · Optional**: Let Gemini write and run Python to work the answer out. Off by default.
- **File Search Stores · Optional**: Optional. File search stores (fileSearchStores/…) Gemini searches, comma separated.
- **Previous Interaction · Optional**: Optional. The id of an earlier interaction to continue from; it must have been stored.
- **Store Interaction · Optional**: Keep the interaction at Google so a later step can continue from it. Off by default.
- **Output Format · Optional**: Text, or JSON a later step can read field by field (parsed under json). Options: Text, JSON matching a schema. Default: Text.
- **JSON Schema · Required**: The shape of the answer, as JSON Schema, such as {"type":"object","properties":{"summary":{"type":"string"}},"required":["summary"]}. Shows when **Output Format** is **JSON matching a schema**.
- **Max Output Tokens · Optional**: Optional. The most tokens the answer may use. Empty is the model's own limit.
- **Thinking Level · Optional**: How much Gemini reasons before answering: less is faster and cheaper. Options: Model default, Minimal, Low, Medium, High. Default: Model default.

### Count Tokens

- **Model · Optional**: The model that answers. Default: gemini-3.8-flash.
- **Prompt · Required**: What to ask or tell Gemini.

### Google Gemini › Image

### Analyze Image

- **Model · Optional**: The model that reads the images. Default: gemini-3.8-flash.
- **Prompt · Optional**: What to ask about the images. Default: What's in this image?
- **Input From · Optional**: Files from an earlier step, or links: files uploaded with File → Upload. Options: Files, Links. Default: Files.
- **Images · Required**: Attach one file per row, or switch the field to an expression to pass a whole list from an earlier step (such as {{steps.unzip.files}}). PNG, JPEG, WEBP, HEIC or HEIF. 100 MB in all. Shows when **Input From** is **Files**.
- **Links · Required**: File URIs from File → Upload, comma or line separated. Shows when **Input From** is **Links**.
- **Output Format · Optional**: Text, or JSON a later step can read field by field (parsed under json). Options: Text, JSON matching a schema. Default: Text.
- **JSON Schema · Required**: The shape of the answer, as JSON Schema, such as {"type":"object","properties":{"summary":{"type":"string"}},"required":["summary"]}. Shows when **Output Format** is **JSON matching a schema**.
- **Max Output Tokens · Optional**: Optional. The most tokens the answer may use. Empty is the model's own limit.
- **Thinking Level · Optional**: How much Gemini reasons before answering: less is faster and cheaper. Options: Model default, Minimal, Low, Medium, High. Default: Model default.

### Generate an Image

- **Model · Optional**: The image model (Nano Banana). Default: gemini-nano-banana-2.1.
- **Prompt · Required**: What the image should show, or what to change.
- **Aspect Ratio · Optional**: The image's shape. Options: Model default (square, or the input image's), 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9. Default: Model default (square, or the input image's).
- **Size · Optional**: Larger images take longer and cost more; 4K images may not fit a step's output. Options: Model default, 512 px, 1K, 2K, 4K. Default: Model default.

### Edit Image

- **Model · Optional**: The image model (Nano Banana). Default: gemini-nano-banana-2.1.
- **Prompt · Required**: What the image should show, or what to change.
- **Images to Edit · Required**: Attach one file per row, or switch the field to an expression to pass a whole list from an earlier step (such as {{steps.unzip.files}}). PNG, JPEG or WEBP.
- **Aspect Ratio · Optional**: The image's shape. Options: Model default (square, or the input image's), 1:1, 3:2, 2:3, 4:3, 3:4, 16:9, 9:16, 21:9. Default: Model default (square, or the input image's).
- **Size · Optional**: Larger images take longer and cost more; 4K images may not fit a step's output. Options: Model default, 512 px, 1K, 2K, 4K. Default: Model default.

### Google Gemini › Audio

### Analyze Audio

- **Model · Optional**: The model that reads the recordings. Default: gemini-3.8-flash.
- **Prompt · Optional**: What to ask about the recordings. Default: What is said in this recording?
- **Input From · Optional**: Files from an earlier step, or links: files uploaded with File → Upload. Options: Files, Links. Default: Files.
- **Recordings · Required**: Attach one file per row, or switch the field to an expression to pass a whole list from an earlier step (such as {{steps.unzip.files}}). WAV, MP3, AIFF, AAC, OGG or FLAC. 100 MB in all. Shows when **Input From** is **Files**.
- **Links · Required**: File URIs from File → Upload, comma or line separated. Shows when **Input From** is **Links**.
- **Output Format · Optional**: Text, or JSON a later step can read field by field (parsed under json). Options: Text, JSON matching a schema. Default: Text.
- **JSON Schema · Required**: The shape of the answer, as JSON Schema, such as {"type":"object","properties":{"summary":{"type":"string"}},"required":["summary"]}. Shows when **Output Format** is **JSON matching a schema**.
- **Max Output Tokens · Optional**: Optional. The most tokens the answer may use. Empty is the model's own limit.
- **Thinking Level · Optional**: How much Gemini reasons before answering: less is faster and cheaper. Options: Model default, Minimal, Low, Medium, High. Default: Model default.

### Transcribe a Recording

- **Model · Optional**: The model that reads the recordings. Default: gemini-3.8-flash.
- **Input From · Optional**: Files from an earlier step, or links: files uploaded with File → Upload. Options: Files, Links. Default: Files.
- **Recordings · Required**: Attach one file per row, or switch the field to an expression to pass a whole list from an earlier step (such as {{steps.unzip.files}}). WAV, MP3, AIFF, AAC, OGG or FLAC. 100 MB in all. Shows when **Input From** is **Files**.
- **Links · Required**: File URIs from File → Upload, comma or line separated. Shows when **Input From** is **Links**.
- **Language · Optional**: Optional. The language spoken, if known.

### Google Gemini › Document

### Analyze Document

- **Model · Optional**: The model that reads the documents. Default: gemini-3.8-flash.
- **Prompt · Optional**: What to ask about the documents. Default: Summarize this document.
- **Input From · Optional**: Files from an earlier step, or links: files uploaded with File → Upload. Options: Files, Links. Default: Files.
- **Documents · Required**: Attach one file per row, or switch the field to an expression to pass a whole list from an earlier step (such as {{steps.unzip.files}}). PDF (up to 50 MB) or text. 100 MB in all. Shows when **Input From** is **Files**.
- **Links · Required**: File URIs from File → Upload, comma or line separated. Shows when **Input From** is **Links**.
- **Output Format · Optional**: Text, or JSON a later step can read field by field (parsed under json). Options: Text, JSON matching a schema. Default: Text.
- **JSON Schema · Required**: The shape of the answer, as JSON Schema, such as {"type":"object","properties":{"summary":{"type":"string"}},"required":["summary"]}. Shows when **Output Format** is **JSON matching a schema**.
- **Max Output Tokens · Optional**: Optional. The most tokens the answer may use. Empty is the model's own limit.
- **Thinking Level · Optional**: How much Gemini reasons before answering: less is faster and cheaper. Options: Model default, Minimal, Low, Medium, High. Default: Model default.

### Google Gemini › Video

### Analyze Video

- **Model · Optional**: The model that reads the videos. Default: gemini-3.8-flash.
- **Prompt · Optional**: What to ask about the videos. Default: What happens in this video?
- **Input From · Optional**: Files from an earlier step, or links: files uploaded with File → Upload, or YouTube videos. Options: Files, Links. Default: Files.
- **Videos · Required**: Attach one file per row, or switch the field to an expression to pass a whole list from an earlier step (such as {{steps.unzip.files}}). MP4, MPEG, MOV, AVI, FLV, WEBM, WMV or 3GPP. 100 MB in all. Shows when **Input From** is **Files**.
- **Links · Required**: File URIs from File → Upload or YouTube links, comma or line separated. Shows when **Input From** is **Links**.
- **Output Format · Optional**: Text, or JSON a later step can read field by field (parsed under json). Options: Text, JSON matching a schema. Default: Text.
- **JSON Schema · Required**: The shape of the answer, as JSON Schema, such as {"type":"object","properties":{"summary":{"type":"string"}},"required":["summary"]}. Shows when **Output Format** is **JSON matching a schema**.
- **Max Output Tokens · Optional**: Optional. The most tokens the answer may use. Empty is the model's own limit.
- **Thinking Level · Optional**: How much Gemini reasons before answering: less is faster and cheaper. Options: Model default, Minimal, Low, Medium, High. Default: Model default.

### Generate a Video

- **Model · Optional**: The video model (Gemini Omni). Default: gemini-omni-1.1-flash.
- **Prompt · Required**: What happens in the video: subject, action, camera, style.
- **Images · Optional**: Attach one file per row, or switch the field to an expression to pass a whole list from an earlier step (such as {{steps.unzip.files}}). Optional. A first frame (and a last frame), or reference images.
- **Aspect Ratio · Optional**: The video's shape. Options: Landscape (16:9), Portrait (9:16). Default: Landscape (16:9).
- **Resolution · Optional**: Higher takes longer. A video over 12 MB stays at Gemini: download it later in parts, or lower the resolution. Options: 360p, 720p, 1080p, 4K. Default: 720p.

### Download Video

- **Video File · Required**: The generated video's file (files/… or its URI), as Generate a Video names it. Google keeps it for 48 hours.

### Google Gemini › File

### Upload Media File

- **File · Required**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). Images, audio, video, PDFs or text, up to 2 GB.
- **Display Name · Optional**: Optional. A name to know the file by (up to 512 characters).

### Get File and Delete File

- **File · Required**: The file's name (files/…) or URI, as Upload Media File returns it.

### List Files

- **Return All · Optional**: Read every file, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many files to return (1–2000). Default: 50. Shows when **Return All** is off.

### Google Gemini › File Search

### Create File Search Store

- **Display Name · Optional**: Optional. A name to know the store or document by (up to 512 characters).

### Delete File Search Store

- **File Search Store · Required**: The store's name (fileSearchStores/…).
- **Delete Its Documents Too · Optional**: Off, Google refuses to delete a store that still holds documents. Off by default.

### List File Search Stores

- **Return All · Optional**: Read every store, page by page (at most 2000; past that the step fails rather than stop early). Off by default.
- **Limit · Optional**: How many stores to return (1–2000). Default: 50. Shows when **Return All** is off.

### Upload to File Search Store

- **Display Name · Optional**: Optional. A name to know the store or document by (up to 512 characters).
- **File Search Store · Required**: The store's name (fileSearchStores/…).
- **File · Required**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). PDF, text, Office documents and more, up to 100 MB.

### Google Gemini › Embedding

### Create

- **Model · Optional**: The embedding model. Default: gemini-embedding-2.
- **Text · Required**: The text to embed. To embed several at once, give a JSON list of texts, such as ["first", "second"] (up to 100).
- **Task · Optional**: Only for gemini-embedding-001; with gemini-embedding-2, say the task in the text. Options: Not set, Search query, Document to search, Similarity, Classification, Clustering, Question answering, Fact checking, Code search. Default: Not set.
- **Dimensions · Optional**: Optional. Shorter vectors (such as 768).

### Google Gemini › Model

### List Models

Nothing to fill in.

Source: https://docs.gorunner.io/apps/google-gemini
