{"record":{"id":"11138e45da5e75d5","repo":"BerriAI/litellm","slug":"api-base-is-required-for-openai-image-variations","errorCode":null,"errorMessage":"API base is required for OpenAI image variations","messagePattern":"API base is required for OpenAI image variations","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/images/main.py","lineNumber":662,"sourceCode":"\n    provider_config: Final = ProviderConfigManager.get_provider_model_info(\n        model=model or \"\",  # openai defaults to dall-e-2\n        provider=llm_provider,\n    )\n\n    if provider_config is None:\n        raise ValueError(\n            f\"image variation provider has no known model info config - required for getting api keys, etc.: {custom_llm_provider}. Supported providers are: {LITELLM_IMAGE_VARIATION_PROVIDERS}\"\n        )\n\n    api_key: Final = provider_config.get_api_key(litellm_params.get(\"api_key\", None))\n    api_base = provider_config.get_api_base(litellm_params.get(\"api_base\", None))\n\n    if image_variation_provider == LITELLM_IMAGE_VARIATION_PROVIDERS.OPENAI:\n        if api_key is None:\n            raise ValueError(\"API key is required for OpenAI image variations\")\n        if api_base is None:\n            raise ValueError(\"API base is required for OpenAI image variations\")\n\n        response = openai_image_variations.image_variations(\n            model_response=model_response,\n            api_key=api_key,\n            api_base=api_base,\n            model=model,\n            image=image,\n            timeout=litellm_params.get(\"timeout\", None),\n            custom_llm_provider=custom_llm_provider,\n            logging_obj=litellm_logging_obj,\n            optional_params={},\n            litellm_params=litellm_params,\n        )\n    elif image_variation_provider == LITELLM_IMAGE_VARIATION_PROVIDERS.TOPAZ:\n        if api_key is None:\n            raise ValueError(\"API key is required for Topaz image variations\")\n        if api_base is None:\n            raise ValueError(\"API base is required for Topaz image variations\")","sourceCodeStart":644,"sourceCodeEnd":680,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/images/main.py#L644-L680","documentation":"OpenAI image variations additionally require an explicit API base; provider_config.get_api_base() returned None (litellm/images/main.py:662) and litellm raises ValueError instead of guessing a URL. Unlike chat completions, this path does not default to https://api.openai.com/v1.","triggerScenarios":"Calling litellm.image_variations(model='dall-e-2', ...) with api_key set but no api_base argument and no resolvable OPENAI_API_BASE / litellm.api_base.","commonSituations":"Developer supplies only the key assuming the OpenAI default base applies; env var OPENAI_API_BASE unset in containers.","solutions":["Pass api_base explicitly: api_base='https://api.openai.com/v1'","Or set OPENAI_API_BASE environment variable to your endpoint","Or set litellm.api_base globally before the call","For Azure-style proxies, point api_base at your gateway URL"],"exampleFix":"# before\nlitellm.image_variations(model=\"dall-e-2\", image=image_file, api_key=key)\n\n# after\nlitellm.image_variations(model=\"dall-e-2\", image=image_file, api_key=key, api_base=\"https://api.openai.com/v1\")","handlingStrategy":"validation","validationCode":"import os\n\ndef variation_base(explicit: str | None = None) -> str:\n    return explicit or os.getenv(\"OPENAI_API_BASE\") or getattr(litellm, \"api_base\", None) or \"https://api.openai.com/v1\"","typeGuard":null,"tryCatchPattern":"try:\n    r = litellm.image_variations(model=\"dall-e-2\", image=img, api_key=k)\nexcept ValueError as e:\n    if \"API base is required\" in str(e):\n        return litellm.image_variations(model=\"dall-e-2\", image=img, api_key=k, api_base=\"https://api.openai.com/v1\")\n    raise","preventionTips":["Always pass api_base explicitly for OpenAI image endpoints","Centralize endpoint configuration (key + base) in one settings object","Set OPENAI_API_BASE in environments using proxies or gateways"],"tags":["image-variations","openai","api-base","configuration"],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}