{"record":{"id":"926b6d72370303ab","repo":"BerriAI/litellm","slug":"exa-api-key-is-not-set-set-exa-api-key-environm","errorCode":null,"errorMessage":"EXA_API_KEY is not set. Set `EXA_API_KEY` environment variable.","messagePattern":"EXA_API_KEY is not set\\. Set `EXA_API_KEY` environment variable\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"litellm/llms/exa_ai/search/transformation.py","lineNumber":74,"sourceCode":"    def validate_environment(\n        self,\n        headers: dict,\n        api_key: str | None = None,\n        api_base: str | None = None,\n        **kwargs,\n    ) -> dict:\n        \"\"\"\n        Validate environment and return headers.\n        \"\"\"\n        api_key = self.resolve_server_api_key(\n            caller_api_key=api_key,\n            caller_api_base=api_base,\n            key_env_vars=(\"EXA_API_KEY\",),\n            base_env_var=\"EXA_API_BASE\",\n            default_api_base=self.EXA_AI_API_BASE,\n        )\n        if not api_key:\n            raise ValueError(\"EXA_API_KEY is not set. Set `EXA_API_KEY` environment variable.\")\n        headers[\"x-api-key\"] = api_key\n        headers[\"Content-Type\"] = \"application/json\"\n        return headers\n\n    def get_complete_url(\n        self,\n        api_base: str | None,\n        optional_params: dict,\n        data: dict | list[dict] | None = None,\n        **kwargs,\n    ) -> str:\n        \"\"\"\n        Get complete URL for Search endpoint.\n        \"\"\"\n        api_base = api_base or get_secret_str(\"EXA_API_BASE\") or self.EXA_AI_API_BASE\n\n        # Append \"/search\" to the api base if it's not already there\n        if not api_base.endswith(\"/search\"):","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/BerriAI/litellm/blob/6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d/litellm/llms/exa_ai/search/transformation.py#L56-L92","documentation":"Error \"EXA_API_KEY is not set. Set `EXA_API_KEY` environment variable.\" thrown in BerriAI/litellm.","triggerScenarios":"Thrown at litellm/llms/exa_ai/search/transformation.py:74 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set EXA_API_KEY in the environment."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"6c2dcb801bf2b75c18f1bb24140e7cf57465cc4d","analyzedAt":"2026-08-15T07:12:03.035Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}