# Groq

Message the open models Groq serves, ask about images, and turn speech into text with Whisper.

## Connect Groq

1. In the sidebar, open **Connections** and press **Add connection**.
2. Type `groq` and choose **Groq**.
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**: A Groq API key (gsk_…).

Paste a Groq API key: console.groq.com → API Keys → Create API Key.

[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 Groq

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

- [Text](https://docs.gorunner.io/apps/groq#fields-f-text): Message a Model
- [Image](https://docs.gorunner.io/apps/groq#fields-f-image): Analyze Image
- [Audio](https://docs.gorunner.io/apps/groq#fields-f-audio): Transcribe a Recording · Translate a Recording to English
- [Model](https://docs.gorunner.io/apps/groq#fields-f-model): Get · Get Many

To start a workflow from Groq, 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 Groq 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 Groq 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, Groq is `pieceId: "groq"` with `actionId: "groq"`, 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 reads from outside without changing anything (`reads_external`). See [How versions and side effects work](https://docs.gorunner.io/apps#q-versions).

### Groq › Text

### Message a Model

- **Model · Required**: The model that answers.
- **Prompt · Required**: What to ask or tell the model.
- **System Message · Optional**: Standing instructions for the model: its role, tone and rules. Optional.
- **Earlier Messages · Optional**: Earlier turns of the conversation, oldest first, sent before the prompt: [{"role":"user","content":"…"},{"role":"assistant","content":"…"}].
- **Reasoning Effort · Optional**: How hard a reasoning model thinks before it answers. Which levels a model takes is on Groq's model page; the model's default is used when left at Default. Options: Default, None (no reasoning), Low, Medium, High. Default: Default.
- **Reasoning Output · Optional**: Where a reasoning model's thinking goes: apart from the answer (in reasoning), inside the answer, or left out. Options: Default, Apart (reasoning), Inside the answer, Left out. Default: Default.
- **Output Format · Optional**: Text, or JSON the step parses for later steps (under json). For a JSON object, say in the prompt what the JSON should hold. Options: Text, JSON object, JSON matching a schema. Default: Text.
- **JSON Schema · Required**: The JSON Schema the answer must match, such as {"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}. Shows when **Output Format** is **JSON matching a schema**.
- **Max Tokens · Optional**: The most tokens the answer may use (reasoning included on reasoning models). Empty uses the model's default.
- **Temperature · Optional**: 0–2: lower is more focused and repeatable, higher more varied. Empty uses the model's default.
- **Top P · Optional**: 0–1: sample only from the most likely tokens whose probabilities add up to this. Change this or Temperature, not both.
- **Stop Sequences · Optional**: Text that ends the answer when the model writes it, one per line (at most 4).
- **Tools · Optional**: Functions the model may ask to call, as a list: [{"type":"function","function":{"name":"get_weather","description":"…","parameters":{…}}}]. The calls it asks for are in tool_calls; this step does not call them.
- **More Options · Optional**: Other request fields Groq documents for chat completions, as JSON (such as {"seed": 7}). They are added to the request as written.

### Groq › Image

### Analyze Image

- **Model · Required**: A model that reads images.
- **Question · Required**: What to ask about the images.
- **System Message · Optional**: Standing instructions for the model: its role, tone and rules. Optional.
- **Earlier Messages · Optional**: Earlier turns of the conversation, oldest first, sent before the prompt: [{"role":"user","content":"…"},{"role":"assistant","content":"…"}].
- **Image URLs · Optional**: Links to the images, one per line (https:// or data: URLs). Groq accepts images up to its documented size limits.
- **Image File · Optional**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). JPEG, PNG, GIF or WebP. Use this, Image URLs, or both.
- **Output Format · Optional**: Text, or JSON the step parses for later steps (under json). For a JSON object, say in the prompt what the JSON should hold. Options: Text, JSON object, JSON matching a schema. Default: Text.
- **JSON Schema · Required**: The JSON Schema the answer must match, such as {"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}. Shows when **Output Format** is **JSON matching a schema**.
- **Max Tokens · Optional**: The most tokens the answer may use (reasoning included on reasoning models). Empty uses the model's default.
- **Temperature · Optional**: 0–2: lower is more focused and repeatable, higher more varied. Empty uses the model's default.
- **Top P · Optional**: 0–1: sample only from the most likely tokens whose probabilities add up to this. Change this or Temperature, not both.
- **Stop Sequences · Optional**: Text that ends the answer when the model writes it, one per line (at most 4).
- **More Options · Optional**: Other request fields Groq documents for chat completions, as JSON (such as {"seed": 7}). They are added to the request as written.

### Groq › Audio

### Transcribe a Recording

- **Model · Required**: The speech-to-text model. Translation to English takes whisper-large-v3. Default: whisper-large-v3-turbo.
- **Recording · Optional**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav or webm. Groq limits the size by plan; a larger recording can be given as a link.
- **Recording URL · Optional**: A link Groq downloads the recording from, instead of a file.
- **Language · Optional**: The spoken language as an ISO-639-1 code (en, de, fr …). Optional; it makes the result faster and more accurate.
- **Prompt · Optional**: Text that guides spelling and style (names, terms), or the text before this recording. In the recording's language (English for a translation).
- **Timestamps · Optional**: Add timed segments, timed words, or both to the text. Options: None, Segments, Words, Segments and words. Default: None.
- **Temperature · Optional**: 0–1. Empty or 0 lets the model choose.

### Translate a Recording to English

- **Model · Required**: The speech-to-text model. Translation to English takes whisper-large-v3. Default: whisper-large-v3-turbo.
- **Recording · Optional**: Upload a file, or switch to an expression to use one from an earlier step (such as {{steps.download.result}}). flac, mp3, mp4, mpeg, mpga, m4a, ogg, wav or webm. Groq limits the size by plan; a larger recording can be given as a link.
- **Recording URL · Optional**: A link Groq downloads the recording from, instead of a file.
- **Prompt · Optional**: Text that guides spelling and style (names, terms), or the text before this recording. In the recording's language (English for a translation).
- **Temperature · Optional**: 0–1. Empty or 0 lets the model choose.

### Groq › Model

### Get

- **Model · Required**: The model to read.

### Get Many

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

Source: https://docs.gorunner.io/apps/groq
