> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raziel.fun/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenAI-Compatible Endpoint: Use Raziel with Any Client

> Raziel exposes an OpenAI-compatible API at /gateway/openai/v1. Works with the OpenAI Python and Node SDKs, Hermes, Continue, LibreChat, and more.

Raziel exposes an OpenAI-compatible API at `https://raziel.fun/gateway/openai/v1`. Any client that accepts a custom base URL works out of the box — the OpenAI Python and Node SDKs, Hermes, Continue, LibreChat, and others.

## Connection details

| Field            | Value                                      |
| ---------------- | ------------------------------------------ |
| Base URL         | `https://raziel.fun/gateway/openai/v1`     |
| Auth             | `Authorization: Bearer rz_live_…`          |
| Models           | `GET /gateway/openai/v1/models`            |
| Chat completions | `POST /gateway/openai/v1/chat/completions` |
| Streaming        | Pass `stream: true`                        |

## Available models

| Model ID                    | Description  |
| --------------------------- | ------------ |
| `claude-opus-4-7`           | Most capable |
| `claude-sonnet-4-6`         | Balanced     |
| `claude-haiku-4-5-20251001` | Fastest      |

Retrieve the live list at any time with `GET /gateway/openai/v1/models`.

## Code examples

<CodeGroup>
  ```python python theme={null}
  from openai import OpenAI

  client = OpenAI(
      base_url="https://raziel.fun/gateway/openai/v1",
      api_key="rz_live_xxxxxxxxxxxx",
  )

  resp = client.chat.completions.create(
      model="claude-sonnet-4-6",
      messages=[{"role": "user", "content": "Hello"}],
  )
  print(resp.choices[0].message.content)
  ```

  ```typescript typescript theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    baseURL: "https://raziel.fun/gateway/openai/v1",
    apiKey: "rz_live_xxxxxxxxxxxx",
  });

  const resp = await client.chat.completions.create({
    model: "claude-sonnet-4-6",
    messages: [{ role: "user", content: "Hello" }],
  });
  console.log(resp.choices[0].message.content);
  ```
</CodeGroup>

## Supported request fields

These fields are forwarded to the upstream model:

`messages`, `model`, `max_tokens`, `temperature`, `stream`, `tools`, `tool_choice`, `stop`, `top_p`

These fields are silently ignored:

`logprobs`, `n`, `response_format`, `presence_penalty`, `frequency_penalty`, `seed`

## Streaming

Pass `stream: true` (Python) or `stream: true` (TypeScript/JSON) in the request body. The endpoint returns server-sent events in the standard OpenAI delta format.

```python theme={null}
stream = client.chat.completions.create(
    model="claude-sonnet-4-6",
    messages=[{"role": "user", "content": "Count to ten"}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="", flush=True)
```

## Compatible clients

The following clients work without modification — point them at the Raziel base URL and use your `rz_live_…` key:

* OpenAI Python SDK
* OpenAI Node / TypeScript SDK
* Hermes
* Continue
* LibreChat
* Any client that accepts a custom `base_url` and `api_key`
