Skip to content

How to use with Cerebras (OpenAI compatible API)? #78

@Hurricane31337

Description

@Hurricane31337

I've tried this .env:

# Required API Keys
OPENAI_API_KEY="csk-xxx"

PREFERRED_PROVIDER="openai"
OPENAI_BASE_URL="https://api.cerebras.ai/v1"
BIG_MODEL="zai-glm-4.7"
SMALL_MODEL="qwen-3-32b"

Claude settings.json:

{
    "env": {
        "ANTHROPIC_AUTH_TOKEN": "csk-xxx",
        "ANTHROPIC_BASE_URL": "http://localhost:8082",
        "API_TIMEOUT_MS": "3000000"
    }
}

But it seems to request openai.com instead of https://api.cerebras.ai/v1 (as set via OPENAI_BASE_URL):

Give Feedback / Get Help: https://github.com/BerriAI/litellm/issues/new
LiteLLM.Info: If you need to debug this error, use `litellm._turn_on_debug()'.

2026-01-28 01:29:52,275 - ERROR - Error processing request: {
  "error": "litellm.BadRequestError: OpenAIException - Wrong API Key",
  "type": "BadRequestError",
  "traceback": "Traceback (most recent call last):\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\litellm\\llms\\openai\\openai.py\", line 1008, in async_streaming\n    headers, response = await self.make_openai_chat_completion_request(\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\litellm\\litellm_core_utils\\logging_utils.py\", line 190, in async_wrapper\n    result = await func(*args, **kwargs)\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\litellm\\llms\\openai\\openai.py\", line 460, in make_openai_chat_completion_request\n    raise e\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\litellm\\llms\\openai\\openai.py\", line 437, in make_openai_chat_completion_request\n    await openai_aclient.chat.completions.with_raw_response.create(\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\openai\\_legacy_response.py\", line 381, in wrapped\n    return cast(LegacyAPIResponse[R], await func(*args, **kwargs))\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\openai\\resources\\chat\\completions\\completions.py\", line 2678, in create\n    return await self._post(\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\openai\\_base_client.py\", line 1881, in post\n    return await self.request(cast_to, opts, stream=stream, stream_cls=stream_cls)\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\openai\\_base_client.py\", line 1666, in request\n    raise self._make_status_error_from_response(err.response) from None\nopenai.AuthenticationError: Error code: 401 - {'message': 'Wrong API Key', 'type': 'invalid_request_error', 'param': 'api_key', 'code': 'wrong_api_key'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\litellm\\main.py\", line 622, in acompletion\n    response = await init_response\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\litellm\\llms\\openai\\openai.py\", line 1058, in async_streaming\n    raise OpenAIError(\nlitellm.llms.openai.common_utils.OpenAIError: Error code: 401 - {'message': 'Wrong API Key', 'type': 'invalid_request_error', 'param': 'api_key', 'code': 'wrong_api_key'}\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\server.py\", line 1303, in create_message\n    response_generator = await litellm.acompletion(**litellm_request)\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\litellm\\utils.py\", line 2032, in wrapper_async\n    raise e\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\litellm\\utils.py\", line 1848, in wrapper_async\n    result = await original_function(*args, **kwargs)\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\litellm\\main.py\", line 650, in acompletion\n    raise exception_type(\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\litellm\\litellm_core_utils\\exception_mapping_utils.py\", line 2378, in exception_type\n    raise e\n  File \"C:\\Users\\Kersten\\Documents\\Coding\\AI\\claude-code-proxy\\.venv\\lib\\site-packages\\litellm\\litellm_core_utils\\exception_mapping_utils.py\", line 444, in exception_type\n    raise BadRequestError(\nlitellm.exceptions.BadRequestError: litellm.BadRequestError: OpenAIException - Wrong API Key\n",
  "message": "litellm.BadRequestError: OpenAIException - Wrong API Key",
  "status_code": 401,
  "response": {
    "status_code": 401,
    "headers": {
      "_list": [],
      "_encoding": "ascii"
    },
    "_request": {
      "method": "POST",
      "url": {
        "_uri_reference": [
          "https",
          "",
          "api.openai.com",
          null,
          "/v1",
          null,
          null
        ]
      },
      "headers": {
        "_list": [
          "(b'Host', b'host', b'api.openai.com')",
          "(b'Content-Length', b'content-length', b'0')"
        ],
        "_encoding": null
      },
      "extensions": {},
      "stream": {
        "_stream": "b''"
      },
      "_content": "b''"
    },
    "next_request": null,
    "extensions": {},
    "history": [],
    "is_closed": true,
    "is_stream_consumed": true,
    "default_encoding": "utf-8",
    "stream": {
      "_stream": "b''"
    },
    "_decoder": {},
    "_num_bytes_downloaded": 0,
    "_content": "b''"
  },
  "llm_provider": "openai",
  "model": "openai/zai-glm-4.7",
  "litellm_debug_info": "\nModel: openai/zai-glm-4.7\nAPI Base: `https://api.cerebras.ai/v1`\nMessages: `[{'role': 'system', 'content': 'You are Claude Code, Anthropic\\'s official CLI for Claude.\\n\\n\\nYou `",
  "max_retries": "None",
  "num_retries": "None",
  "request": "<Request('POST', 'https://api.openai.com/v1')>",
  "body": "{'message': 'Wrong API Key', 'type': 'invalid_request_error', 'param': 'api_key', 'code': 'wrong_api_key'}",
  "code": "wrong_api_key",
  "param": "api_key",
  "request_id": "None",
  "litellm_response_headers": "Headers({'date': 'Wed, 28 Jan 2026 00:29:52 GMT', 'content-type': 'application/json', 'content-length': '99', 'connection': 'keep-alive', 'server': 'cloudflare', 'referrer-policy': 'strict-origin-when-cross-origin', 'x-content-type-options': 'nosniff', 'strict-transport-security': 'max-age=3600; includeSubDomains', 'cf-cache-status': 'DYNAMIC', 'set-cookie': '__cf_bm=e3wyXroQbrK4ZJcHbx7X89IOLcMc0xuHXgeWNt3xAjM-1769560192.0061324-1.0.1.1-mVWQOH7zeh0g_ht1HEnbu7sGYHMtSF6NhBp_pR46Maz_linWRb8jpqw1M11jQYZP4T_C.wI0z5lisEpTgQ2izwNGSzCpZgEmMBff1vTN318TBpgcFAZpsmXldOVwfNkp; HttpOnly; Secure; Path=/; Domain=cerebras-sandbox.net; Expires=Wed, 28 Jan 2026 00:59:52 GMT', 'cf-ray': '9c4c60c008df4f64-DUS', 'alt-svc': 'h3=\":443\"; ma=86400'})",
  "timeout": "None"
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions