BerriAI/litellm · error · ValueError

GEMINI_API_KEY is not set

Error message

GEMINI_API_KEY is not set

What it means

Error "GEMINI_API_KEY is not set" thrown in BerriAI/litellm.

Source

Thrown at litellm/llms/gemini/image_edit/transformation.py:65

    ) -> dict[str, Any]:
        return map_openai_image_params_to_gemini(
            params=image_edit_optional_params,
            model=model,
            supported_params=self.get_supported_openai_params(model),
            parse_image_config_string=True,
        )

    def validate_environment(
        self,
        headers: dict,
        model: str,
        api_key: str | None = None,
        litellm_params: dict | None = None,
        api_base: str | None = None,
    ) -> dict:
        final_api_key: Final[str | None] = api_key or get_secret_str("GEMINI_API_KEY")
        if not final_api_key:
            raise ValueError("GEMINI_API_KEY is not set")

        headers["x-goog-api-key"] = final_api_key
        headers["Content-Type"] = "application/json"
        return headers

    def use_multipart_form_data(self) -> bool:
        """Gemini uses JSON requests, not multipart/form-data."""
        return False

    def get_complete_url(
        self,
        model: str,
        api_base: str | None,
        litellm_params: dict,
    ) -> str:
        base_url = api_base or get_secret_str("GEMINI_API_BASE") or self.DEFAULT_BASE_URL
        base_url = base_url.rstrip("/")
        return f"{base_url}/models/{model}:generateContent"

View on GitHub (pinned to 6c2dcb801b)

Solutions

  1. Set GEMINI_API_KEY in the environment.

When it happens

Trigger: Thrown at litellm/llms/gemini/image_edit/transformation.py:65 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of BerriAI/litellm@6c2dcb801b (2026-08-15). Data as JSON: /api/errors/14f373b1e16ad929. Report an issue: GitHub.