Быстрый старт и ключи API
Адрес API
Публичный интерфейс: https://api.o-lesa.ru/v1. Для аккаунта на другом экземпляре используйте его API-хост, например https://api.o-lesa.com/v1. Баланс и доступ определяются сервером, на котором вы создали ключ.
/api/v1 — интерфейс веб-приложения. Новый код интеграций должен использовать /v1. Не заменяйте старые URL в работающем чате: его потоковый формат отличается.
Создайте ключ
- Откройте Настройки → API (
/ru/settings#api). - Укажите название: например, «CRM production».
- Выберите права:
modelsдля моделей,agentsдля агентов и вебхуков. - Создайте ключ и сохраните его в секретах вашего сервера. Полное значение показывается один раз.
Ключ начинается с olesa_sk_. На сервере хранится только его SHA-256-хеш. Выдать ключ означает предоставить доступ к указанным операциям аккаунта, включая расходы с общего баланса. Право agents также позволяет создавать получателей вебхуков и управлять своими запусками и расписаниями.
Администратор управляет этими же ключами в карточке пользователя: может создать ключ для его аккаунта или отозвать существующий. Отдельного набора ключей для админки нет. Существующее полное значение нельзя восстановить из хеша; оно показывается только при создании.
Не передавайте ключ в URL, мобильный клиент или JavaScript браузера. Для каждой интеграции заведите отдельный ключ. При утечке отзовите его в настройках и выпустите новый. Отзыв останавливает новые запросы, но не отменяет уже принятые задачи. Получатели вебхуков отключаются отдельно.
Первый запрос
Предпочитаете Postman? Скачайте коллекцию запросов и откройте инструкцию по импорту. Ключи в файл не включены.
Задайте переменную OLESA_API_KEY через менеджер секретов вашей среды. Не вставляйте настоящий ключ в код или историю shell.
curl https://api.o-lesa.ru/v1/models \
-H "Authorization: Bearer $OLESA_API_KEY"
Выберите id модели из ответа. Пример текстового запроса:
curl https://api.o-lesa.ru/v1/chat/completions \
-H "Authorization: Bearer $OLESA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.5","messages":[{"role":"user","content":"Предложи три заголовка для сайта"}],"max_tokens":256}'
Это платный запрос к выбранной модели. Перед отправкой проверьте баланс и цены.
Python SDK
Поддерживается текстовый поднабор Chat Completions в OpenAI SDK, а не все API OpenAI:
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OLESA_API_KEY"],
base_url="https://api.o-lesa.ru/v1",
max_retries=0,
)
reply = client.chat.completions.create(
model="gpt-5.5",
messages=[{"role": "user", "content": "Составь короткий план запуска"}],
max_tokens=256,
)
print(reply.choices[0].message.content)
Повтор POST может создать ещё один платный запрос: ключ идемпотентности пока не поддерживается. Не повторяйте запрос автоматически после неоднозначного сетевого сбоя.