Документация 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/embeddingsresponse = 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/generationsresponse = 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/modelsmodels = client.models.list()
for m in models.data:
print(m.id)Обработка ошибок
| Код | Описание |
|---|---|
| 401 | Неверный или отсутствующий API-ключ |
| 402 | Недостаточно средств на балансе |
| 429 | Превышен rate limit |
| 500 | Внутренняя ошибка сервера |
| 502 | Ошибка провайдера (upstream error) |