Docs
Call the OpenDoor gateway from Python with the opendoor package.
Python SDK
The client lives at packages/python-sdk in this repo (import opendoor). It is a local install — not published to PyPI.
It reads OPENDOOR_API_KEY and OPENDOOR_BASE_URL. Pass base_url if the env var is unset.
Install
bashpip install -e packages/python-sdk
Requires Python 3.9+ and httpx.
Chat
pythonimport os from opendoor import OpenDoor os.environ.setdefault("OPENDOOR_BASE_URL", "https://opendoor-gcp.web.app") client = OpenDoor() # OPENDOOR_API_KEY required out = client.chat.completions.create( model="gemma-4-26b-a4b-it", messages=[{"role": "user", "content": "Hello from OpenDoor"}], ) print(out["choices"][0]["message"]["content"])
Streaming
pythonstream = client.chat.completions.create( model="gemma-4-26b-a4b-it", messages=[{"role": "user", "content": "Hello"}], stream=True, ) for chunk in stream: delta = (chunk.get("choices") or [{}])[0].get("delta") or {} text = delta.get("content") if text: print(text, end="", flush=True)
Models, Search, agents
pythonmodels = client.models.list() search = client.plugins.web_search("OpenDoor LLM gateway", max_results=5) agent = client.agents.create( name="Desk", runtime="openbot", modelId="gemma-4-26b-a4b-it", ) turn = client.agents.chat(agent["id"], message="Summarize https://example.com")
web_search is POST /v1/plugins/web-search (Vertex grounding, $0.10 / query). See Search.
Agents need the Agents add-on. See OpenBot / Agents.
OpenAI SDK
You can keep openai and only change the base URL (note the /v1 suffix):
pythonimport os from openai import OpenAI client = OpenAI( api_key=os.environ["OPENDOOR_API_KEY"], base_url="https://opendoor-gcp.web.app/v1", ) r = client.chat.completions.create( model="gemma-4-26b-a4b-it", messages=[{"role": "user", "content": "Hello"}], )
Errors
pythonfrom opendoor import OpenDoor, OpenDoorError try: OpenDoor().chat.completions.create( model="gemma-4-26b-a4b-it", messages=[{"role": "user", "content": "Hello"}], ) except OpenDoorError as exc: print(exc.status_code, exc.body)
See Errors and JavaScript SDK.