# QFOXAI OpenAI-Compatible Drop-In Guide

Use QFOXAI in applications that already support an OpenAI-compatible provider.

## Universal Settings

```env
OPENAI_API_KEY=qf_your_full_secret_key
OPENAI_BASE_URL=https://qfoxai.com/v1
OPENAI_MODEL=QFOXAI
```

## Node OpenAI Package

```js
import OpenAI from "openai";

const openai = new OpenAI({
  apiKey: process.env.OPENAI_API_KEY,
  baseURL: process.env.OPENAI_BASE_URL,
});

const response = await openai.chat.completions.create({
  model: process.env.OPENAI_MODEL || "QFOXAI",
  messages: [{ role: "user", content: "Write a client onboarding email." }],
});
```

## Python OpenAI Package

```python
from openai import OpenAI

client = OpenAI(api_key="qf_your_full_secret_key", base_url="https://qfoxai.com/v1")
response = client.chat.completions.create(
    model="QFOXAI",
    messages=[{"role": "user", "content": "Write a client onboarding email."}],
)
```

## Laravel AI Packages

Set provider to `OpenAI-compatible` or `Custom OpenAI`:

- Base URL: `https://qfoxai.com/v1`
- Key: full `qf_...` secret
- Model: `QFOXAI` (current default; direct HTTP requests may omit it)
- Auth mode: Bearer

## Important

- Do not put the key in frontend JavaScript.
- Do not add `/chat/completions` to the base URL if your client asks for base URL.
- Use `GET /v1/models` to list public model aliases available to the key.