# OpenAI and Anthropic SDKs

> Connecting the official OpenAI and Anthropic SDKs for Python and Node.

The official SDKs work with the gateway without code changes — set the base URL
and the key.

## OpenAI SDK

```python [Python]
from openai import OpenAI

client = OpenAI(base_url="https://ai-seller.vibe-codes.ru/v1", api_key="$AISELLER_API_KEY")
resp = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(resp.choices[0].message.content)
```

```ts [Node]
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://ai-seller.vibe-codes.ru/v1",
  apiKey: process.env.AISELLER_API_KEY,
});
const resp = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(resp.choices[0].message.content);
```

Without parameters the client reads the `OPENAI_BASE_URL` and `OPENAI_API_KEY`
variables:

```bash
export OPENAI_BASE_URL=https://ai-seller.vibe-codes.ru/v1
export OPENAI_API_KEY=$AISELLER_API_KEY
```

The same client works with [Responses](https://ai-seller.vibe-codes.ru/en/docs/responses)
(`client.responses.create`) and [images](https://ai-seller.vibe-codes.ru/en/docs/images)
(`client.images.generate`).

## Anthropic SDK

```python [Python]
import anthropic

client = anthropic.Anthropic(base_url="https://ai-seller.vibe-codes.ru", api_key="$AISELLER_API_KEY")
msg = client.messages.create(
    model="gpt-5.6-sol",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello!"}],
)
print(msg.content[0].text)
```

```ts [Node]
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  baseURL: "https://ai-seller.vibe-codes.ru",
  apiKey: process.env.AISELLER_API_KEY,
});
const msg = await client.messages.create({
  model: "gpt-5.6-sol",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(msg.content[0].text);
```

The base URL has no `/v1`: the SDK appends `/v1/messages` itself. Without
parameters the client reads `ANTHROPIC_BASE_URL` and `ANTHROPIC_API_KEY`.

> The Anthropic SDK goes through `/v1/messages`, and the gateway does not
> translate formats: only a model whose provider supports Anthropic Messages will
> work (see [Messages](https://ai-seller.vibe-codes.ru/en/docs/messages)).

## Retries and timeouts

- Both SDKs retry `429` and `5xx` themselves, honoring the `Retry-After`
  header — no extra retry code needed.
- For images, video and reasoning models increase the client timeout:
  generation may take minutes.
