Документация API

PaiAPI полностью совместим с OpenAI API. Замените base_url — и используйте свой привычный код.

Быстрый старт

Базовый URL для всех запросов:

https://api.paiapi.ru/v1

Замените base_url в вашем коде на наш адрес и используйте API-ключ из личного кабинета:

from openai import OpenAI

client = OpenAI(
    base_url="https://api.paiapi.ru/v1",
    api_key="sk-pai-ваш-ключ"
)

response = client.chat.completions.create(
    model="gpt-5.2",
    messages=[{"role": "user", "content": "Привет!"}]
)

print(response.choices[0].message.content)

Аутентификация

API-ключ передаётся в заголовке Authorization:

Authorization: Bearer sk-pai-ваш-ключ
Важно: Никогда не используйте API-ключ на стороне клиента (в браузере). Храните его только на сервере.

Chat Completions

Основной эндпоинт для генерации текста:

POST https://api.paiapi.ru/v1/chat/completions
{
  "model": "claude-sonnet-4.5",
  "messages": [
    {"role": "system", "content": "Ты полезный ассистент."},
    {"role": "user", "content": "Что такое API?"}
  ],
  "temperature": 0.7,
  "max_tokens": 1000
}

Streaming

Для потоковой генерации добавьте stream: true:

stream = client.chat.completions.create(
    model="gpt-5.2",
    messages=[{"role": "user", "content": "Напиши стих"}],
    stream=True
)

for chunk in stream:
    content = chunk.choices[0].delta.content
    if content:
        print(content, end="")

Embeddings

POST https://api.paiapi.ru/v1/embeddings
response = client.embeddings.create(
    model="text-embedding-3-small",
    input="Текст для векторизации"
)

vector = response.data[0].embedding
print(f"Размерность: {len(vector)}")

Генерация изображений

POST https://api.paiapi.ru/v1/images/generations
response = client.images.generate(
    model="dall-e-3",
    prompt="Космический город будущего",
    size="1024x1024",
    quality="standard",
    n=1
)

image_url = response.data[0].url

Список моделей

GET https://api.paiapi.ru/v1/models
models = client.models.list()
for m in models.data:
    print(m.id)

Обработка ошибок

КодОписание
401Неверный или отсутствующий API-ключ
402Недостаточно средств на балансе
429Превышен rate limit
500Внутренняя ошибка сервера
502Ошибка провайдера (upstream error)