Документация Store API
Store API совместим с форматом OpenAI: если ваш код уже работает с OpenAI SDK, достаточно поменять базовый адрес и ключ. Один ключ обслуживает текстовые модели и генерацию изображений, списания идут с общего баланса.
Быстрый старт
Зарегистрируйтесь, скопируйте ключ вида sk-shop-… в личном кабинете и подставьте два значения:
from openai import OpenAI
client = OpenAI(
base_url="https://store-api.ru/v1",
api_key="sk-shop-...",
)
resp = client.chat.completions.create(
model="openai/gpt-4o-mini",
messages=[{"role": "user", "content": "Привет!"}],
)
print(resp.choices[0].message.content)Авторизация
Ключ передаётся заголовком Authorization: Bearer sk-shop-…. Ключей можно создать до десяти — под каждый проект свой, с отдельным названием и лимитом трат. Если ключ выбрал лимит или его отключили, запросы вернут ошибку, а остальные ключи продолжат работать.
Чат-запросы
Эндпоинт POST /v1/chat/completions — полный аналог OpenAI, включая потоковую передачу stream: true. Доступны модели OpenAI, Anthropic, Google и другие — идентификатор указывается в поле model.
curl https://store-api.ru/v1/chat/completions \
-H "Authorization: Bearer sk-shop-..." \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-5",
"messages": [{"role": "user", "content": "Напиши хайку про API"}]
}'Генерация изображений
Эндпоинт POST /v1/images/generations в формате OpenAI Images API. Стоимость фиксированная за картинку и списывается только при успешной генерации. Размер задаётся как 1024x1024 (стороны кратны 8) или готовым пресетом вроде square_hd.
curl https://store-api.ru/v1/images/generations \
-H "Authorization: Bearer sk-shop-..." \
-H "Content-Type: application/json" \
-d '{
"model": "novita/juggernaut-xl",
"prompt": "красный спорткар на горном серпантине на закате",
"size": "1024x1024"
}'
# Ответ:
# {"created": 1786105709,
# "data": [{"url": "https://.../image.png"}]}Каталог моделей с ценами можно получить программно — GET-запросом на тот же адрес. Актуальные модели и цены:
| Модель | Цена | Назначение |
|---|---|---|
| novita/juggernaut-xl | 1 ₽ | Фотореализм на Lightning-режиме: картинка за секунды, минимальная цена. |
| fal-ai/flux/schnell | 2 ₽ | Молниеносная генерация за пару секунд. Идеален для черновиков и превью. |
| novita/epicrealism-xl | 2 ₽ | Фотореализм с мягким светом: портреты, предметка, интерьеры. |
| novita/animagine-xl | 2 ₽ | Аниме и иллюстрации: персонажи, обложки, ключевые кадры. |
| fal-ai/flux/dev | 5 ₽ | Высокая детализация и точность по промпту. Баланс цены и качества. |
| fal-ai/flux-pro/v1.1 | 10 ₽ | Флагман FLUX: максимальное качество, фотореализм, сложные сцены. |
| fal-ai/recraft-v3 | 10 ₽ | Топ для дизайна: логотипы, иконки, векторные стили, текст на картинке. |
Список моделей
GET /v1/models возвращает полный каталог текстовых моделей в формате OpenAI. Цены на текстовые модели указаны в таблице тарифов и считаются за миллион токенов отдельно на вход и выход.
Коды ошибок
| Код | Что означает |
|---|---|
| 401 | Ключ не передан, неизвестен или отключён в кабинете. |
| 402 | Закончился баланс либо ключ выбрал свой лимит трат. Пополните баланс или поднимите лимит ключа. |
| 404 | Неизвестный идентификатор модели — сверьтесь со списком моделей. |
| 502 / 504 | Провайдер недоступен или не ответил вовремя. Запрос можно повторить, списания за неудачную генерацию не происходит. |
Частые вопросы
Какой базовый адрес у API?
https://store-api.ru/v1 — укажите его как base_url в любом OpenAI-совместимом SDK.
Нужен ли отдельный ключ для картинок?
Нет, работает тот же ключ и тот же баланс, что и для текстовых моделей.
Что означает ошибка 402?
Закончился баланс либо ключ выбрал назначенный ему лимит трат. Пополните баланс или поднимите лимит ключа в личном кабинете.