> ## Documentation Index
> Fetch the complete documentation index at: https://docs.portkey.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Groq

> Use Groq's ultra-fast inference for chat completions, tool calling, and audio processing through Portkey.

## Quick Start

Get started with Groq in under 2 minutes:

<CodeGroup>
  ```python Python icon="python" theme={"system"}
  from portkey_ai import Portkey

  # 1. Install: pip install portkey-ai
  # 2. Add @groq provider in model catalog
  # 3. Use it:

  portkey = Portkey(api_key="PORTKEY_API_KEY")

  response = portkey.chat.completions.create(
      model="@groq/llama-3.3-70b-versatile",
      messages=[{"role": "user", "content": "Hello!"}]
  )

  print(response.choices[0].message.content)
  ```

  ```js Javascript icon="square-js" theme={"system"}
  import Portkey from 'portkey-ai'

  // 1. Install: npm install portkey-ai
  // 2. Add @groq provider in model catalog
  // 3. Use it:

  const portkey = new Portkey({
      apiKey: "PORTKEY_API_KEY"
  })

  const response = await portkey.chat.completions.create({
      model: "@groq/llama-3.3-70b-versatile",
      messages: [{ role: "user", content: "Hello!" }]
  })

  console.log(response.choices[0].message.content)
  ```

  ```python OpenAI Py icon="python" theme={"system"}
  from openai import OpenAI
  from portkey_ai import PORTKEY_GATEWAY_URL

  # 1. Install: pip install openai portkey-ai
  # 2. Add @groq provider in model catalog
  # 3. Use it:

  client = OpenAI(
      api_key="PORTKEY_API_KEY",  # Portkey API key
      base_url=PORTKEY_GATEWAY_URL
  )

  response = client.chat.completions.create(
      model="@groq/llama-3.3-70b-versatile",
      messages=[{"role": "user", "content": "Hello!"}]
  )

  print(response.choices[0].message.content)
  ```

  ```js OpenAI JS icon="square-js" theme={"system"}
  import OpenAI from "openai"
  import { PORTKEY_GATEWAY_URL } from "portkey-ai"

  // 1. Install: npm install openai portkey-ai
  // 2. Add @groq provider in model catalog
  // 3. Use it:

  const client = new OpenAI({
      apiKey: "PORTKEY_API_KEY",  // Portkey API key
      baseURL: PORTKEY_GATEWAY_URL
  })

  const response = await client.chat.completions.create({
      model: "@groq/llama-3.3-70b-versatile",
      messages: [{ role: "user", content: "Hello!" }]
  })

  console.log(response.choices[0].message.content)
  ```

  ```sh cURL icon="square-terminal" theme={"system"}
  # 1. Add @groq provider in model catalog
  # 2. Use it:

  curl https://api.portkey.ai/v1/chat/completions \
    -H "Content-Type: application/json" \
    -H "x-portkey-api-key: $PORTKEY_API_KEY" \
    -d '{
      "model": "@groq/llama-3.3-70b-versatile",
      "messages": [{"role": "user", "content": "Hello!"}]
    }'
  ```
</CodeGroup>

## Add Provider in Model Catalog

Before making requests, add Groq to your Model Catalog:

