---
title: "Quickstart"
subtitle: "Install the gateway, add your provider keys, and call a Claude model from the OpenAI SDK."
---

This runs the gateway on your machine with no config file. Every provider key in your environment becomes a provider, and the model name in each request decides where it goes.

<Steps>
<Step title="Install">

```bash
pip install respan-gateway
```

This installs the `respan-gateway` command. To use cargo, a release binary or Docker instead, see [Install](/docs/oss-gateway/install).

```bash
respan-gateway --version
```

</Step>
<Step title="Add your provider keys">

Export a key for each provider you want to use:

```bash
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
```

The gateway also reads the nearest `.env` file in the current directory or its parents. Variables already set in your shell win over `.env`. Other vendors use their own variables, such as `GEMINI_API_KEY` or `GROQ_API_KEY`; see [Providers](/docs/oss-gateway/providers).

</Step>
<Step title="Start the gateway">

```bash
respan-gateway
```

It listens on `127.0.0.1:8080` and prints the providers it found, the endpoints it serves, and the web UI's address. To use another address, pass `--listen`, such as `--listen 9000`.

</Step>
<Step title="Make a call">

<Tabs>
<Tab title="curl">
```bash
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-6-luna",
    "messages": [{"role": "user", "content": "Say hello"}]
  }'
```
</Tab>
<Tab title="OpenAI SDK, Claude model">
```python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8080/v1", api_key="unused")
reply = client.chat.completions.create(
    model="claude-haiku-5-5",
    messages=[{"role": "user", "content": "Say hello"}],
)
print(reply.choices[0].message.content)
```

The gateway sees a `claude-*` model, translates the OpenAI request to Anthropic's Messages API, and translates the answer back.
</Tab>
</Tabs>

With no client keys set, any API key value works, and the gateway only answers on loopback. To require keys, see [Client keys](/docs/oss-gateway/client-keys).

</Step>
<Step title="Open the web UI">

Open [localhost:8080/ui/](http://localhost:8080/ui/). The request log shows each call with its provider, model, latency, tokens and cost.

</Step>
</Steps>

## Next steps

- Point your own app at the gateway: [Connect your app](/docs/oss-gateway/connect).
- Run it inside a Python process, with no server: [Python, in your code](/docs/oss-gateway/python).
- Add routes, tools and tracing in a config file. `respan-gateway init` writes a commented `gateway.toml` from the keys in your environment, and `respan-gateway check` validates it. See [Config file](/docs/oss-gateway/config).
