---
title: "groq Breaking Changes on PyPI | Since.dev"
description: "What each groq release removed, renamed or changed: 32 breaking changes in 3 versions on PyPI, each with its source."
canonical_url: https://since.dev/packages/pypi/groq
last_updated: 2025-09-27
---

# groq breaking changes

Every breaking API change we have recorded in groq on PyPI: 32 breaking changes in 3 versions. Below are its newest 3 versions, removals and renames first, each with its source.

Newest change September 27, 2025

## 0.32.0

22 breaking changes, first published September 27, 2025.

- **Behavior changed**  

Optional parameters now use the Omit type instead of NotGiven in the package's types, which may affect code that type-checks against those sentinel values. [github.com](https://github.com/groq/groq-python/releases/tag/v0.32.0)
- **Signature changed** `groq.BaseModel.model_dump`  

Was def model_dump(self, \*, mode: Literal\['json', 'python'\] | str = 'python', include: IncEx | None = None, exclude: IncEx | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none... [pypi.org](https://pypi.org/project/groq/0.32.0/)
- **Signature changed** `groq.BaseModel.model_dump_json`  

Was def model_dump_json(self, \*, indent: int | None = None, include: IncEx | None = None, exclude: IncEx | None = None, by_alias: bool = False, exclude_unset: bool = False, exclude_defaults: bool = False, exclude_none: bool = False... [pypi.org](https://pypi.org/project/groq/0.32.0/)
- **Signature changed** `groq.Groq.__init__`  

Was def \_\_init\_\_(self, \*, api_key: str | None = None, base_url: str | httpx.URL | None = None, timeout: Union\[float, Timeout, None, NotGiven\] = NOT_GIVEN, max_retries: int = DEFAULT_MAX_RETRIES, default_headers: Mapping\[str, str\] | None =... [pypi.org](https://pypi.org/project/groq/0.32.0/)
- **Signature changed** `groq.Groq.copy`  

Was def copy(self, \*, api_key: str | None = None, base_url: str | httpx.URL | None = None, timeout: float | Timeout | None | NotGiven = NOT_GIVEN, http_client: httpx.Client | None = None, max_retries: int | NotGiven = NOT_GIVEN... [pypi.org](https://pypi.org/project/groq/0.32.0/)
- **Signature changed** `groq.resources.audio.Speech.create`  

Was def create(self, \*, input: str, model: Union\[str, Literal\['playai-tts', 'playai-tts-arabic'\]\], voice: str, response_format: Literal\['flac', 'mp3', 'mulaw', 'ogg', 'wav'\] | NotGiven = NOT_GIVEN, sample_rate: Literal\[8000, 16000, 22050... [pypi.org](https://pypi.org/project/groq/0.32.0/)
- **Signature changed** `groq.resources.audio.Transcriptions.create`  

Was def create(self, \*, model: Union\[str, Literal\['whisper-large-v3', 'whisper-large-v3-turbo'\]\], file: FileTypes | NotGiven = NOT_GIVEN, language: Union\[str, Literal\['en', 'zh', 'de', 'es', 'ru', 'ko', 'fr', 'ja', 'pt', 'tr', 'pl', 'ca'... [pypi.org](https://pypi.org/project/groq/0.32.0/)
- **Signature changed** `groq.resources.audio.Translations.create`  

Was def create(self, \*, model: Union\[str, Literal\['whisper-large-v3', 'whisper-large-v3-turbo'\]\], file: FileTypes | NotGiven = NOT_GIVEN, prompt: str | NotGiven = NOT_GIVEN, response_format: Literal\['json', 'text', 'verbose_json'\] |... [pypi.org](https://pypi.org/project/groq/0.32.0/)
- **Signature changed** `groq.resources.Batches.cancel`  

Was def cancel(self, batch_id: str, \*, extra_headers: Headers | None = None, extra_query: Query | None = None, extra_body: Body | None = None, timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN) -> BatchCancelResponse; now def... [pypi.org](https://pypi.org/project/groq/0.32.0/)
- **Signature changed** `groq.resources.Batches.create`  

Was def create(self, \*, completion_window: str, endpoint: Literal\['/v1/chat/completions'\], input_file_id: str, metadata: Optional\[Dict\[str, str\]\] | NotGiven = NOT_GIVEN, extra_headers: Headers | None = None, extra_query: Query | None =... [pypi.org](https://pypi.org/project/groq/0.32.0/)

And 12 more in this version.

## 0.31.0

5 breaking changes, first published August 5, 2025.

- **Signature changed** `groq.resources.chat.Completions.create`  

Was def create(self, \*, messages: Iterable\[ChatCompletionMessageParam\], model: Union\[str, Literal\['gemma2-9b-it', 'llama-3.3-70b-versatile', 'llama-3.1-8b-instant', 'llama-guard-3-8b', 'llama3-70b-8192', 'llama3-8b-8192'\]\]... [pypi.org](https://pypi.org/project/groq/0.31.0/)
- **Signature changed** `groq.types.chat.ChatCompletionSystemMessageParam.role`  

Was role: Required\[Literal\['system'\]\]; now role: Required\[Literal\['system', 'developer'\]\]. [pypi.org](https://pypi.org/project/groq/0.31.0/)
- **Signature changed** `groq.types.chat.ChatCompletionToolParam.function`  

Was function: Required\[FunctionDefinition\]; now function: FunctionDefinition. [pypi.org](https://pypi.org/project/groq/0.31.0/)
- **Signature changed** `groq.types.chat.ChatCompletionToolParam.type`  

Was type: Required\[Literal\['function'\]\]; now type: Required\[Literal\['function', 'browser_search', 'code_interpreter'\]\]. [pypi.org](https://pypi.org/project/groq/0.31.0/)
- **Signature changed** `groq.types.chat.CompletionCreateParams.reasoning_effort`  

Was reasoning_effort: Optional\[Literal\['none', 'default'\]\]; now reasoning_effort: Optional\[Literal\['none', 'default', 'low', 'medium', 'high'\]\]. [pypi.org](https://pypi.org/project/groq/0.31.0/)

## 0.30.0

5 breaking changes, first published July 11, 2025.

- **Signature changed** `groq.resources.chat.Completions.create`  

Was def create(self, \*, messages: Iterable\[ChatCompletionMessageParam\], model: Union\[str, Literal\['gemma2-9b-it', 'llama-3.3-70b-versatile', 'llama-3.1-8b-instant', 'llama-guard-3-8b', 'llama3-70b-8192', 'llama3-8b-8192'\]\]... [pypi.org](https://pypi.org/project/groq/0.30.0/)
- **Signature changed** `groq.types.chat.ChatCompletionAssistantMessageParam.content`  

Was content: Optional\[str\]; now content: Union\[str, Iterable\[ChatCompletionContentPartTextParam\], None\]. [pypi.org](https://pypi.org/project/groq/0.30.0/)
- **Signature changed** `groq.types.chat.ChatCompletionSystemMessageParam.content`  

Was content: Required\[str\]; now content: Required\[Union\[str, Iterable\[ChatCompletionContentPartTextParam\]\]\]. [pypi.org](https://pypi.org/project/groq/0.30.0/)
- **Signature changed** `groq.types.chat.ChatCompletionToolMessageParam.content`  

Was content: Required\[str\]; now content: Required\[Union\[str, Iterable\[ChatCompletionContentPartParam\]\]\]. [pypi.org](https://pypi.org/project/groq/0.30.0/)
- **Signature changed** `groq.types.chat.CompletionCreateParams.service_tier`  

Was service_tier: Optional\[Literal\['auto', 'on_demand', 'flex'\]\]; now service_tier: Optional\[Literal\['auto', 'on_demand', 'flex', 'performance'\]\]. [pypi.org](https://pypi.org/project/groq/0.30.0/)

## Check your code

These are the changes. To see which of them reach your code, [scan a public repository](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#api) reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

## Put your code on continuous management.

Scan a public repository now, or give your agent one line.

### See how out of date your code is.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