1. Go to [**Model Catalog → Add Provider**](https://app.portkey.ai/model-catalog/providers)
2. Select **Groq**
3. Enter your [Groq API key](https://console.groq.com/keys)
4. Name your provider (e.g., `groq`)

<Card title="Complete Setup Guide" icon="book" href="/product/model-catalog">
  See all setup options and detailed configuration instructions
</Card>

***

## Groq Capabilities

### Tool Calling

Use Groq's tool calling feature to trigger external functions:

<CardGroup>
  <Card title="Supported Models" href="https://console.groq.com/docs/tool-use#supported-models">
    View Groq models that support tool calling
  </Card>
</CardGroup>

<CodeGroup>
  ```python Python theme={"system"}
  from portkey_ai import Portkey

  portkey = Portkey(api_key="PORTKEY_API_KEY")

  tools = [{
      "type": "function",
      "function": {
          "name": "getWeather",
          "description": "Get the current weather",
          "parameters": {
              "type": "object",
              "properties": {
                  "location": {"type": "string", "description": "City and state"},
                  "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
              },
              "required": ["location"]
          }
      }
  }]

  response = portkey.chat.completions.create(
      model="@groq/llama-3.3-70b-versatile",
      messages=[
          {"role": "system", "content": "You are a helpful assistant."},
          {"role": "user", "content": "What's the weather like in Delhi?"}
      ],
      tools=tools,
      tool_choice="auto"
  )

  print(response.choices[0].finish_reason)
  ```

  ```javascript Node.js theme={"system"}
  import Portkey from 'portkey-ai';

  const portkey = new Portkey({
      apiKey: 'PORTKEY_API_KEY'
  });

  const tools = [{
      type: "function",
      function: {
          name: "getWeather",
          description: "Get the current weather",
          parameters: {
              type: "object",
              properties: {
                  location: { type: "string", description: "City and state" },
                  unit: { type: "string", enum: ["celsius", "fahrenheit"] }
              },
              required: ["location"]
          }
      }
  }];

  const response = await portkey.chat.completions.create({
      model: "@groq/llama-3.3-70b-versatile",
      messages: [
          { role: "system", content: "You are a helpful assistant." },
          { role: "user", content: "What's the weather like in Delhi?" }
      ],
      tools,
      tool_choice: "auto"
  });

  console.log(response.choices[0].finish_reason);
  ```

  ```bash cURL theme={"system"}
  curl https://api.portkey.ai/v1/chat/completions \
       -H "Content-Type: application/json" \
      -H "x-portkey-api-key: $PORTKEY_API_KEY" \
      -H "x-portkey-provider: @groq" \
       -d '{
         "model": "llama-3.3-70b-versatile",
         "messages": [
           {"role": "system", "content": "You are a helpful assistant."},
              {"role": "user", "content": "What'\''s the weather like in Delhi?"}
         ],
         "tools": [{
           "type": "function",
           "function": {
             "name": "getWeather",
             "description": "Get the current weather",
             "parameters": {
               "type": "object",
               "properties": {
                 "location": {"type": "string", "description": "City and state"},
                 "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
               },
               "required": ["location"]
             }
           }
         }],
         "tool_choice": "auto"
       }'
  ```
</CodeGroup>

### Speech to Text (Whisper)

Transcribe or translate audio using Groq's Whisper model:

<CodeGroup>
  ```python Python theme={"system"}
  from portkey_ai import Portkey

  portkey = Portkey(api_key="PORTKEY_API_KEY", provider="@groq")

  audio_file = open("/path/to/file.mp3", "rb")

  # Transcription
  transcription = portkey.audio.transcriptions.create(
    model="whisper-large-v3",
    file=audio_file
  )
  print(transcription.text)

  # Translation
  translation = portkey.audio.translations.create(
    model="whisper-large-v3",
    file=audio_file
  )
  print(translation.text)
  ```

  ```javascript Node.js theme={"system"}
  import Portkey from 'portkey-ai';
  import fs from 'fs';

  const portkey = new Portkey({
      apiKey: 'PORTKEY_API_KEY',
      provider: '@groq'
  });

  // Transcription
  async function transcribe() {
    const transcription = await portkey.audio.transcriptions.create({
      file: fs.createReadStream("/path/to/file.mp3"),
          model: "whisper-large-v3"
    });
    console.log(transcription.text);
  }
  transcribe();

  // Translation
  async function translate() {
      const translation = await portkey.audio.translations.create({
          file: fs.createReadStream("/path/to/file.mp3"),
          model: "whisper-large-v3"
      });
      console.log(translation.text);
  }
  translate();
  ```

  ```bash cURL theme={"system"}
  # Transcription
  curl https://api.portkey.ai/v1/audio/transcriptions \
      -H "x-portkey-api-key: $PORTKEY_API_KEY" \
      -H "x-portkey-provider: @groq" \
       -H "Content-Type: multipart/form-data" \
       -F "file=@/path/to/file.mp3" \
       -F "model=whisper-large-v3"

  # Translation
  curl https://api.portkey.ai/v1/audio/translations \
      -H "x-portkey-api-key: $PORTKEY_API_KEY" \
      -H "x-portkey-provider: @groq" \
       -H "Content-Type: multipart/form-data" \
       -F "file=@/path/to/file.mp3" \
       -F "model=whisper-large-v3"
  ```
</CodeGroup>

### Text to Speech

Convert text to natural-sounding audio:

<CodeGroup>
  ```python Python theme={"system"}
  from portkey_ai import Portkey
  from pathlib import Path

  portkey = Portkey(api_key="PORTKEY_API_KEY", provider="@groq")

  speech_file_path = Path(__file__).parent / "speech.mp3"
  response = portkey.audio.speech.create(
    model="playai-tts",
    voice="Fritz-PlayAI",
    input="Today is a wonderful day to build something people love!"
  )

  with open(speech_file_path, "wb") as f:
      f.write(response.content)
  ```

  ```javascript Node.js theme={"system"}
  import Portkey from 'portkey-ai';
  import path from 'path';
  import fs from 'fs';

  const portkey = new Portkey({
      apiKey: 'PORTKEY_API_KEY',
      provider: '@groq'
  });

  const speechFile = path.resolve("./speech.mp3");

  async function main() {
      const mp3 = await portkey.audio.speech.create({
      model: "playai-tts",
      voice: "Fritz-PlayAI",
          input: "Today is a wonderful day to build something people love!"
    });
    const buffer = Buffer.from(await mp3.arrayBuffer());
    await fs.promises.writeFile(speechFile, buffer);
  }

  main();
  ```

  ```bash cURL theme={"system"}
  curl https://api.portkey.ai/v1/audio/speech \
      -H "x-portkey-api-key: $PORTKEY_API_KEY" \
      -H "x-portkey-provider: @groq" \
       -H "Content-Type: application/json" \
       -d '{
         "model": "playai-tts",
         "voice": "Fritz-PlayAI",
         "input": "Today is a wonderful day to build something people love!"
       }' \
       --output speech.mp3
  ```
</CodeGroup>

***

## Supported Models

<Card title="Groq Models" icon="list" href="https://console.groq.com/docs/models">
  View the complete list of models available on Groq
</Card>

***

## Next Steps

<CardGroup cols={2}>
  <Card title="Gateway Configs" icon="sliders" href="/product/ai-gateway">
    Add fallbacks, load balancing, and more
  </Card>

  <Card title="Observability" icon="chart-line" href="/product/observability">
    Monitor and trace your Groq requests
  </Card>

  <Card title="Prompt Library" icon="book" href="/product/prompt-engineering-studio">
    Manage and version your prompts
  </Card>

  <Card title="Metadata" icon="tag" href="/product/observability/metadata">
    Add custom metadata to requests
  </Card>
</CardGroup>

For complete SDK documentation:

<Card title="SDK Reference" icon="code" href="/api-reference/sdk/list">
  Complete Portkey SDK documentation
</Card>
